1. 程式人生 > >jQuery的Ajax高階工具函式($getScript(),$getJSON()) --再研究

jQuery的Ajax高階工具函式($getScript(),$getJSON()) --再研究

jQuery的Ajax高階工具不是方法,而是函式,可以通過jQuery或$直接呼叫 //尼瑪,我認為他們是jQuery工廠函式上的靜態方法, //不需要建立jQuery物件,直接使用 ‘類名’ .方法名呼叫 //沒毛病吧老鐵們>_-,求噴 //啥叫函式?–window物件上的函式 或 沒有跟物件繫結的函式 //

  1. 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;
  1. 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請求.