使用$.ajax({..})
我從服務器接收XML文件的內容。所以我不必在每次加載頁面時都請求這個文件,如果可能的話,我希望在本地緩存這些內容,並將其保存在磁盤上的一個文件中。但是要將其緩存到即使在第二天重新啓動後也可以使用。 XML文件內容每天更新,因此不需要經常重新發送文件。Javascript/JQuery。本地緩存xml文件
可能嗎?如果是這樣,我怎麼能做到這一點?你能提供一個鏈接或一些示例代碼嗎?我找到了一些我能理解的好東西,但是我沒有成功。
使用$.ajax({..})
我從服務器接收XML文件的內容。所以我不必在每次加載頁面時都請求這個文件,如果可能的話,我希望在本地緩存這些內容,並將其保存在磁盤上的一個文件中。但是要將其緩存到即使在第二天重新啓動後也可以使用。 XML文件內容每天更新,因此不需要經常重新發送文件。Javascript/JQuery。本地緩存xml文件
可能嗎?如果是這樣,我怎麼能做到這一點?你能提供一個鏈接或一些示例代碼嗎?我找到了一些我能理解的好東西,但是我沒有成功。
我看了一下這個文檔,無法看到並理解緩存在瀏覽器重新啓動或PC重新啓動時是否持續。你有沒有知道它是否有用? – AndreiBogdan
是的,即使有人關閉應用程序或瀏覽器 – Ashirvad
這是...... ....真棒!謝謝:) – AndreiBogdan
默認情況下,將根據服務器如何設置文件頭你通常緩存響應的瀏覽器。如果你需要堅持不懈,那麼你可以使用local storage以及可能用於傳統支持的cookies(雖然存儲的實際大小限制)。
使用本地存儲非常簡單。您也可以帶一個到期時間戳,讓客戶知道什麼時候更新緩存。
準系統例如:
var mydata = { foo: 'bar' };
var cache = {
data: mydata,
expires: new Date().getTime()
}
sessionStorage.setItem("cache", JSON.stringify(cache));
而且來獲取數據:
var cache = JSON.parse(sessionStorage.getItem("cache"));
if (cache.expires + day < new Date().getTime()) {
// get a fresh copy
} else {
var mydata = cache.data;
}
有許多本地緩存的抽象,如果你更喜歡使用API的一個更高的水平,你可以使用來代替。
我發現「DOM Storage在以下瀏覽器中受支持:FF3.5 +,Chrome4 +,Safari4 +,Opera10.5 +和IE8 +」。嗯,我猜這不適用於移動設備的Android瀏覽器... – AndreiBogdan
我相信Android的默認瀏覽器是基於WebKit的,應該支持本地存儲。 iOS是Safari,它絕對應該支持它。 – David
您可以在您的ajax請求中使用「cache:true」選項。 –
,它會緩存多久?它會在瀏覽器重新啓動時被刪除,或者...我不知道? – AndreiBogdan
是的,它會在瀏覽器重新啓動時新增。 –