/*** created by ann on 2017/6/8.
*/基本語法
$.ajax().done(function(data) )
首先要了解ajaxsetip方法
ajax方法會將兩個引數進行覆蓋,拷貝,最後返回
ajaxsetup:function( target, settings ) ,
functionajaxextend( target, src ) ;
for( keyinsrc ) ) ) )[ key ] = src[ key ];
} }
if( deep )
returntarget;
}jsoncallback分兩種情況
一.不穿引數:
$.ajax().done(function(data) )
// default jsonp settings
1.首先在jquery內部執行
進入ajax內部執行
s = jquery.ajaxsetup( {}, options ),
jquery.ajaxsetup(
此時setting不存在
執行 ajaxextend( jquery.ajaxsettings,
target );
ajaxsettings
在jquery初始會有定義
ajaxsettings: ,
此時target是我們傳遞的引數
此時url會被覆蓋,平增加datatype引數
ajaxsettings此時是:
ajaxsettings:
},jquery的ajaxsetup方法會使用自定義的jsonpcallback
,返回如
callback = jquery21402091185757493652_1496931076460 & _ = 1496931076461
其中對應方法是
jquery21402091185757493652_1496931076460 =
》jqueryexpando: "jquery" + ( version + math.random() ).replace(/\d/g
, "")
產生1496931076461 =
》varnonce = jquery.now();
2.對上面方法進行呼叫
callbackname = s.jsonpcallback = jquery.isfunction(s.jsonpcallback)
s.jsonpcallback():s.jsonpcallback
;3.定義該方法
overwritten = window[callbackname];
window[callbackname] =function() ;
4.動態產生乙個script標籤並引用該鏈結
向後傳送的url:
5.請求完成後通過上述方法刪除script節點
(elem.parentnode)
elem.parentnode.removechild(elem);
}二.傳參
$.ajax().done(function(data) )
s = jquery.ajaxsetup( {}, options ),
如第一種情況執行之後:
ajaxsettings:
},向後台傳送的url:"http://localhost:18080/get?callback=baiducallback&_=1496934184545"
總結:傳參與否看業務的需要
傳參的大部分情況是
後台沒有處理能力,只是單純的請求乙個json檔案
例如baiducallback()
而後台可以處理引數
varstr = req.query.callback + "(" + json.stringify(data)"; //jsonp
console.log('jsonp: '+str);
res.end(str);
無需傳遞引數
jQuery原始碼分析
工具 版本說明 版本號備註 jquery 2.1.1 sublime 3jquery function selector,context jquery.fn jquery.prototype 快速匹配正則 不加g 不光匹配整體項還會匹配到子項 rquickexpr s w w w init jque...
jquery原始碼解析
jquery 原始碼解析,參看 是jquery 3.0版本 入口jquery.js包含core.js,以及jquery的各類功能的組合,包括selector,ajax等等 然後將jquery物件匯出到全域性的jquery符號,以及 符號 確定jquery物件是個函式,這個函式生成出來的資料是物件 建...
jQuery原始碼分析
一 jquery如何做到不汙染變數名並暴露出 供使用者使用 jquery將變數和 寫進立即執行函式,通過函式來包裹所有的變數和方法,再在這個立即執行函式上將 jquery方法繫結到window上,就可以讓使用者使用到jq方法了。二 jquery是如何做到 jquery 的?function wind...