zoukankan      html  css  js  c++  java
  • IE 之 userData 模拟 localStorage

    chrome,  safari, firefox, ie 9都支持 localStorage.  但可恶的是,中国 ie 6 占有最大的比例。 使用 cookie 不但容量有限,而且给我们增加了不少的带宽,也进行影响网站的性能。

    所以我写了 localStorage.js 来模拟 localStorage, 这样其它js 就跨浏览器地使用localStorage了.

    代码

    if(!window.localStorage && /MSIE/.test(navigator.userAgent)){ 
        if(!window.UserData) { 
            window.UserData = function(file_name) { 
                if(!file_name) file_name="user_data_default"; 
                var dom = document.createElement('input'); 
                dom.type = "hidden"; 
                dom.addBehavior ("#default#userData"); 
                document.body.appendChild(dom); 
                dom.save(file_name); 
                this.file_name = file_name; 
                this.dom = dom; 
                return this; 
            };

            window.UserData.prototype = { 
                setItem:function(k, v) 
                { 
                    this.dom.setAttribute(k,v); 
                    this.dom.save(this.file_name); 
                }, 
                getItem:function(k){ 
                    this.dom.load(this.file_name); 
                    return this.dom.getAttribute(k); 
                }, 
                removeItem:function(k){ 
                    this.dom.removeAttribute(k); 
                    this.dom.save(this.file_name); 
                },

                clear:function() { 
                   this.dom.load(this.file_name); 
                   var now = new Date(); 
                   now = new Date(now.getTime()-1); 
                   this.dom.expires = now.toUTCString(); 
                   this.dom.save(this->file_name); 
                } 
            }; 
        } 
        window.localStorage= new window.UserData("local_storage"); 
    }

    缺陷

           userdata有个缺陷是不支持跨目录存储。

           这个实现要求 使用 localStorage的时候,只使用 setItem, getItem, removeItem接口, 而不能直接使用 localStorage.your_key 的方式。

  • 相关阅读:
    事件处理
    模板语法
    计算属性和侦听器
    Class 与 Style绑定
    Springboot使用redis
    修改docker-toolbox/boot2docker容器镜像
    docker容器如何安装vim
    Maven+Docker,发布到Registry
    Maven + Docker
    Jenkins-SVN + Maven + Docker
  • 原文地址:https://www.cnblogs.com/jijm123/p/8434044.html
Copyright © 2011-2022 走看看