第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

章節(jié)
問(wèn)答
課簽
筆記
評(píng)論
占位
占位

預(yù)處理script類型

$.ajax() 調(diào)用不同類型的響應(yīng),被傳遞到成功處理函數(shù)之前,會(huì)經(jīng)過(guò)不同種類的預(yù)處理(prefilters)。

預(yù)處理的類型取決于由更加接近默認(rèn)的 Content-Type 響應(yīng),但可以明確使用 dataType 選項(xiàng)進(jìn)行設(shè)置。如果提供了 dataType 選項(xiàng), 響應(yīng)的 Content-Type 頭信息將被忽略。

有效的數(shù)據(jù)類型是 text, html, xml, json,jsonp,和 script

dataType:預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動(dòng)根據(jù) HTTP 包 MIME 信息來(lái)智能判斷,比如 XML MIME 類型就被識(shí)別為 XML。在1.4中,JSON 就會(huì)生成一個(gè) JavaScript 對(duì)象,而 script 則會(huì)執(zhí)行這個(gè)腳本。隨后服務(wù)器端返回的數(shù)據(jù)會(huì)根據(jù)這個(gè)值解析后,傳遞給回調(diào)函數(shù)。

script 類型

$.ajax({
    type     : "GET",
    url      : "test.js",
    dataType : "script",
    complete: function(jqXHR, status) {
        console.log(jqXHR, status)
    }
});

根據(jù) API 的說(shuō)明可知,如果 dataType 類型為 script 的時(shí)候,需要處理。

  1. 執(zhí)行腳本
  2. 內(nèi)容當(dāng)作純文本返回
  3. 默認(rèn)情況下不會(huì)通過(guò)在 URL 中附加查詢字符串變量 "_=[TIMESTAMP]" 進(jìn)行自動(dòng)緩存結(jié)果,除非設(shè)置了 cache 參數(shù)為 true
  4. 在遠(yuǎn)程請(qǐng)求時(shí)(不在同一個(gè)域下),所有 POST 請(qǐng)求都將轉(zhuǎn)為GET請(qǐng)求。(因?yàn)閷⑹褂?DOM 的 script 標(biāo)簽來(lái)加載)

針對(duì)上述四點(diǎn),我們看看處理的流程。

inspectPrefiltersOrTransports(prefilters,s,options,jqXHR)

此時(shí)的 dataType 類型就會(huì)經(jīng)過(guò)對(duì)應(yīng)的預(yù)處理 ajaxPrefilter("script"),其中 s.cache (默認(rèn): true, dataType 為 "script" 和 "jsonp" 時(shí)默認(rèn)為 false)。

jQuery.ajaxPrefilter("script", function(s) {
    if (s.cache === undefined) {
        s.cache = false;
    }
    if (s.crossDomain) {
        s.type = "GET";
    }
});

預(yù)處理的處理就是將其緩存為設(shè)置為 false ,瀏覽器將不緩存此頁(yè)面,這將在請(qǐng)求的 URL 的查詢字符串中追加一個(gè)時(shí)間戳參數(shù),以確保每次瀏覽器下載的腳本被重新請(qǐng)求,工作原理是在 GET 請(qǐng)求參數(shù)中附加" _={timestamp} "在請(qǐng)求的地址后面加一個(gè)時(shí)間戳。

if (s.cache === false) {
    s.url = rts.test(cacheURL) ?
    // If there is already a '_' parameter, set its value
    cacheURL.replace(rts, "$1_=" + ajax_nonce++) :
    // Otherwise add one to the end
    cacheURL + (ajax_rquery.test(cacheURL) ? "&" : "?") + "_=" + ajax_nonce++;
}

此時(shí)的 s.url = "test.js?_=1402362401890",該參數(shù)不是其他請(qǐng)求所必須的,除了在 IE8 中,當(dāng)一個(gè) POST 請(qǐng)求一個(gè)已經(jīng)用 GET 請(qǐng)求過(guò)的 URL。

我們可以參考下右邊的簡(jiǎn)單的調(diào)試。

任務(wù)

?不會(huì)了怎么辦
||

提問(wèn)題

寫(xiě)筆記

公開(kāi)筆記
提交
||

請(qǐng)驗(yàn)證,完成請(qǐng)求

由于請(qǐng)求次數(shù)過(guò)多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求

加群二維碼

打開(kāi)微信掃碼自動(dòng)綁定

您還未綁定服務(wù)號(hào)

綁定后可得到

  • · 粉絲專屬優(yōu)惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問(wèn)題答復(fù)提醒
  • · 賬號(hào)支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書(shū)簽

邀請(qǐng)您關(guān)注公眾號(hào)
關(guān)注后,及時(shí)獲悉本課程動(dòng)態(tài)

舉報(bào)

0/150
提交
取消
全部 精華 我要發(fā)布
全部 我要發(fā)布
最熱 最新
只看我的

手記推薦

更多

本次提問(wèn)將花費(fèi)2個(gè)積分

你的積分不足,無(wú)法發(fā)表

為什么扣積分?

本次提問(wèn)將花費(fèi)2個(gè)積分

繼續(xù)發(fā)表請(qǐng)點(diǎn)擊 "確定"

為什么扣積分?