zoukankan      html  css  js  c++  java
  • 在localStorage中存储对象数组并读取

    频繁ajax请求导致页面响应变慢。 
    于是考虑将数据存储在window.storage中,这样只请求一次ajax,而不需要频繁请求。 
    鉴于localstorage中只能存储字符串,所以我们要借助于JSON.stringify()和JSON.parse();

    $.ajax({
        type: "get",
        async: "true",
        url: "",
        data: {},
        dataType: "jsonp",
        success: function(data){
            if(data instanceof Array){
                stroage.push(JSON.stringify(data[i])); //storage是外部定义的数组  storage = []
            }
        },
        error: function(){
        }
    });

    现在,我们将data存储在了storage中,当我们需要使用时:

    fucntion getData(){
        window.localStorage.job = JSON.stringify(storage); //将storage转变为字符串存储
        var job = JSON.parse(window.localStorage.job);
        for(var i = 0; i < job.length; i++){
            job[i] = JSON.parse(job[i]);
        }
        //此时job中存储的就是对象数组了
    }

    本地存储外,除了localStorage,还有sessionStorage. 

    (1)localStorage和sessionStorage都是用来存储客户端临时信息的对象。 
    (2)localStorage和sessionStorage都只能存储字符串类型的对象 
    (3)localStorage生命周期是永久,除非用户手动清除localStorage信息,否则这些信息将永远存在。 
    (4)sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么通过sessionStorage中存储的数据也就被清空了。 
    (5)不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。

    【转自https://blog.csdn.net/liuyan19891230/article/details/52638408】

  • 相关阅读:
    常见的 Java 错误及避免方法
    常见的 Java 错误及避免方法
    面试中有哪些经典的数据库问题?
    面试中有哪些经典的数据库问题?
    面试中有哪些经典的数据库问题?
    十点总结,为何 Linux 如此深得人心
    十点总结,为何 Linux 如此深得人心
    十点总结,为何 Linux 如此深得人心
    C++_template_栈的链式存储及实现
    关于RN的热更新
  • 原文地址:https://www.cnblogs.com/vichang/p/9252467.html
Copyright © 2011-2022 走看看