iOS开发和localStorage/sessionStorage
一、前言
在近期的工作中,有前端同学告诉我要清除localStorage,我当时对localStorage完全没有概念,所以就在w3c看了一下相关的内容,下面简单的介绍一下。算是对iOS开发者普及H5的一些常识吧,高手请直接忽略。
二、localStorage && sessionStorage
在HTML5中,为了在客户端存储数据,HTML提供了两种在客户端存储数据的新方法:
* localStorage:没有时间限制的数据存储。
* sessionStorage:针对一个session的数据存储,也就是重新打开页面sessionStorage失效。
在之前,都是用cookie来完成的,但是cookie不适合大量的数据存储,因为他们由每个对服务器的请求来传递,所以速度慢效率也不高。在HTML5中,使用JavaScript来访问和存储数据。
1、localStorage
localStorage存储的数据没有时间限制。只要不被清理会一直存在。下面简单介绍一下相关方法以及使用。
①、判断浏览器是否支持localStorage。
我们只需要书写如下代码,然后在浏览器打开网页即可:
<!DOCTYPE html>
<html>
<head>
<title>LocalStorage</title>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
if (window.localStorage) {
alert("浏览器支持localStorage");
}else {
alert("浏览器不支持localStorage");
}
</script>
</body>
</html>
②、localStorage存储实例
<!DOCTYPE html>
<html>
<head>
<title>LocalStorage</title>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
if (localStorage.requestcout) {
localStorage.requestcout = Number(localStorage.requestcout)+1;
}else {
localStorage.requestcout = 1;
}
document.write("(这里是刷新就算一次访问页面)本网页的访问量是:"+localStorage.requestcout+"次");
</script> </body>
</html>
现在直接在浏览器打开该html页面。然后刷新,结果如下:
这里面我刷新了13次,然后结果是13次。当我关闭刚才的网页再次打开的时候,结果如下:
可以看出,浏览器保存了原来的次数打开控制台可以看到:
③、存储/访问localStorage
localStorage.setItem("name","zhanggui"); localStorage["name"] = "zhanggui"; var valure = localStorage.getItem("name"); var valure = localStorage["name"];
它的存储类似于iOS中的字典。这样就可以将name这个key存入value:zhanggui,然后取出。
④、清除localStorage
localStorage.removeItem("name"); //根据key值清空某个localStorage localStorage.clear(); //这里是讲所有的localStorage清空
2、sessionStorage
sessionStorage和localStorage的操作差不多。唯一的区别就是localStorage每次打开页面还会存在,而sessionStorage每次打开页面都会初始化。就像刚才统计访问页面次数:
如果用sessionStorage来存储,那么下次打开页面他的访问次数是1,而不是累加上次请求次数。
三、iOS对localStorage && sessionStorage的支持
直接写了一个storage.html来进行测试。代码在这里:
这里进行了测试,结果是支持localStorage。具体可以参见代码。当我第一次打开的时候,运行结果如下:
当我重新打开该应用的时候,结果如下:
当我把整个项目删除重新安装,结果又是1次。
其中清空localStorage的方式如下:
[self.contentWebView stringByEvaluatingJavaScriptFromString:@"localStorage.clear()"];
这样就可以清空localStorage。
sessionStorage就不在多介绍了,读者可以自行测试。
四、结语
简单就介绍这么多了。希望对iOS开发者有帮助。
最新文章
- SqlServer 笔记二 获取汉字的拼音首字母
- mysql安装方法
- ASP.NET MVC进阶二
- excel数据导入SQLite数据库
- title与h1标签的区别和联系
- windows版本git的下载地址
- 动态规划——线性dp
- Python 统计Facebook用户爱好的个数
- Ronco创投原则 - 硅谷创业教父Paul Graham文摘
- Js 跨域CORS报错 Response for preflight has invalid HTTP status code 405
- DB2数据库常用命令
- strct配置文件详解
- 使用Linux搭建FTP服务器实现文件共享
- JQuery 获取select被选中的value和text
- HDU 2612 Find a way(找条路)
- python_分布式进程中遇到的问题
- 如何通过sql的insert语句插入大量字符串到oracle的clob字段?
- vue 感觉很好的渲染模式
- jquery实现上一页下一页
- 说说Javac
热门文章
- 主成分分析(PCA)的一种直观理解
- Struts2 源码分析——调结者(Dispatcher)之准备工作
- .NET平台下IIS7.5+无后缀名伪静态实现办法
- vue data对象添加新属性触发视图
- MSSQLLocalDB 连接字符串 vs2015
- membership 启用 roleManager 抛出异常:未能加载文件或程序集MySql.Web
- Verilog学习笔记简单功能实现(六)...............计数分频电路
- Windows台的FailOver群集简介
- CentOS minimal网络设置
- 在 Windows 上遇到非常多 TIME_WAIT 連線時應如何處理