黃欣彬 張婭
摘要 運用Ajax技術可以大大改變Web應用程序的開發方式,實現無需刷新頁面就能實現頁面更新。本文主要分析Ajax的原理,是Ajax的核心對象,以及運用Ajax技術的優點及缺陷。
關鍵詞 Ajax 原理;XmlHttpRequest對象;Ajax優勢
中圖分類號 TP3 文獻標識碼 A 文章編號 2095—6363(2016)13—0045—01
Ajax不是新研究開發的一種技術,是一種使用現有標準的新方法,主要是多種原有技術結合在一起而形成的一種技術。主要通過使用CSS和XHTML來實現表示,實現交互和動態顯示通過DOM模型來完成,通過XMLHttpRequest來實現與服務器進行異步通信,并且通過JavaScript來完成相關綁定和調用。除XmlHttpRequest對象外,其他技術在網絡方面都得到很廣泛的運用。
XMLHttpRequest雖然目前還沒有被W3C所采納,但是它已經是一個事實的標準,因為目前幾乎所有的主流瀏覽器都支持它。
1 Ajax核心原理
Ajax的核心原理主要是運用XmlHttpRequest對象向服務器發出異步請求,從而完成獲取服務器的數據操作,基于JavaScript技術來操作DOM實現頁面的更新,即無需加載整個網頁內容的情況下實現網頁的差異更新。其關鍵步驟是請求數據如何從服務器獲得,主要通過XMLHttpRequest對象來實現。同時Ajax的遵守原則“按需取數據”,可以最大程度地減少“冗余請求”,降低服務器響應的負荷。
2 XmlHttpRequest對象
AIjax的核心機制是XMLHttpRequest對象,最先在IE5中使用,能夠完成異步請求的一種技術,即通過JavaScript快速向服務器發起請求和處理響應,并且不會阻塞用戶,實現無刷新的效果。XMLHttpRequest這個對象的屬性。
onreadystatechange所觸發事件的處理程序所表現的狀態;
responseText實現數據的字符串從服務器進程返回串形式;
responseXML從服務器進程返回的DOM兼容的文檔數據對象;
status從服務器返回的數字代碼,200(已就緒)和404(未找到);
status Text伴隨狀態碼的字符串信息;
readyState狀態值(0,1,2,3,4)。
3 Ajax技術的優勢
運用Ajax技術到Web中都會感覺該技術所帶來的優點。
1)使用Ajax會開發出動態性非常強的Web界面,在一些運用Ajax技術的瀏覽器的搜索框輸入關鍵字時,服務器將快速接收到這些字符,服務器將快速返回一個搜索建議的列表。
2)頁面不需全部加載刷新,快速完成服務器與頁面內的通信,給用戶的體驗非常好。頁面與服務器采用異步方式,防止打斷用戶的操作,從而其響應能力更加快速的完成。
3)利用客戶端的閑置能力分擔服務器承載的一部分工作,從而降低服務器的負荷,同時也減少帶寬的負擔,節約公共資源,降低成本。
4)運用JavaScript的難度得到簡化。獨特JavaScript的靈活語法以及其物件觀念,讓其能夠更好深入使用文件物件模型(DOM)與CSS的強大操控能力,以便更好應用瀏覽器XMLHttpRequest物件,簡化JavaScript的便用難度,更好地使開發人員專注在開發工作上。
5)瀏覽器的相容性問題得到一定的解決。對文件的解析與語法的支援在不同瀏覽器結果是有一定的差異,在瀏覽器不同版本上有時也會表現出不同的行為,從而讓JavaScript應用程序出現一定的瓶頸,而采用Ajax框架能提前解放設計人員對瀏覽器相容性的問題。
4 Ajax技術的缺點
大家平時使用一種技術更多的注意其優點,但也不能忽視其所帶來的缺陷。而Ajax技術也有自身的缺陷。
1)程序異常處理機制的缺陷。Ajax框架本身會直接造成程序的異常機制遭到破壞,若采用Ajax和傳統的form提交的模式來刪除一條數據,給代碼的編寫和調試帶來許多困難。
2)Ajax技術中沒后退功能,這主要是和JavaScript無法實現很好的結合。這就與IE后退功能相違背,而后退功能是Web站點的標配功能。這也是Ajax技術自身存在的重要缺陷,但可通過較笨的辦法解決,即在Gmail中運用Ajax技術解決沒有后退功能,但沒有改變Ajax技術的退出機制。在Gmail中運用AjaX技術,瀏覽者可單擊IE后退按鈕查看歷史記錄時,通過創建或使用一個隱藏的IFRAME來完成頁面上的差異變更,即單擊后退時,在隱藏的IFRAME中實現搜索,并且在Ajax元素中反映出搜索結果,以便將應用程序狀態恢復到當時的狀態,但是它所帶來的開發成本是非常高的,和Ajax技術所要求的快速開發是相背離的。這是Ajax所帶來的一個非常嚴重的問題。
3)安全因素。一項技術的運用也給IT企業直接或間接產生了新的安全威脅,而通過Ajax技術建立一條通往企業數據的直接通道,這就會造成更多的數據和服務器邏輯會在不經意間比以前暴露得更多。同時Ajax技術的邏輯會隱藏對客戶端的安全掃描技術,將給黑客從遠端服務器上建立新的攻擊提供了新的機會。同時Ajax也存在基于credentials的安全漏洞、跨站點腳步攻擊和等SOL注入攻擊。
4)Ajax沒有遵循資源定位和url的機制,手持設備(如手機、Pad等)不能非常靈活的支持Ajax技術,在手持設備的瀏覽器上打開運用Ajax技術設計的網站時,現在還不能很好的支持,需要有待的完善和改進。
5結論
Ajax不是一種萬能的技術,它有適合自身應用的場合,并與現有的動態頁面技術互補融合,在未來的軟件技術發展中,相信Ajax將擔負起更多的用途,在Web應用中發揮重要的作用。endprint