我正在使用本地存儲來存儲用戶條目,並在另一個頁面上顯示條目。我需要一種方法來根據最近的編輯日期和時間對它們進行排序。有沒有辦法用HTML5做到這一點。如果不是,那麼最簡單/最有效的方法是什麼?HTML5本地存儲排序
感謝您的意見。
我正在使用本地存儲來存儲用戶條目,並在另一個頁面上顯示條目。我需要一種方法來根據最近的編輯日期和時間對它們進行排序。有沒有辦法用HTML5做到這一點。如果不是,那麼最簡單/最有效的方法是什麼?HTML5本地存儲排序
感謝您的意見。
您必須以某種方式將時間戳與存儲的值配對,您可以爲每個值創建一個包裝對象,並將該值和時間戳存儲在一個對象中。假設你已經myvalue
你想參考myref
存儲的值:
var d=new Date();
var storageObject = {};
storageObject.value = myvalue;
storageObject.timestamp = d.getTime();
localStorage.setItem(myref, JSON.stringify(storageObject));
在其他頁面,那麼你需要補充水分,你的對象到一個數組,implement your compareFunction功能。
您的其他選擇是使用Web SQL Database和Indexed Database API,它可以讓您更自然地存儲和查詢這種多方面的信息,但您可能必須創建某種抽象包裝,以使事情輕鬆跨瀏覽器。
如果你的鍵/值有一個固有的順序(按字母,數字等),那麼在它們中加入時間戳可能是多餘的。雖然Storage對象沒有排序方法,但可以創建一個新的Array()然後對其進行排序。
function SortLocalStorage(){
if(localStorage.length > 0){
var localStorageArray = new Array();
for (i=0;i<localStorage.length;i++){
localStorageArray[i] = localStorage.key(i)+localStorage.getItem(localStorage.key(i));
}
}
var sortedArray = localStorageArray.sort();
return sortedArray;
}
這樣做的缺點是數組不是關聯的,而是JavaScript Array對象的性質。上面的函數通過將鍵名嵌入到值中解決了這個問題。這樣它仍然在那裏,你用來顯示排序數組的函數可以完成將鍵和值分開的腳步。
我需要同樣的東西,您的解決方案對我來說非常合適。謝謝。 – rolinger 2016-08-05 01:08:27
您是否存儲JSON編碼的對象?你能不能在添加到本地存儲的時候標記這些條目? – robertc 2010-10-18 16:33:29
我沒有存儲JSON對象。 – intl 2010-10-18 17:55:29
另外,我正在尋找一種基於分揀系統對它們進行分類的方法。我現在想的唯一辦法就是在本地存儲值中包含一個時間戳。 – intl 2010-10-18 18:57:48