繁体   English   中英

HTML5本地存储排序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM