最近開(kāi)發(fā)遇到一個(gè)問(wèn)題:需要把項(xiàng)目所有ajax請(qǐng)求的參數(shù)加上一個(gè)隨機(jī)數(shù)(用于清緩存),但是項(xiàng)目有40多個(gè)ajax請(qǐng)求,不想手動(dòng)去修改,于是自己想試著修改jQuery的ajax源碼,最后也達(dá)到目的了,不過(guò)想問(wèn)問(wèn)有沒(méi)有更好的方法。(我猜應(yīng)該是有的。。)jQuery是v3.1.1找到ajax函數(shù)修改為: ajax: function( url, options ) { if(url.data != undefined)
url.data.random = Math.random();
else
url.data = {random:Math.random()};
···
(省略號(hào)后面是jQuery寫(xiě)ajax的500多行源碼)
}思路就是這樣。。很簡(jiǎn)單粗暴的直接改源碼。當(dāng)然我一開(kāi)始是打算用extend來(lái)修改的,比如:$.extend($, {ajax: function( url, options ) { if(url.data != undefined)
url.data.random = Math.random();
else
url.data = {random:Math.random()};
···
(省略號(hào)后面是jQuery寫(xiě)ajax的500多行源碼)
}
}這個(gè)方法行不通是因?yàn)閍jax內(nèi)部的源碼還包括其他的函數(shù),這樣我不確定要怎么復(fù)寫(xiě)(難道要把a(bǔ)jax函數(shù)里面的所有其他函數(shù)也extend進(jìn)去?)所以,我想問(wèn)有沒(méi)有一個(gè)方法,可以讓我在$.ajax.prototype上加幾行代碼就實(shí)現(xiàn)攜帶隨機(jī)參數(shù)的做法?
修改jQuery ajax.js源碼的一個(gè)問(wèn)題
回首憶惘然
2018-09-04 09:58:20