jQuery的Ajax高階工具函式($getScript(),$getJSON()) --再研究
阿新 • • 發佈:2018-12-20
jQuery的Ajax高階工具不是方法,而是函式,可以通過jQuery或$直接呼叫 //尼瑪,我認為他們是jQuery工廠函式上的靜態方法, //不需要建立jQuery物件,直接使用 ‘類名’ .方法名呼叫 //沒毛病吧老鐵們>_-,求噴 //啥叫函式?–window物件上的函式 或 沒有跟物件繫結的函式 //
- jQuery.getScript()
功能:load a js file from serve using a get HTTP request,then execute it; 第一個引數是:js程式碼檔案的URL. 非同步載入檔案,載入完成後在全域性作用域執行該程式碼.他能請求跨域指令碼 第二個引數是: 回撥函式callback 注意:jQuery.getScript()的回撥函式,僅在**請求成功完成時才會被呼叫.** **其他的三個工具函式也是如此** callback函式的第一個引數是responseTxt ,(響應文字) 第二個引數是$StatusTxt(jQuery的狀態碼) 第三個引數是xhr(發出請求的XMLHttpRequest物件); //I think every callback function arguments 都是這樣的 ---沒毛病? 跨域請求,callback 1,3,引數為undefined; so easy! //but , by me test , 並不是這樣,分析以下程式碼 $.getScript("https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js", function () { for (var i = 0; i < arguments.length; i++) { console.log(arguments[i]); } }); //當跨域請求載入js檔案是,第一次時: 打了三次undefined;而$getScript()返回值undefined; } //第2,3,n次時: $.getScript() 返回了XMLHttpRequest物件,readyState屬性是1; 接著 undefined, "success", XMLHttpRequest物件,readyState屬性是4; 警告:Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead[詳細瞭解] 《javaScrip權威指南》有bagel;
- jQuery.getJSON() 作用: load JSON-encoded data from server using a Get Http request 老規矩實參列表$.getJSON(url,[data],[callback]); url:傳送請求地址。 data:待發送 Key/value ,字串或對物件(jQuery.param()將物件轉回為字串); callback:載入成功時回撥函式(講究)
$.getJSON():他會獲取響應文字,然後特殊處理一下,再掉用指定的回撥函式. jQuery.getJSON()只有在傳入了回撥函式時才有用. 回撥函式的實參列表(responceData,status,xhr); 當回撥函式執行時status一定是"success"字串; 如果傳遞給jQuery.getJSON()的URL或資料字串在末尾含有"=?"的字串,或"&"字元前面含有"=?" 這是JSONP請求.