據介紹通達OA 短信、在線人員、郵件檢查機制,全部采用無刷新技術。我分析后通達用的是Ajax技術。Ajax是多種技術的綜合,是一種動態的可以實現WEB頁面局部刷新的技術。
Ajax的基本原理
Ajax實現的web交互效果跟傳統的大不相同,它通過Ajax 引擎,使得應用過程很自然,操作很流暢,因為其只和服務器交換有用的數據,而頁面顯示等不必要的數據則不再重新加載。Ajax 引擎其實就是JavaScript、XML、XMLHttpRequest等等各項技術的綜合應用。
Ajax技術組成:
1.標准化呈現:XHTML、CSS
2.動態顯示和交互:DOM
3.數據交換和處理:XML、XSLT
4.粘合劑:JavaScript,
Ajax的優點:
1.減輕服務器端負擔,“按需取數據”。
2.無刷新更新頁面。
3.帶來更好的用戶體驗。
4.充分利用客戶端閑置的運算能力。
5.進一步促進呈現和數據的分離。
6.完全基於標准化的技術實現,無須下載小程序或插件。
7.瀏覽器無關(IEownload, XML island)
Ajax適用的場景:
1.表單驅動的交互
2.深層次的樹的導航
3.快速的用戶與用戶間的交流響應
4.類似投票、yes/no等無關痛癢的場景
5.對數據進行過濾和操縱相關數據的場景
6.普通的文本輸入提示和自動完成的場景
Ajax不適用的場景:
1.部分簡單的表單
2.搜索不能back(使用IFrame)
3.基本的導航
4.替換大量的文本
5.對呈現的操縱
Ajax應用存在的問題:
1.用JavaScript作的Ajax引擎,JavaScript的兼容性和debug都是讓人頭痛的事。
2.Ajax的無刷新重載,由於頁面的變化沒有刷新重載那么明顯,所以容易給用戶帶來困擾。
3.中間過程不能被bookmark。(兩個方法解決)
使用WEB標准開發:
1.系統現狀對應用的自適應性和市場拓展都有阻礙。
2.完全采用符合web標准的方式來開發web層,以支持所有的市場上流行的瀏覽器,達到很高的可用性。
3.包括使用XHTML,CSS(完全布局),Ajax等標准化技術。(結構/展現/行為完全分離)
4.使用Firefox作為開發環境,瀏覽器移植問題就會得到解決。
AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創建交互式網頁應用的網頁開發技術。它有機地包含了以下幾種技術:
Ajax(Asynchronous JavaScript + XML)的定義:基於web標准(standards-based presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model)進行動態顯示及交互;使用 XML 和 XSLT 進行數據交換及相關操作; 使用 XMLHttpRequest 進行異步數據查詢、檢索; 使用 JavaScript 將所有的東西綁定在一起。
類似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基於AJAX的“派生/合成”式(derivative/composite)的技術正在出現,如“AFLAX”。
AJAX的應用使用支持以上技術的web瀏覽器作為運行平台。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式對象,也不支持XSLT。
Ajax技術的核心
Ajax其核心只有JavaScript、XMLHTTPRequest和DOM,如果所用數據格式為XML的話,還可以再加上XML這一項(Ajax從服務器端返回的數據可以是XML格式,也可以是文本等其他格式)。
在舊的交互方式中,由用戶觸發一個HTTP請求到服務器,服務器對其進行處理后再返回一個新的HTHL頁到客戶端,每當服務器處理客戶端提交的請求時,客戶都只能空閑等待,並且哪怕只是一次很小的交互、只需從服務器端得到很簡單的一個數據,都要返回一個完整的HTML頁,而用戶每次都要浪費時間和帶寬去重新讀取整個頁面。而使用Ajax后用戶從感覺上幾乎所有的操作都會很快響應沒有頁面重載(白屏)的等待。
1.XMLHTTPRequest
Ajax的一個最大的特點是無需刷新頁面便可向服務器傳輸或讀寫數據(又稱無刷新更新頁面),這一特點主要得益於XMLHTTP組件XMLHTTPRequest對象。這樣就可以向再發桌面應用程序只同服務器進行數據層面的交換,而不用每次都刷新界面也不用每次將數據處理的工作提交給服務器來做,這樣即減輕了服務器的負擔又加快了響應速度、縮短了用戶等候時間。
最早應用XMLHTTP的是微軟,IE(IE5以上)通過允許開發人員在Web頁面內部使用XMLHTTP ActiveX組件擴展自身的功能,開發人員可以不用從當前的Web頁面導航而直接傳輸數據到服務器上或者從服務器取數據。這個功能是很重要的,因為它幫助減少了無狀態連接的痛苦,它還可以排除下載冗余HTML的需要,從而提高進程的速度。Mozilla(Mozilla1.0以上及NetScape7以上)做出的回應是創建它自己的繼承XML代理類:XMLHttpRequest類。Konqueror (和Safari v1.2,同樣也是基於KHTML的瀏覽器)也支持XMLHttpRequest對象,而Opera也將在其v7.6x+以后的版本中支持XMLHttpRequest對象。對於大多數情況,XMLHttpRequest對象和XMLHTTP組件很相似,方法和屬性也類似,只是有一小部分屬性不支持。
2.JavaScript
JavaScript是一在瀏覽器中大量使用的編程語言,,他以前一直被貶低為一門糟糕的語言(他確實在使用上比較枯燥),以在常被用來作一些用來炫耀的小玩意和惡作劇或是單調瑣碎的表單驗證。但事實是,他是一門真正的編程語言,有着自已的標准並在各種瀏覽器中被廣泛支持。
3.DOM
Document Object Model。 DOM是給 HTML 和 XML 文件使用的一組 API。它提供了文件的結構表述,讓你可以改變其中的內容及可見物。其本質是建立網頁與 Script 或程序語言溝通的橋梁。所有WEB開發人員可操作及建立文件的屬性、方法及事件都以對象來展現(例如,document 就代表“文件本身“這個對像,table 對象則代表 HTML 的表格對象等等)。這些對象可以由當今大多數的瀏覽器以Script 來取用。一個用HTML或XHTML構建的網頁也可以看作是一組結構化的數據,這些數據被封在DOM(Document Object Model)中,DOM提供了網頁中各個對象的讀寫的支持。