2010年10月7日 星期四

網頁開發語言簡介(客戶端)

       網際網路的蓬勃發展帶給人們許多的便利,也給很多政府機構、企業和個人提供了一個開放的平台,我們可以透過網路取得更多的服務應用,當然每個人在網路可以是平台架構者、服務提供者和終端消費者等等不同的角色,你可以是「貢獻者」,也可以是「被服務者」的角色,現在很多人都會上網寫寫部落格,運用部落格的模板工具,做出自己的特色網站,然而這些網頁的背後到底使用了什麼程式語言,許多人卻不甚知悉,以筆者多年開發軟體與系統整合的經驗,試著將自己曾經使用過的一些常見技術進行初步的介紹,現在就讓我們開始來進入主題,談談網頁程式開發語言到底有那些。

        我們常見的網頁大部份都是以超文件標籤語言(HyperText Markup Language  -- HTML)為基礎所發展出來的,它是一種結構化的標籤語言,瀏覽器會解析HTML 的結構化內容,再依該其標籤(TAG)將文字、圖片和影音等內容呈現給一般的終端使用者。而現在的結構化標籤語言當以可自行定義標籤的可擴展標籤語言(Extensible Markup Language -- XML)標準為主流,此一技術也被廣泛的應用到網路異質平台的訊息交換上,很多政府單位與商業服務平台的數位訊息交換也都大量的採用了此一技術規格來制定不同的交換格式,建立了新的電子文件交換(Electronic data interchange --EDI)與數據交換的標準,達成了資料共享的目標。


       目前網際網路的開發程式語言裏面,在客戶端網頁瀏覽器中執行的嵌入式語言主要有:
  1. JAVAScript :是由Netscape的LiveScript發展出来的語言,其語言是由JAVA所演變出來的一種嵌入式語言,早期網路傳輸速度緩慢,為了加快客戶端網頁的處理速度,提供更流暢的瀏覽效果,減少服務器在資料驗證的處理時間,當時Netscape的瀏覽器Navigator就率先加入了Javascript,增加了資料驗證的基本功能。
  2. JScript : 微軟有鑑於JAVAScript的技術優勢,就在自己的瀏覽器Internet Explorer3.0中推出了JScript以迎戰當初的Netscape,後來程式設計人員在微軟IE瀏覽器中所用的JAVAScript,其實就是JScript。
  3. VBScript : VBScript是微軟跳脫JAVA程式語言框架,自行開發的一種網頁嵌入式語言,微軟把既有的VB程式語言經過簡化所產生的一種版本,更為其後伺服器端的ASP動態網頁程式提供了一個重要的基礎。
       在客戶端程式裡面還有一種嵌入式元件的技術,常用來製作一些複雜的互動網頁程式,例如影音、線上地圖、網路遊戲....等,以目前最常見的技術有:
  1. Java Applet : 以Java程式語言開發的客戶端元件,需要下載Java執行環境(Java RunTime Environment JRE)才能執行,可以在不同的作業系統平台上運作。
  2. ActiveX Control : 以微軟ActiveX技術標準開發出來的一種互動式元件,稱為ActiveX控制項,它具有比Java Applet 更多的系統操作與存取的權力,但也因此其安全性的風險相對較高,容易遭受到攻擊,因為他需要呼叫一些底層的Windows API,所以,只能在微軟的Windows作業系統環境中使用。 
  3. Flash : 早期是專門用來制作影音動畫,現在有越來越多的在網頁上執行的網路遊戲與互動程式開始大量採用此項技術,但它需要下載Flash Player播放器才能使用。
        在Web 2.0 服務裡最著名的網頁開發技術當屬AJAX(Asynchronous JavaScript and XML),也就是非同步化JavaScript和XML,它是一種建立互動式網頁應用的開發技術,這項技術综合了Javascript與XML的相關技術(XML和XMLHTTP),也集成了DHTML(Dynamic HTML)動態網頁技術,進一步整合文件物件模型(Document Object Model -- DOM)串接樣式表(Cascading Style Sheets -- CSS)等網頁技術,早於兩千年就被提出來,後因Web 2.0概念的推出而被廣泛用來建立Web 2.0網站,著名的Google Maps就是採用了AJAX這項互動網頁技術。這項技術可以讓使用者減少了點擊和等待的時間,達到所思即所見(What you see is what you mean --WYSIWYM)的目的,然而這項技術頻繁的與伺服器互動,也可能造成伺服端機器負荷加重,必須衡量其中的利弊得失,考量系統的負載能力,如果伺服器性能不夠,就要適度的採用此項技術,或早日進行系統升級,以免伺服端系統在尖峰時段頻頻超載。

沒有留言:

張貼留言