這篇文章給大家分享的是有關Ajax原理及使用的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)公司長期為上千余家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為通渭企業(yè)提供專業(yè)的成都網站設計、成都網站制作,通渭網站改版等技術服務。擁有10多年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
Ajax原理
AJAX即“Asynchronous Javascript And XML”(異步JavaScript和XML),AJAX不是一種新的編程語言,而是一種用于創(chuàng)建更好更快以及交互性更強的 Web 應用程序的技術。它是一套綜合了多項技術的瀏覽器端網頁開發(fā)技術。這些技術包括Javascript、XHTML和CSS、DOM、XML和XMLHttpRequest。
通過在瀏覽器與服務器進行少量數(shù)據(jù)交換,AJAX 可以使網頁實現(xiàn)異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。
優(yōu)點:
使用Ajax的最大優(yōu)點,就是能在不更新整個頁面的前提下維護數(shù)據(jù)。這使得Web應用程序更為迅捷地回應用戶動作,并避免了在網絡上發(fā)送那些沒有改變的html代碼信息。
1. 減輕服務器負擔,按需要獲得數(shù)據(jù)。
2. 無刷新更新頁面,減少用戶的實際和心理的等待時間。
3. 更好的用戶體驗。
4. 減輕寬帶的負擔。
5. 主流瀏覽器支持。
缺點:
1. AJAX大量使用了Javascript和AJAX引擎,使用AJAX的程序必須測試針對各個瀏覽器的兼容性。
2. AJAX更新頁面內容的時候并沒有刷新整個頁面,因此,網頁的后退功能是失效的。
3. 對搜索引擎支持不好。
Ajax的原理簡單來說通過瀏覽器的javascript對象XmlHttpRequest(Ajax引擎)對象來向服務器發(fā)異步請求并接收服務器的響應數(shù)據(jù),然后用javascript來操作DOM而更新頁面。這其中最關鍵的一步就是從服務器獲得請求數(shù)據(jù)。即用戶的請求間接通過Ajax引擎發(fā)出而不是通過瀏覽器直接發(fā)出,同時Ajax引擎也接收服務器返回響應的數(shù)據(jù),所以不會導致瀏覽器上的頁面全部刷新。
舉例:
傳統(tǒng)方式:瀏覽器向后端發(fā)送請求,后端響應數(shù)據(jù)給前端,瀏覽器接收數(shù)據(jù),渲染頁面,瀏覽器要“刷新”。
Ajax方式:瀏覽器創(chuàng)建ajax對象,ajax對象向后端發(fā)送請求,后端接收請求響應數(shù)據(jù)給前端,ajax對象接收響應數(shù)據(jù)通過dom操作更新視圖,整個過程瀏覽器“不刷新”。
真正的請求是由Ajax引擎發(fā)出。不是由瀏覽器窗口發(fā)出,所以瀏覽器窗口是不會刷新的, Ajax引擎同時也接收服務器返回的響應內容。
Ajax引擎就是XMLHttpRequest對象,所有現(xiàn)代瀏覽器均支持 XMLHttpRequest 對象(IE5 和 IE6 使用 ActiveXObject)。它同是也是一個Javascript對象。
Ajax引擎(XMLHttpRequest)是Ajax綜合技術的核心,其作為瀏覽器頁面和服務器交互的一個橋梁。
通常是Javascript監(jiān)聽瀏覽器網頁事件(點擊,提交,更改等),由Javascript創(chuàng)建Ajax引擎對象,通過Ajax引擎對象發(fā)出請求。Ajax引擎等待并且接收服務器的響應內容,Javascript再從Ajax引擎對象中獲取響應內容并且改變網頁界面顯示效果。
非IE瀏覽器和高版本的IE瀏覽器:var obj=new XMLHttpRequest();
低版本的IE瀏覽器:var obj=new ActiveXObject(“Microsoft.XMLHTTP”);
方法:
abort
取消當前請求
getAllResponseHeaders
獲取響應的所有http頭
getResponseHeader
從響應信息中獲取指定的http頭
open(方式get/post,url地址,同步異步)
創(chuàng)建一個新的http請求,打開請求,并指定此請求的方法、URL以及驗證信息(用戶名/密碼)
感謝各位的閱讀!關于“Ajax原理及使用的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!