修改jQuery ajax.js源碼的一個(gè)問(wèn)題 財(cái)富值47

科技 未結(jié) 3 1959
125jzdh
125jzdh 2022-09-30 10:00

最近開(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ù)的做法?

===============編輯:以下是采用了 邊城 大神給出的思路 很方便=========

$.ajax = (function(ajax) {return function(url, data) {url.data != undefined ? url.data.randomnumber = Math.random() : url.data = {randomnumber:Math.random()};return ajax.call($, url, data);};})($.ajax);

把代碼寫(xiě)在公共組件里面就可以了.

相關(guān)標(biāo)簽:
3條回答
  • 2022-09-30 10:14

    不過(guò)你的想法也是可以實(shí)現(xiàn)的,只是要稍麻煩一點(diǎn)(只是寫(xiě)個(gè)思路,沒(méi)去調(diào)試)

    0 討論(0)
  • 2022-09-30 10:24

    一般我比較喜歡定義一個(gè)自己的方案,比如 $.myAjax,或者寫(xiě)在自己的應(yīng)用類里面如 app.ajax,項(xiàng)目里都用這個(gè)。

    0 討論(0)
  • 2022-09-30 10:29

    一般建議抽象一個(gè)全局方法出來(lái)。經(jīng)過(guò)包裝之后。最后調(diào)用$.ajax.

    0 討論(0)
提交回復(fù)
最新問(wèn)題
哪個(gè)醫(yī)院有不孕 1
極米代言人是誰(shuí)?, 1
80寸電視和85寸電視為啥寬度不一樣 1
不通輸卵管如何治療 1
聯(lián)想投影機(jī)紅色欠佳,比正常差一半 3
聯(lián)想t500投影儀蘋(píng)果手機(jī)如何視頻投影 1
小度智能屏應(yīng)用中心都有哪些應(yīng)用 1
去哪家專治輸卵管堵了醫(yī)院好 1
人工智能專業(yè)學(xué)校排名 1
咸陽(yáng)不育怎么治療 1
猜你喜歡
銀川做第三代試管比較厲害的醫(yī)院靠譜么?銀川可以做試管嗎?
廣州哪里做第三代試管罕見(jiàn)病比較好?費(fèi)用詳細(xì)了解!
四川三代試管嬰兒到底需要多少錢(qián),花費(fèi)是多少呢?
懷孕前三個(gè)月睡眠姿勢(shì),懷孕四個(gè)月什么睡姿好?
高齡女性做試管嬰兒怎么才能改善卵子質(zhì)量,內(nèi)附價(jià)格參考!
深圳試管嬰兒費(fèi)用可否報(bào)銷,一次搞懂!
2024西安第三代試管嬰兒的費(fèi)用是多少?
河北三代試管一般多少費(fèi)用,附相關(guān)條件限制
成都試管嬰兒需要準(zhǔn)生證嗎,了解價(jià)格情況!
關(guān)于泰國(guó)試管囊胚移植后的那些事兒,一次全講清楚!
熱門(mén)文章
長(zhǎng)沙助孕機(jī)構(gòu)正規(guī)嗎?信息優(yōu)勢(shì)全解讀
去泰國(guó)做試管比較好的中介怎么選擇?
泰國(guó)三代試管醫(yī)院排名前七
如何做第三代試管嬰兒?詳細(xì)步驟解析
西安比較大的助孕服務(wù)公司(西安三大助孕機(jī)構(gòu))
天津私立醫(yī)院三代試管成功率數(shù)據(jù)公布,快來(lái)看2025排名
泰國(guó)試管嬰兒口碑如何?
國(guó)外私立醫(yī)院三代試管成功率排名公布,不用擔(dān)心找不到醫(yī)院了
去泰國(guó)做試管嬰兒的親身體驗(yàn)
北京私立醫(yī)院試管成功率數(shù)據(jù)已出,快看看排名
“成功者揭密”2025年深圳比較好的三代試管醫(yī)院的成功率如何
【就診指南】安徽做三代試管嬰兒醫(yī)院比較好?
呂梁公立醫(yī)院三代試管嬰兒費(fèi)用曝光,哪家試管成功率高?
烏魯木齊做試管到哪家醫(yī)院好 烏魯木齊哪里做試管好
【今日播報(bào)】北京三院一代試管嬰兒成功率 北京三院做第三代試管多少錢(qián)
冠心病做試管嬰兒會(huì)影響下一代嗎?
無(wú)償分享8種催奶下奶快的湯,搭配這些蔬菜還能補(bǔ)充營(yíng)養(yǎng)
廈門(mén)做第三代試管嬰兒需要多少錢(qián)?
廣西醫(yī)科大醫(yī)院能做試管嬰兒?jiǎn)??成功率高嗎?/a>
大約費(fèi)用明細(xì)第三代試管嬰兒
泰國(guó)試管助孕需要多少錢(qián)?詳細(xì)明細(xì)是什么?
美國(guó)三代試管嬰兒費(fèi)用一覽,三次助孕需多少資金?
2024年云南省有哪幾家三代試管醫(yī)院?附試管三男收費(fèi)詳情
玉林解脲脲支原體陽(yáng)性做三代試管的成功率高嗎費(fèi)用是多少
2025年泰國(guó)艾滋病治療試管嬰兒需要多少錢(qián)?是全部自費(fèi)嗎?
廣告合作方 廣告申請(qǐng)