Ajax的概念 AJAX即“Asynchronous Javascript And XML”(非同步JavaScript和XML),是一種用於創建快速動態網頁的技術。 動態網頁:是指可以通過伺服器語言結合資料庫隨時修改數據的網頁。 靜態網頁,隨著html代碼的生成,頁面的內容和顯示效果就基本上不會發生 ...
Ajax的概念
AJAX即“Asynchronous Javascript And XML”(非同步JavaScript和XML),是一種用於創建快速動態網頁的技術。
動態網頁:是指可以通過伺服器語言結合資料庫隨時修改數據的網頁。
靜態網頁,隨著html代碼的生成,頁面的內容和顯示效果就基本上不會發生變化了——除非你修改頁面代碼。
AJAX = 非同步 JavaScript和XML(標準通用標記語言的子集)。
AJAX 是與伺服器交換數據並更新部分網頁的技術,在不重新載入整個頁面的情況下。
Ajax運行機制:
由客戶端瀏覽器創建XMLHttpRequest對象向伺服器發出請求,然後等待伺服器響應,伺服器響應後將數據返回到客戶端,保存到XMLHttpReques的responsetext的屬性下。
Ajax請求伺服器的過程中有5個狀態
0:表示請求伺服器之前
1:表示打開遠程伺服器鏈接對應open方法
2:表示向伺服器發送數據對應send方法
3:表示伺服器響應過程中並未結束
4:表示伺服器響應完成
Ajax的優勢
1、AJAX 在瀏覽器與 Web 伺服器之間使用非同步數據傳輸(HTTP 請求),這樣就可使網頁從伺服器請求少量的信息,而不是整個頁面。
2、AJAX 可使網際網路應用程式更小、更快,更友好。
3、AJAX 是一種獨立於 Web 伺服器軟體的瀏覽器技術。
4、AJAX 基於下列 Web 標準: JavaScriptXMLHTMLCSS在 AJAX 中使用的 Web 標準已被良好定義,並被所有的主流瀏覽器支持。
5、AJAX 應用程式獨立於瀏覽器和平臺。
Web 應用程式較桌面應用程式有諸多優勢;它們能夠涉及廣大的用戶,它們更易安裝及維護,也更易開發。 不過,網際網路應用程式並不像傳統的桌面應用程式那樣完善且友好。 通過 AJAX,網際網路應用程式可以變得更完善,更友好。
Ajax非同步
非同步:是相對於同步而言的,定時器也是非同步的一種,也就是其他程式不需要等待定時器的代碼全部執行完畢以後才能執行代碼。因為定時器有可能是無限迴圈執行代碼的,如果等待定時器執行完畢那麼其他的代碼將永遠無法運行。所以非同步編程就是相對於其他代碼是獨立完成的。也就是上面所說的ajax是獨立於瀏覽器平臺的。
Tip:事件也是非同步執行的,事件是發生某件事情後才會執行代碼的。
同步:就是同一個代碼塊中代碼都是從上到下執行的。
Ajax核心對象XMLHttpRequest
var _hr=new window.XMLHttpRequest();//低版本的IE不相容 創建相容對象: function createXHR(){ try{ return new window.XMLHttpRequest(); }catch(e){ try{ return new ActiveXObject(“Microsoft.XMLHttpRequest”); }catch(e){ if(window.confirm("瀏覽器版本太低,是否要下載新版本的瀏覽器")){ window.location.href="http://download.firefox.com.cn/releases/firefox/48.0/zh-CN/Firefox-latest.dmg"; } } } }
Ajax請求伺服器過程
調用上面的方法: var _xhr=createXHR(); if(_xhr){ _xhr.onreadystatechange=function(){ if(_xhr.readystate==4){//等於4表示伺服器響應完成,一定要等伺服器響應完成後才可以處理數據; //TODO… } } _xhr.open(“post”,”url”,true); //簡單請求分為post和get方式兩種,第二個參數表示遠程伺服器介面的地址,第三個參數表示是否為非同步; _xhr.setRequestHeader(“content-type”,”application/x-www-form-urlencoded;charset=utf-8”); _xhr.send(null); }