`

javascript浏览器端(客户端)存储数据

 
阅读更多

在web页面开发时候经常需要在用户的浏览器端保存一些数据,使得下次不用和后台服务器进行交换或是为了一些易用性。比如用户点击了某个checkbox,下次我们希望用户打开该页面该checkbox仍然是上次关闭时候的状态

 

1、http cookies

http cookies就不用多介绍了

示例代码如下:

getCookieValue();
function getCookieValue() {
	var cookieLength = document.cookie.length;
	var cookieName = "cookieName="
	if (cookieLength > cookieName.length) {
		var startPosi = document.cookie.indexOf(cookieName);
		if (startPosi >= 0) {
			var endPosi = document.cookie.indexOf(";", startPosi);
			if(endPosi < 0) {
				endPosi = document.cookie.length;
			} 
			var cookieValue = document.cookie.substring(startPosi + cookieName.length, endPosi);
			alert(cookieValue);
		}
	}
} 

function change() {
	document.cookie="cookieName=cookieValue";
}

从上可以看出,写cookie相当简单document.cookie="cookieName=cookieValue";就ok啦。

其中cookieName为cookie的名字,cookieValue为cookie的值。

 

读cookie相对有些麻烦,需要先将起始位置定位到cookieName,

结束位置定位到cookieName之后的第一个;(分号),因为键值对以分号分隔。

然后取得其中的字符串即为cookieName=cookieValue

 

从上可以看出对于一些字符像分号需要转义存入,否则会出错,更多详细见

http://hi.baidu.com/noirwinter/blog/item/920f52af3d4201fafbed503f.html

 

2、Web Storage

Web Storage是目前得到支持最广泛的HTML5本地存储规范:IE 8+、FF 3.5+、Safari 4+、Chrome 4+、Opera 10.5+,以及iPhone 2+和Android 2+都已经支持Web Storage。

要判断你的浏览器是否支持Web Storage,可以使用

function supports_html5_storage() {
    try {
        return 'localStorage' in window && window['localStorage'] !== null;
    } catch (e) {
        return false;
    }
}

 

关于web storage的使用,示例代码如下:

getAutoSaveValue();
function getAutoSaveValue() {  
    try {  
    	if (localStorage["autoSave"] != null && localStorage["autoSave"] != "") {
    		alert(localStorage["autoSave"]);
    	}
		return true;
//        return 'localStorage' in window && window['localStorage'] !== null;  
    } catch (e) {
        return false;  
    }  
} 

function change() {
	localStorage.setItem("autoSave", "1");
}

其中函数getAutoSaveValue为获取保存的值,可以看出其调用方法非常简单

直接localStorage["autoSave"]即可,autoSave为保存的变量名

 

其他存储方法如Web SQL Database IndexedDB 见

参考:http://www.iteye.com/magazines/62-html5-local-storage

分享到:
评论
1 楼 hubenshan 2011-10-17  
好东西!值得研究学习!

相关推荐

    PersistJS客户端数据存储的JavaScript框架

    一直以来,Cookie是客户端存储技术中的传统解决方法。然而,相对于像PersistJS这样越来越流行的框架来说,使用cookie还是有一些不好的地方。比如,cookie被限制在4k字节内。在每个HTTP处理中都要发送cookie会浪费...

    google-api-javascript-client:适用于浏览器JavaScript的Google API客户端库,又名gapi

    适用于JavaScript的Google API... 注意:此存储库不包含gapi客户端的源代码。 特征 JavaScript客户端库 。 该库支持。 如果使用TypeScript,则可以安装进行自动补全。 文献资料 导游 样品 链接 讨论区 历史公告

    persist-js:PersistJS是JavaScript客户端持久存储库

    [已弃用]该存储库不再... 向后兼容:如果没有给定浏览器的客户端存储解决方案,则可以使用Flash或Cookie。 兼容兼容:支持即将推出的Internet Explorer,Firefox,Chrome和Safari版本(如果有Flash,也支持Opera)。

    immutio-js-client:immut.io 的 Javascript(Node.js、io.js、浏览器)客户端

    从 Node.js、io.js 或浏览器 Javascript 应用程序中的 immut.io 存储和检索任意 blob。 有关更多信息,请参阅 。 安装 使用预先发布的 Blob: [removed][removed] [removed] var im = new Immutio(); [removed] ...

    R7Storage:R7Storage 在客户端处理跨浏览器的数据存储!

    R7Storage 是一个用于客户端数据存储的小库。 它使用 localStorage 并回退到 cookie。 用法 克隆 repo git clone git@github.com:r7com/R7Storage.git R7Storage . setItem ( "user" , "Guilherme" ) ; //return ...

    irmin-js:Irmin的Javascript绑定

    它可以在浏览器的客户端使用,也可以在Node.js的服务器端使用。使适应版权所有(c)2015 Thomas Leonard 特此授予以任何目的使用,复制,修改和分发此软件的许可,无论是否收费,只要上述版权声明和此许可声明出现...

    《JavaScript学习指南(第2版)》[PDF]

     浏览器端的cookie及更新的客户端存储技术;  在Ajax应用程序中使用XML或JSON表示法的细节。本书遵循已被验证的学习法则,帮助读者逐步理解各种概念,使读者掌握在各种浏览器中创建强大的、快速响应的应用程序的...

    JavaScript权威指南(第6版)

    第20章 客户端存储 20.1 localStorage和sessionStorage 20.2 cookie 20.3 利用IE userData持久化数据 20.4 应用程序存储和离线Web应用 第21章 多媒体和图形编程 21.1 脚本化图片 21.2 脚本化音频和视频 21.3 SVG:可...

    令人敬畏的javascript:browser令人敬畏的浏览器端JavaScript库,资源和闪亮内容的集合

    很棒的浏览器端库,资源和闪亮的东西的集合。 实用工具 用户界面 包装经理 托管JavaScript库,并提供用于获取和打包它们的工具。 -npm是JavaScript的软件包管理器。 网络的程序包管理器。 -客户端软件包管理,...

    JavaScript权威指南(第6版)中文文字版

    第20章 客户端存储 579 20.1 localstorage和sessionstorage 581 20.2 cookie 586 20.3 利用ie userdata持久化数据 592 20.4 应用程序存储和离线web应用 594 第21章 多媒体和图形编程 606 21.1 脚本化图片 606 21.2 ...

    browser-power:可以在浏览器中运行的客户端javascript展示

    我想创建一组完全在客户端运行的文件工具,而没有数据传输到服务器。 这样,我们就可以拥有新一代的基于浏览器的文件工具,它们可以开始替换其命令行版本。下一步是什么我希望看到对本地文件的所有基本操作都可以在...

    JavaScript权威指南(第6版)(中文版)

    第20章 客户端存储 20.1 localStorage和sessionStorage 20.2 cookie 20.3 利用IE userData持久化数据 20.4 应用程序存储和离线Web应用 第21章 多媒体和图形编程 21.1 脚本化图片 21.2 脚本化音频和视频 21.3 SVG:可...

    JavaScript学习指南(第2版).pdf

    ● 浏览器端的cookie及更新的客户端存储技术; ● 在Ajax应用程序中使用XML或JSON表示法的细节。 本书遵循已被验证的学习法则,帮助读者逐步理解各种概念,使读者掌握在各种浏览器中创建强大的、快速响应的应用程序...

    javascript DOM 编程艺术

    从颇具深度的JavaScript语言基础到作用域(链),从引用类型到面向对象编程,从极其灵活的匿名函数到闭包的内部机制,从浏览器对象模型(BOM)、文档对象模型(DOM)到基于事件的Web脚本设计,从XML(E4X)到Ajax及JSON,从...

    客户端统一验证JavaScript函数库及示例源码

    也因为大部分网页浏览器都支持JavaScript,所以它是网页设计时最适合的客户端语言。ChkInputs.js就是通过JavaScript并结合DOM对象的自定义的属性而编写的。当使用时,ChkInputs.js会自动遍历DOM的元素,逐个检测直到...

    JavaScript高级程序设计第3版带书签中文完整版文字版

    《JavaScript高级程序设计(第3版)》主要内容包括:  对JavaScript实现各个组成部分的详尽解读;  对JavaScript面向对象编程的全... 离线应用及客户端存储(包括IndexedDB);  新兴API及ECMAScript Harmony展望。

    qm-browser-client:QMachine 浏览器客户端

    质量 此存储库包含的浏览器客户端。 有关更多信息,请参阅。 ===

    深入浅出JavaScript(中文版)

    《深入浅出JavaScript(中文版)》覆盖了所有的javascript基本知识,从基本网络编程技巧,如变量、函数和循环语句,到高级一些的专题,如表单验证、dom操作、客户端对象、脚本程序调试——甚至是aiax!赶快做好准备……...

Global site tag (gtag.js) - Google Analytics