int*_*ntl 5 html javascript html5 local-storage
我正在使用本地存储来存储用户条目,并在另一个页面上显示条目.我需要一种方法来根据最新的编辑日期和时间对它们进行排序.有没有办法用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;
}
Run Code Online (Sandbox Code Playgroud)
这样做的缺点是,数组不是关联的,而是JavaScript Array对象的本性。上面的函数通过将键名称嵌入值中来解决此问题。这样,它仍然存在,并且用于显示排序数组的函数可以完成将键与值分离的工作。
您必须以某种方式将时间戳与存储的值配对,您可以为每个值创建一个包装对象,并将值和时间戳存储在单个对象中。myvalue假设您有一个想要参考存储的值myref:
var d=new Date();
var storageObject = {};
storageObject.value = myvalue;
storageObject.timestamp = d.getTime();
localStorage.setItem(myref, JSON.stringify(storageObject));
Run Code Online (Sandbox Code Playgroud)
在另一页上,您需要将对象重新水合到数组中并实现compareFunction函数。
您的另一个选择是使用Web SQL 数据库和索引数据库 API,它可以让您更自然地存储和查询此类多方面信息,但您可能必须创建某种抽象包装器才能轻松跨浏览器工作。
| 归档时间: |
|
| 查看次数: |
7530 次 |
| 最近记录: |