慕課網里面有專門的視頻講解嗎?求推薦。求高手給一個完整可運行例子,謝謝了!!!
異步加載實現局部刷新
chaucy
2016-05-26 09:45:14
TA貢獻64條經驗 獲得超115個贊
在AJAX客戶端如何做到的異步呢?實際上就是JavaScript的回調函數起的作用
提供一個回調JavaScript函數,一旦服務器響應可用,該函數就被執行
業務函數:
[javascript]
function?castVote(rank)?{?? ??var?url?=?"/ajax-demo/static-article-ranking.html";?? ??var?callback?=?processAjaxResponse;?? ??executeXhr(callback,?url);?? }
需要異步通訊的函數:
function?executeXhr(callback,?url)?{?? ??//?branch?for?native?XMLHttpRequest?object?? ??if?(window.XMLHttpRequest)?{?? ????req?=?new?XMLHttpRequest();?? ????req.onreadystatechange?=?callback;?? ????req.open("GET",?url,?true);?? ????req.send()(null);?? ??}?//?branch?for?IE/Windows?ActiveX?version?? ??else?if?(window.ActiveXObject)?{?? ????req?=?new?ActiveXObject("Microsoft.XMLHTTP");?? ????if?(req)?{?? ??????req.onreadystatechange?=?callback;?? ??????req.open("GET",?url,?true);?? ??????req.send()();?? ????}?? ??}?? }
req.onreadystatechange = callback
req.open("GET", url, true)
第一行定義了JavaScript回調函數,一旦響應就緒它就自動執行,而req.open()方法中所指定的“true”標志說明想要異步執行該請求。
一旦服務器處理完XmlHttpRequest并返回給瀏覽器,使用req.onreadystatechange指派所設置的回調方法將被自動調用。
舉報