[英]HTML5 local storage sort
我正在使用本地存儲來存儲用戶條目,並將條目顯示在另一頁上。 我需要一種根據最近的編輯日期和時間對它們進行排序的方法。 有沒有辦法用HTML5做到這一點。 如果沒有,最簡單/最有效的方法是什么?
感謝您的投入。
如果您的鍵/值具有固有的順序(字母,數字等),則在它們中添加時間戳可能是多余的。 盡管Storage對象沒有sort方法,但是您可以創建一個新的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對象的本性。 上面的函數通過將鍵名稱嵌入值中來解決此問題。 這樣,它仍然存在,並且用於顯示排序數組的函數可以完成將鍵與值分離的工作。
您必須以某種方式將時間戳記與存儲的值配對,可以為每個值創建一個包裝對象並將該值和時間戳記存儲在單個對象中。 假設您有一個要存儲的值myvalue
,並使用myref
進行引用:
var d=new Date();
var storageObject = {};
storageObject.value = myvalue;
storageObject.timestamp = d.getTime();
localStorage.setItem(myref, JSON.stringify(storageObject));
然后,在另一頁上,您需要將對象重新水化為數組並實現compareFunction函數。
您的另一個選擇是使用Web SQL數據庫和索引數據庫API ,它使您可以更自然地存儲和查詢這種多方面的信息,但是您可能必須創建某種抽象包裝程序才能使內容在瀏覽器中輕松運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.