html5中Localstorage本地存储的例子

在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没了。二者用法完全相同,这里以localStorage为例。

if(window.localStorage){
 alert('This browser supports localStorage');
}else{
 alert('This browser does NOT support localStorage');
}

 Localstorage本地存储基本用法

如何创建和访问 localStorage

<script type="text/javascript">
localStorage.lastname="Smith";
document.write(localStorage.lastname);
</script>

上面就创建了一个localStorage。

我们再来做一个刷新页面,增加访问次数的功能!很简单,代码如下:

<script type="text/javascript">
if (localStorage.pagecount)
  {
  localStorage.pagecount=Number(localStorage.pagecount) +1;
  }
else
  {
  localStorage.pagecount=1;
  }
document.write("Visits "+ localStorage.pagecount + " time(s).");
</script>

上面是用点的方式进行操作,localStorage还有存储API,具体如下:

调用setItem()方法,将对应的名字和值传递出去,可以实现数据存储

调用getItem()方法,将名字传递出去,可以获取对应的值

调用removeItem()方法,名称作为参数,可以删除对应的数据

调用clear()方法,可以删除所有存储的数据

使用length属性以及key()方法,传入0~length-1的数字,可以枚举所有存储数据的名字

用法如下:

localStorage.setItem("name", "haorooms");    // 以"name"为名字存储一个字符串
localStorage.getItem("name");            // 获取"name"的值

// 枚举所有存储的名字/值对
for(var i=0; i<localStorage.length; i++){        // length表示所有的名值对总数
    var name = localStorage.key(i);            // 获取第i对的名字
    var value = localStorage.getItem(name);        // 获取该对的值
}

localStorage.removeItem("name");        // 删除"name"项
localAStorage.clear();                // 全部删除
sessionStorage和Localstorage区别

sessionStorage用法和Localstorage用法一样,区别就是,sessionStorage是会话存储,关闭浏览器,存储内容就会被清除。

低版本浏览器存储兼容方案

IE User Data

微软在IE5及之后的IE浏览器中实现了它专属的客户端存储机制——“userData”。

userData可以实现一定量的字符串数据存储,对于IE8以前的IE浏览器中,可以将其用作是Web存储的替代方案。

iLocalStorage插件

由于IE8以下浏览器的本地存储API不一样,所以就写了个插件兼容各大浏览器存储。提供的方法及用法如下:

getItem: 获取属性
setItem: 设置属性
removeItem: 删除属性

iLocalStorage.setItem('key', 'value');
console.log(iLocalStorage.getItem('key'));
iLocalStorage.removeItem('key');
插件代码

/**
 * LocalStorage 本地存储兼容函数
 * getItem: 获取属性
 * setItem: 设置属性
 * removeItem: 删除属性
 *
 *
 * @example
 *
    iLocalStorage.setItem('key', 'value');
    console.log(iLocalStorage.getItem('key'));
    iLocalStorage.removeItem('key');
 *
 */

(function(window, document){

    // 1. IE7下的UserData对象
    var UserData = {
        userData: null,
        name: location.href,
        init: function(){
            // IE7下的初始化
            if(!UserData.userData){
                try{
                    UserData.userData = document.createElement("INPUT");
                    UserData.userData.type = "hidden";
                    UserData.userData.style.display = "none";
                    UserData.userData.addBehavior("#default#userData");
                    document.body.appendChild(UserData.userData);
                    var expires = new Date();
                    expires.setDate(expires.getDate() + 365);
                    UserData.userData.expires = expires.toUTCString();
                } catch(e){
                    return false;
                }
            }
            return true;
        },

        setItem: function(key, value){
            if(UserData.init()){
                UserData.userData.load(UserData.name);
                UserData.userData.setAttribute(key, value);
                UserData.userData.save(UserData.name);
            }
        },

        getItem: function(key){
            if(UserData.init()){
                UserData.userData.load(UserData.name);
                return UserData.userData.getAttribute(key);
            }
        },

        removeItem: function(key){
            if(UserData.init()){
                UserData.userData.load(UserData.name);
                UserData.userData.removeAttribute(key);
                UserData.userData.save(UserData.name);
            }
        }

    };

    // 2. 兼容只支持globalStorage的浏览器
    // 使用: var storage = getLocalStorage();
    function getLocalStorage(){
        if(typeof localStorage == "object"){
            return localStorage;
        } else if(typeof globalStorage == "object"){
            return globalStorage[location.href];
        } else if(typeof userData == "object"){
            return globalStorage[location.href];
        } else{
            throw new Error("不支持本地存储");
        }
    }
    var storage = getLocalStorage();

    function iLocalStorage(){

    }

    // 高级浏览器的LocalStorage对象
    iLocalStorage.prototype = {
        setItem: function(key, value){
            if(!window.localStorage){
                UserData.setItem(key, value);
            }else{
                storage.setItem(key, value);
            }
        },

        getItem: function(key){
            if(!window.localStorage){
                return UserData.getItem(key);
            }else{
                return storage.getItem(key);
            }
        },

        removeItem: function(key){
            if(!window.localStorage){
                UserData.removeItem(key);
            }else{
                storage.removeItem(key);
            }
        }
    }

    if (typeof module == 'object') {
        module.exports = new iLocalStorage();
    }else {
        window.iLocalStorage = new iLocalStorage();
    }

})(window, document);

