您现在的位置是:网站首页> 编程资料编程资料
HTML5 Web缓存和运用程序缓存(cookie,session)html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
2021-08-31
1060人已围观
简介 这篇文章主要介绍了HTML5 Web缓存和运用程序缓存(cookie,session),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在介绍HTML5 web缓存前,来认识一下cookie和session:
session:
由于HTTP是无状态的,你是谁?你干了什么?抱歉服务器都是不知道的。
因此session(会话)出现了,它会在服务器上存储用户信息以便将来使用(比如用户名称,购物车购买商品等)。
但是session是临时的,用户离开网站将被删除。如果要永久存储信息,可以保存在数据库中!
session工作原理:为每个用户创建一个session id(核心!!!)。而session id是存储在cookie中的,也就是说如果浏览器禁用了cookie,那么session会失效!(但是可以通过其它方式实现,如:通过URL传递session id)
用户验证一般采用session。
cookie:
目的:网站标记用户身份而存储在本地客户端的数据(通常经过加密)。
- 用户访问网页时,名字记录在cookie中;
- 下次继续访问该网页时,可以从cookie中读取用户访问记录。
cookie会在同源的http请求携带(即使不需要),即在客户端和服务器之间来回传递!
cookie的数据大小不超过4k
cookie的有效期:设置的cookie有效时间之前一直有效,即使浏览器关闭!
localStorage & sessionStorage:
早期,本地缓存普遍使用的是cookie,但是web存储需要更安全、更快速!
这些数据不会保存在服务器上(存储在客户端),不会影响服务器性能!
sessionStorage和localStorage数据存储也有大小限制,但却比cookie大得多,可以达到5M甚至更大!
localStorage:没有时间限制的数据存储!
sessionStorage:由英文意思也可知,它是对session的数据存储,所以在用户关闭浏览器(标签页/窗口)后,数据被删除!
HTML5 web存储支持情况:
IE8以上,现代浏览器。
数据以键值对存储:
localStorage和sessionStorage都有以下几个方法:
- localStorage.setItem(key,value):设置(保存)数据;相当于localStorage.key=value!
- localStorage.getItem(key):获取数据
- localStorage.removeItem(key):删除单个数据
- localStorage.clear():删除所有数据
- localStorage.key(index):获取某个索引的键值
web storage
程序运行结果:

