簡體   English   中英

使用jQuery的$ .getScript(),我可以感知304未修改的標頭嗎?

[英]Using jQuery's $.getScript(), can I sense 304 Not Modified Headers?

我有一個應用程序(小部件),其中我在5分鍾的計時器上使用$ .getScript(),每五分鍾加載一次文件。 然后,我獲取剛剛下載的文件的內容,並重建頁面,以便可以更新我的小部件。 但是,大多數情況下,文件未更改,並且當我的計時器執行$ .getScript()時,firebug每5分鍾顯示304 Not Modified標頭。

我想知道何時未修改文件,以便不浪費用戶資源,無故重建頁面。

使用$ .getScript()時是否可以獲得html標頭?

代替getScript (),請使用ajax ()-它更強大,並且減少了函數調用。

請注意,get(),post()和getScript()僅允許您將函數綁定為成功。 我認為,由於我提到的原因,使用ajax函數代替所有快捷方式是一個好習慣。

您需要complete事件,因為它為您提供了xmlHttpRequest (XHR)對象。

為了獲得與getScript ()相同的效果,您必須在ajax選項中添加dataType: 'script'

現在,您可以使用complete事件來檢查XHR代碼並返回是否未修改的代碼。

例如:

$.ajax({
    url: 'your-url',
    dataType: 'script',
    complete: function(xhr) { 
        if (xhr.status == 304) return;
        // or better: if (xhr.status != 200) return;
        // your code goes here
    }
});

您不能事先知道資源沒有被修改(如果您在客戶端沒有邏輯的話)。

您必須詢問服務器,該服務器盡早檢查並發送304代碼(這樣可以更快並減少服務器的負載)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM