2017-01-14 22 views
3

所以我用這個代碼來改變我的網站的內容和加載每個「頁」特定的插件:裝有阿賈克斯保存插件緩存

$.ajax({ 
    url: urlPath, 
    type: 'GET', 
    success: loadContent //content and plugins are loaded through this 
}); 

現在我發現它不緩存加載的插件loadContent,每次使用阿賈克斯一次又一次地下載它們,thefore頁面請求0.5秒到1.5秒比簡單的HTTP請求慢(插件已經從第1負載緩存後明顯)。 使用cache: true/false沒有任何區別。

我讀過這不能完成,因爲JavaScript不能寫入磁盤,但仍可能我錯過了一些東西,並有一種方法來緩存插件,並避免在每個負載上損失額外的時間?

+0

您應該等待一會兒,直到您刪除問題。我試圖回答你最近的問題,並且即將完成我的答案,直到我發現你已經刪除了你的問題。是的,[所以人們在粗魯無禮的時候會遇到大問題](https://hackernoon.com/the-decline-of-stack-overflow-7cb69faa575d),但是要知道,不是每個人都是這樣的; - ) –

+0

@JohnSlegers是的,我有點生氣,我沒有要求任何代碼,只是一個文本答案,人們的行爲就像我已經要求完成這樣的按鈕製作指南。感謝您的回覆,這讓我感覺更好。我希望你有一個愉快的一天,以及:) (我知道,謝謝回覆,所有這些東西都不歡迎在SO以及,但不管) –

+1

我個人覺得有趣的大多數問題最終在這裏關閉因爲「太寬泛」或不包含任何代碼等愚蠢的原因。我完全同意,當你試圖弄清楚某種方法是否有意義時,要求你展示一些代碼是毫無意義的。我想我與你的情況有關,因爲我已經不止一次地站在你的鞋子裏了;-) –

回答

2

您可以使用替代方法來緩存哪個是localStorage。每個網站都有權在用戶磁盤上存儲高達5 MB的數據。

所以用它來保存數據:

//browser support localStorage 
if((typeof(Storage) !== "undefined"){ 
    localStorage.setItem("mydataname", data); 
} 

,並檢索或下載一個新問題:

//browser support localStorage 
if((typeof(Storage) !== "undefined"){ 
    var data = localStorage.getItem("mydataname"); 
    if(data){ //data does exist in localStorage 
     // Use data, no need to download a new version. 
    } 
    else{ // data doesn't exist, not saved yet or have been removed 
     // download new version of data and save it using the above code. 
    } 
} 
else{ 
    // browser doesn't support localStorage redownload data. 
} 

更多的localStorage here