一、前言

  在近期的工作中,有前端同学告诉我要清除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的更多相关文章

  1. 移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题

    移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题 开发H5 webapp时经常需要使用本地存储,如localStorage和sessionStor ...

  2. localStorage sessionStorage 和cookie等前端存储方式总结

    localStorage sessionStorage 和cookie localStorage localStorage是本地存储的,除非清空本地数据 localStorage不会自动把数据发给服务 ...

  3. js中cookie,localStorage(sessionStorage)的存取

    一.cookie (原生的不好用,自己简单封装) 1. 存cookie的方法: function setCookie(c_name,value,expiredays) { var exdate=new ...

  4. 本地存储常用方式 localStorage, sessionStorage,cookie 的区别 和 服务器存储session

    本地存储:把一些信息存储到客户端本地(主要目的有很多,其中有一个就是实现多页面之间的信息共享)       1. 离线缓存(xxx.manifest)  H5处理离线缓存还是存在一些硬伤的,所以真实项 ...

  5. iOS开发系列--Swift语言

    概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...

  6. iOS开发系列--打造自己的“美图秀秀”

    --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...

  7. iOS开发之再探多线程编程:Grand Central Dispatch详解

    Swift3.0相关代码已在github上更新.之前关于iOS开发多线程的内容发布过一篇博客,其中介绍了NSThread.操作队列以及GCD,介绍的不够深入.今天就以GCD为主题来全面的总结一下GCD ...

  8. 总结iOS开发中的断点续传那些事儿

    前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...

  9. iOS开发系列文章(持续更新……)

    iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大 ...

随机推荐

  1. CSS易混淆知识点总结与分享-定位与布局

    CSS定位有四种模式:static.relative.absolute.fixed,其它static是默认值,下面分别讲解下各自的特点: static:静态定位,处于动态布局流中,按照页面中的各元素先 ...

  2. 检测WCF服务是否在线第二版

    上一版在这里http://www.cnblogs.com/kklldog/p/4878296.html 上一版主要是解决了监控服务不需要手动添加服务引用的问题,但是还是需要在配置文件中添加对应的end ...

  3. .NET的EF框架中:在应用程序配置文件中找不到名为“”的连接字符串问题

    今天在使用EF Code First框架时,当把模型都定义好了,想通过程序包管理控制台利用enable-migrations –force来生成数据库表的时候报错了,如下: 找不到连接字符串,但是我仔 ...

  4. ado.net 用c#与数据库连接实现增删改查

    ADO.NET: 数据访问技术 就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 是所有数据访问技术的基础 ...

  5. 【VBS】vbs指定编码保存文本文件(含xml、ini什么的)

    本文还是折腾安装包期间衍生出来的产物. 我那安装包在安装期间有这个动作: - 让用户填写一些信息,待安装完成后把这些信息写入软件安装目录中的指定ini.xml文件中 上文说的是如何用vbs写ini,i ...

  6. enum和int、string的转换操作

    enum Countries{    中国 = 5,    美国,    俄罗斯,    英国,    法国} enum 和 int enum -> intint num = (int)Coun ...

  7. MVC之前的那点事儿系列(4):Http Pipeline详细分析(上)

    文章内容 继续上一章节的内容,通过HttpApplicationFactory的GetApplicationInstance静态方法获取实例,然后执行该实例的BeginProcessRequest方法 ...

  8. 广义表 Head Tail

    head:取非空广义表的第一个元素 tail:取非空广义表除第一个元素外剩余元素构成的广义表 L=((x,y,z),a,(u,t,w)) head(L)为(x,y,z) head(head(L))为x ...

  9. a标签中调用js方法

    1. a href="javascript:void(0);" onclick="js_method()" 这种方法是很多网站最常用的方法,也是最周全的方法,o ...

  10. android版高仿淘宝客户端源码V2.3

    android版高仿淘宝客户端源码V2.3,这个版本我已经更新到2.3了,源码也上传到源码天堂那里了,大家可以看一下吧,该应用实现了我们常用的购物功能了,也就是在手机上进行网购的流程的,如查看产品(浏 ...