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开发者有帮助。
iOS开发和localStorage/sessionStorage的更多相关文章
- 移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题
移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题 开发H5 webapp时经常需要使用本地存储,如localStorage和sessionStor ...
- localStorage sessionStorage 和cookie等前端存储方式总结
localStorage sessionStorage 和cookie localStorage localStorage是本地存储的,除非清空本地数据 localStorage不会自动把数据发给服务 ...
- js中cookie,localStorage(sessionStorage)的存取
一.cookie (原生的不好用,自己简单封装) 1. 存cookie的方法: function setCookie(c_name,value,expiredays) { var exdate=new ...
- 本地存储常用方式 localStorage, sessionStorage,cookie 的区别 和 服务器存储session
本地存储:把一些信息存储到客户端本地(主要目的有很多,其中有一个就是实现多页面之间的信息共享) 1. 离线缓存(xxx.manifest) H5处理离线缓存还是存在一些硬伤的,所以真实项 ...
- iOS开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...
- iOS开发系列--打造自己的“美图秀秀”
--绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...
- iOS开发之再探多线程编程:Grand Central Dispatch详解
Swift3.0相关代码已在github上更新.之前关于iOS开发多线程的内容发布过一篇博客,其中介绍了NSThread.操作队列以及GCD,介绍的不够深入.今天就以GCD为主题来全面的总结一下GCD ...
- 总结iOS开发中的断点续传那些事儿
前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...
- iOS开发系列文章(持续更新……)
iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大 ...
随机推荐
- 【Swift学习】Swift编程之旅---Subscripts下标(十六)
类.结构体和枚举可以定义下标,他可以快速简单地访问集合(set,array,dict)的元素,你可以使使用下标来获取和设置集合元素. 你可以定义一个类型的多个下标,通过索引值类型的不同来进行重载,而且 ...
- git入门到熟练使用
最近以为接触ios开发,所以对git也产生了一点兴趣.所以在网上搜索资料开始学习,但大部分都是没用的copy的文章,有一个还不错的,推荐给大家 http://www.liaoxuefeng.com/w ...
- [译]学习IPython进行交互式计算和数据可视化(一)
--学习IPython进行交互式Python编程.高性能数字计算和数据可视化 作者:Cyrille Rossant 译者:Tacey Wong 注:仅为个人翻译及学习,多有谬处,E文尚可的推荐阅读英文 ...
- SQL--存储过程
声明和调用有返回值的存储过程 分页存储过程 转账的存储过程:
- 写给自己的 程序集&msil 扫盲
嘴上不说 心里却想MD 这家伙在博客园装了这么久的高手 竟然连这都不会 ,我去噢. 程序集签名 .net 下 “程序集” 什么东东 ,反正就是听着挺牛x的,其实就是指“一堆程序”从我们传统的C++封装 ...
- 【转载】8天学通MongoDB——第三天 细说高级操作
今天跟大家分享一下mongodb中比较好玩的知识,主要包括:聚合,游标. 一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce. &l ...
- MySQL 复制介绍及搭建
MySQL复制介绍 MySQL复制就是一台MySQL服务器(slave)从另一台MySQL服务器(master)进行日志的复制然后再解析日志并应用到自身,类似Oracle中的Data Guard. M ...
- 帝国cmsV6.6版数据表
信息表:每个模型都有以下六个表 phome_ecms_news 新闻系统模型-主表 phome_ecms_news_data_1 新闻系统模型-副表1 副表可无限增加 信息表 phome_ecms_n ...
- iOS阶段学习第27天笔记(UIButton-UIImageView的介绍)
iOS学习(UI)知识点整理 一.关于UIButton的介绍 1)概念:UIButton 是一种常用的控件,通过点击触发相应的功能 2)UIButton 的几种常用的状态 1.UICon ...
- xamarin.ios 跳转页面
一:用Segue跳转页面 按住Ctrl连线,选择show,后台覆写 ShouldPerformSegue方法,返回True跳转,False取消跳转. 二:通过代码跳转至StoryBoard页面 U ...