以上就是用户操作行为本地存储的例子了

测试发现,目前浏览器对这个支持不太好,仅iPad和Firefox支持,而且Firefox支持得乱糟糟,e对象根本没有那些属性。iPad支持非常好,用的是e.uri(不是e.url),台式机上的Safari不行,诡异,估计越后面浏览器版本越高可能就会支持的更好了。

时间: 2024-08-03 09:52:46

html5中Localstorage本地存储的例子的相关文章

html5之Localstorage本地存储

Localstorage本地存储基本用法   如何创建和访问 localStorage   <script type="text/javascript"> localStorage.lastname="Smith"; document.write(localStorage.lastname); </script> 上面就创建了一个localStorage.   我们再来做一个刷新页面,增加访问次数的功能!很简单,代码如下:   <scr

HTML5 LocalStorage 本地存储原理详解

  说到Web开发中的本地存储,大家最先想到的应该就是Cookies这玩意了,最早的Cookies自然是大家都知道,问题主要就是太小,大概也就4KB的样子,而且IE6只支持每个域名20个cookies,太少了.优势就是大家都支持,而且支持得还蛮好.很早以前那些禁用cookies的用户也都慢慢的不存在了,就好像以前禁用ja vasc ript的用户不存在了一样. userData是IE的东西,垃圾.现在用的最多的是Flash吧,空间是Cookie的25倍,基本够用.再之后Google推出了Gear

详解HTML5 LocalStorage本地存储用法

说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就4KB的样子,而且IE6只支持每个域名20个cookies,太少了.优势就是大家都支持,而且支持得还蛮好.很早以前那些禁用cookies的用户也都慢慢的不存在了,就好像以前禁用javascript的用户不存在了一样. userData是IE的东西,垃圾.现在用的最多的是Flash吧,空间是Cookie的25倍,基本够用.再之后Google推出了G

HTML5中的本地、WebSql、离线应用存储

1.   HTML5存储相关API a)   Localstorage 本地存储 b)   Web Sql DataBase 本地数据库存储 c)   .manifest 离线应用存储 2.   HTML5 localStorage 本地存储: a)   本地存储是一个window的属性:, 相当于一个大型的Cookie; b)   window.localStorage : c)   set方法:         i.      localStorage.t1 = "aaa";   

HTML5中Localstorage的使用教程

  这篇文章主要介绍了HTML5中Localstorage的使用教程,Localstorage被用于浏览器和系统交互的本地传出,需要的朋友可以参考下 什么是localstorage 前几天在老项目中发现有对cookie的操作觉得很奇怪,咨询下来是要缓存一些信息,以避免在URL上面传递参数,但没有考虑过cookie会带来什么问题: ① cookie大小限制在4k左右,不适合存业务数据 ② cookie每次随HTTP事务一起发送,浪费带宽 我们是做移动项目的,所以这里真实适合使用的技术是locals

HTML5中localStorage与sessionStorage使用详解

 1,Web存储介绍 HTML5的Web存储功能是让网页在用户计算机上保存一些信息.Web存储又分为两种: (1)本地存储,对应 localStorage 对象.用于长期保存网站的数据,并且站内任何页面都可以访问该数据. (2)会话存储,对应 sessionStorage 对象.用于临时保存针对一个窗口(或标签页)的数据.在访客关闭窗口或者标签页之前,这些数据是存在的,而关闭之后就会被浏览器删除. 2,本地存储与会话存储的异同 (1)本地存储和会话存储的操作代码完全相同,它们的区别仅在于数据的寿

解决html5中localStorage 存储json对象存储格式问题

localStorage.setItem(att)会自动将att存储成字符串形式,如:  代码如下 复制代码 var arr=[1,2,3]; localStorage.setItem("temp",arr); typeof localStorage.getItem("temp");会返回String localStorage.getItem("temp");会返回1,2,3 但值得注意的是,localStorage.setItem()却不会自动

localstorage 本地存储

define(function() { var win = window, doc = document, decode = function(s) { // 参考jquery cookie的实现: https://github.com/carhartl/jquery-cookie/blob/master/jquery.cookie.js if (s.indexOf('"') === 0) { s = s.slice(1, - 1).replace(/\\"/g, '"').

html5中canvas 圆周运动和椭圆运动例子

一. 圆周运动 1.1 思路分析: 圆的方程为: // (x0, y0)为圆心位置:(x, y)为圆上的点 (x - x0) ^ 2 + (y - y0) ^ 2 = r ^ 2 cos(angle) ^ 2 + sin(angle) ^ 2 = 1 因此,综合以上两式,可得: x = r * cos(angle) + x0 y = r * sin(angle) + y0 因此,应用正弦函数计算y坐标,用余弦函数计算x坐标. 1.2 实例: // cancelRequestAnimFrame的兼