html5之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);
 
其他插件

localForage:https://github.com/mozilla/localForage

store.js:https://github.com/marcuswestin/store.js

时间: 2024-09-19 20:39:00

html5之Localstorage本地存储的相关文章

html5中Localstorage本地存储的例子

在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没了.二者用法完全相同,这里以localStorage为例. if(window.localStorage){  alert('This browser supports localStorage'); }else{  alert('This browser does NOT supp

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

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本地存储localStorage功能

1.添加localStorage localStorage.setItem("key","value"); //以"key"为名称存储一个值"value" 2.获取localStorage localStorage.getItem("key");//获取名称为"key"的值 3.删除localStorage localStorage.removeItem("key")

HTML5 学习总结(三)——本地存储(localStorage、sessionStorage、WebSqlDataBase、IndexedDB)

HTML5问世以后,前端加入了一个重要的功能,便是本地存储,本地存储可分为4类: Local Storage:总的存储量有所限制,并不能提供真正的检索API,数据的生命期比窗口或浏览器的生命期长,数据可被同源的每个窗口或者标签页共享,兼容性很好,使用最多的存储方式. Session Storage:只要浏览器窗口不关闭就会一直存在,不应该把真正有价值的东西放在里面,数据会保存到存储它的窗口或者标签页关闭时,数据只在构建他们的窗口或者标签页可见 Indexed Database:在Indexed

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";   

分享6个实用的HTML5本地存储(Local Storage)教程

HTML5 中最强大并且最具有魅力的特性在于本地存储,使用本地存储可以大大的节约服务器端的压力,并且可以有效的利用客户端的计算性能.使用HTML5可以在客户端存储键值对,并且可以在同一域名下使用.今天我们将分享给大家6个非常不错的HTML5的本地教程,希望大家喜欢! HTML5本地存储 这个教程分3个部分帮助大家如何了解并且使用HTML5新特性本地存储来实现web功能.如下: 第一部分:了解HTML5本地存储 第二部分:让HTML5帮助你 第三部分:开发一个HTML5的web应用 第四部分:完成

html5中本地存储替代cookie:qext.LocalStorage例子

 背景 先看看各种本地存储的变革: Cookies:浏览器均支持,容量为4KB UserData:仅IE支持,容量为64KB Flash:100KB Google Gears SQLite :需要插件支持,容量无限制 LocalStorage:HTML5,容量为5M 现准备在项目中试图取代cookie的实现,基本分析如下: 每次和服务器端进行交互,cookie都会在请求中被携带,cookie过多,也造成带宽的浪费 cookie的容量很小,或许无法满足当今互联网的本地存储需求 在IE8+.Fire