zoukankan      html  css  js  c++  java
  • 浏览器上实现数据的本地存储・小结

    在客户端存储数据时,我们一般都用cookie(不敏感数据),但是在客户端越来越富的今天,cookie可存储的量(每个域最大4k)实在是小。
    在HTML5中有localStorage可使用,但是这就抛弃了IE8↓。为了兼容,我们可以翻出IE很久以前就搞的一个存储方法:
    给一个元素添加一个特殊的样式url(#default#userData),之后就可以通过setAttribute和getAttribute来存取键值对形式的数据了。
    要注意的一点就是在数据改变后要使用save方法,而数据加载初期要load。
    接下来就贴上使用方法,当使用的浏览器支持HTML5时,就使用localStorage。

    var localStorage = (function(db) {
        if (typeof db.clear == "function") {
            return db;
        }
    
        var database = document.createElement("div")
        database.id = "database";
        database.style.behavior = "url(#default#userData)";
        document.body.appendChild(database);
        database.load("DataStore");
        
        return {
            setItem: function(key, val) {
                database.setAttribute(key, val);
                database.save("DataStore");
            }
    
            , getItem: function(key) {
                return database.getAttribute(key);
            }
    
            , removeItem: function(key) {
                database.removeAttribute(key);
                database.save("DataStore");
            }
        };
    } (localStorage || {}));

    不过就算兼容了 还是会有问题存在,例如在IE上存储的信息,通过Chrome打开时就获取不到了。

  • 相关阅读:
    ASP.NET 2.0 正式版中无刷新页面的开发
    Flex在线录制视频并回放(源码)
    url重写
    在Web应用程序中执行计划任务
    添加类别和修改类别(无限级别分类)
    用C#制作新闻阅读器
    字符串处理
    编程珠玑随笔
    实现元素的全排列
    提高代码质量的三要素
  • 原文地址:https://www.cnblogs.com/TiestoRay/p/2790565.html
Copyright © 2011-2022 走看看