注意:键值对是以字符串保存的,根据需求应改变类型(比如做加法,变为Number型)。
HTML5运用程序缓存(Application Cache):
通过创建cache manifest文件,web运用可被缓存,并且无网络状态可以进行访问!
Application Cache优势:
1.离线浏览;
2.速度更快:已缓存资源加载更快;
3.减少浏览器负载:客户端将只从服务器下载或更新更改过的资源
支持情况:
IE10以上,现代浏览器。
使用:
注意:要开启application cache,需指定manifest属性(扩展名:.appcache);如果未指定manifest属性,页面不会缓存(除非在manifest文件中直接指定了该页面!)
manifest文件在服务器上需正确的配置MIME-type:text/cache-manifest。
Manifest文件:
manifest是简单的文本文件,它告知浏览器被缓存的内容以及不被缓存的内容!
manifest可分为三部分:
CACHE MANIFEST:此项列出的文件将在首次下载后进行缓存!
NETWORK:此项列出的文件需要与服务器进行网络连接,不会被缓存!
FALLBACK:此项列出当页面无法访问时的回退页面(如:404页面)!
test.appcache:
CACHE MANIFEST #2017 11 21 v10.0.1 /test.css /logo.gif /main.js NETWORK /login.php /register.php FALLBACK #/html/目录中文件无法访问时,用/offline.html替代 /html/ /offline.html
更新application cache的情况:
1.用户清空浏览器缓存!
2.manifest文件被更改(#:表示注释,同时如果更改为#2018 1 1 v20.0.0,则浏览器会重新缓存!)
3.程序进行更新application cache!
Web Workers:
web workers是运行在后台的javascript,独立于其它脚本,不会影响页面性能!
而一般的HTML页面上执行脚本时,除非脚本加载完成,否则页面不会响应!
支持情况:IE10以上,现代浏览器
示例:html文件:
web worker 计数:
testWorker.js文件:
var i=0; function timedCount() { i+=1; // 重要的部分,向html页面传回一段信息 postMessage(i); setTimeout('timedCount()',500); } timedCount(); 注意1:通常web worker不是用于如此简单的任务,而是用在更耗CPU资源的任务!
注意2:在chrome中运行会产生“cannot be accessed from origin 'null'”的错误,我的解决方法是:xampp中开启apache,用http://localhost/进行访问。
web worker缺点:
由于web worker位于外部文件中,所以它无法访问下列javascript对象:
- window对象;
- document对象;
- parent对象。
HTML5 server-sent events(服务器发送事件):
server-sent事件是单向信息传递;网页可以自动获取来自服务器的更新!
以前:网页先询问是否有可用的更新,服务器发送数据,进行更新(双向数据传递)!
支持情况:除IE以外的现代浏览器均支持!
示例代码:html文件:
sever sent event sever sent event informations
test.php:
注意:后面没有内容,php文件可以不用"?>"关闭!
HTML5 WebSocket:
- WebSocket是HTML5提供的一种在单个TCP连接上建立全双工(类似电话)通讯的协议;
- 浏览器和服务器之间只需要进行一次握手的操作,浏览器和服务器之间就形成了一条快速通道,两者之间就可直接进行数据传送;
- 浏览器通过javascript建立WebSocket连接请求,通过send()向服务器发送数据,onmessage()接收服务器返回的数据。
WebSocket如何兼容低浏览器:
- Adobe Flash Socket;
- ActiveX HTMLFile(IE);
- 基于multipart编码发送XHR;
- 基于长轮询的XHR
WebSocket可以用在多个标签页之间的通信!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动HTML5 canvas实现的粒子流向轨迹动画特效源码html5 canvas实现的行星运动轨迹动画特效源码canvas实现按住鼠标移动绘制出轨迹的示例代码
- 基于canvas使用贝塞尔曲线平滑拟合折线段的方法canvas进阶之如何画出平滑的曲线
- canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- html5实现多图片预览上传及点击可拖拽控件html5拖拽排序多图片上传插件特效源码HTML5 拖拽批量上传文件的示例代码html5使用Drag事件编辑器拖拽上传图片的示例代码HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)HTML5 canvas实现移动端上传头像拖拽裁剪效果结合html5+nodejs+express实现拖拽上传的功能HTML5拖拽文件到浏览器并实现文件上传下载功能代码html5 拖拽上传图片实例演示HTML5拖拽文件上传的示例代码
- 微信html5页面调用第三方位置导航的示例HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码基于html和CSS3制作酷炫的导航栏使用jquery实现HTML5响应式导航菜单教程css3与html5实现响应式导航菜单(导航栏)效果分享纯html5+css3下拉导航菜单实现代码
- 微信端html5页面调用分享接口示例Html5 实现微信分享及自定义内容的流程Html5页面在微信端的分享的实现方法详解html5 canvas 微信海报分享(个人爬坑)HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能HTML5中外部浏览器唤起微信分享功能的代码
- 使用html5新特性轻松监听任何App自带返回键的示例css3实现动画的三种方式如何使用css3实现一个类在线直播的队列动画的示例代码html5新特性与用法大全HTML5新特性之type=file文件上传功能HTML5新特性之语义化标签前端面试必备之html5的新特性CSS3动画和HTML5新特性详解
- 配置H5的滚动条样式的示例代码HTML5实现直播间评论滚动效果的代码h5页面背景图很长要有滚动条滑动效果的实现
- Canvas制作旋转的太极的示例HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)canvas绘制太极图的实现示例
- 详解px单位html5响应式方案详解HTML5中的picture元素响应式处理图片HTML5响应式(自适应)网页设计的实现推荐10个HTML5响应式框架分享29个基于Bootstrap的HTML5响应式网页设计模板浅谈html5 响应式布局
