一、了解cookie的不足之处,引入webstorage的概念
二、学习而且掌握webstorage有哪两种
三、学习而且掌握sessionStorage
四、学习而且掌握localStorage
五、反复练习localStorage的用法
六、掌握离线存储技术
七、掌握多媒体标签的一些基本属性
八、自主开发出一个自定义视频播放器的控件
九、熟悉使用webwoker
十、了解webSocket的原理javascript
不少时候咱们会存储用户本地信息到电脑上,例如:比方说用户有一个填充了一半的长表格,而后忽然网络链接断开了,这样用户但愿你能存储这些信息到本地,当网络恢复的时候,他想获取这些信息而后发送到服务器进行存储 现代浏览器拥有的存储被叫作“LocalStorage”,你能够存储这些信息css
本地存储没有生命周期,它将保留知道用户从浏览器清除或者使用Javascript代码移除html
属性 | 类型 | 描述 |
---|---|---|
key |
string | 被修改的键。 |
oldValue |
any | 修改前的值(若是是增长新的键值,则该属性为null) |
newValue |
any | 修改后的值(若是是删除键值,则该属性为null) |
url * |
string | 触发当前存储事件的页面的url |
* 注意: url 属性早期的规范中为uri属性。 有些浏览器发布较早,没有包含这一变动。为兼容性考虑,使用url属性前,你应该先检查它是否存在,若是没有url属性,则应该使用uri属性 |
总结:若是须要判断是否支持本地存储,能够经过window.sessionStorage或者window.localStorage去判断。前端
sessionStorage会话结束后即清空,且同一窗口不一样标签下的页面sessionStorage不共用java
dom操做:jquery
<html lang="zh-hans" manifest="offline.appcache">
text/cache-manifest manifest text/cache-manifest appcache
CACHE MANIFEST # v1 #offline.appcache 所引用的页面默认自动缓存 #这里通常离线缓存长期不变的内容 CACHE: ../js/jquery-2.0.min.js ../css/bootstrap.css #页面其余其余资源,*表示除了缓存(CACHE)的资源,其余资源都走线上 #若不配置,则除CACHE外其余资源不会被加载 NETWORK: * #当服务器挂了(或请求资源不存在时),a连接资源请求失败了,采用“替补"方式 FALLBACK: gallery-1.html offline.html
images/ images/offline.png
//在谷歌浏览器地址栏输入 chrome://appcache-internals
window.applicationCache.addEventListener("updateready", function(){ window.location.reload() });由上例能够知道,缓存的不仅是显示定义的文件,好比上例中的 applicationcache/时便会默认保存index.html为映射的数据,而且包含offline.appcache文件,不少时候会遇到一次文件 更新线上总是不更新,这个时候随便在manifest配置文件中作一点修改便可更新。
// 监测用户是否在线 function onlineStatus() { if (navigator.onLine) { var status = document.getElementById('online-status') status.innerHTML = '在线' status.className = 'badge success' } else { status.innerHTML = '离线' status.className = 'badge' } } window.addEventListener('online', onlineStatus, false) window.addEventListener('offline', onlineStatus, false)
a)、离线浏览--缓存数据(新闻、阅读、视频)
b)、本地保存用户的操做数据(邮箱软件----离线编辑、在线发送)web
a)、Application Cache 本地缓存所应用的文件
b)、WEB SQL 关系型数据库,经过SQL数据访问
c)、IndexDB 索引数据库chrome
a)、Manifest文件
b)、Application Cache文件
c)、特色
Manifest文件必须有变化才更新
一次必须更新Manifest文件中的全部文件
下次才生效数据库
Web Workers 是在HTML5中新增的,用来在web应用程序中实现后台处理的一种技术
在HTML4中,js建立的程序都是单线程的,若是花费时间比较长的话web界面就会长时间没有响应,最恶劣的状况还会跳出一个脚本提示框: 提示脚本运行时间过长,是否继续。。。。因而就引出了本文的主角:Web Workers APIbootstrap
postMessage() 方法 - 它用于向 HTML 页面传回一段消息。
onmessage() 方法 - 收数据,数据为e.data。
如需终止 web worker,并释放浏览器/计算机资源,请使用 terminate() 方法:
咱们能够作什么: 1.能够加载一个JS进行大量的复杂计算而不挂起主进程,并经过postMessage,onmessage进行通讯 2.能够在worker中经过importScripts(url)加载另外的脚本文件 3.可使用 setTimeout(), clearTimeout(), setInterval(), and clearInterval() 4.可使用XMLHttpRequest来发送请求 5.能够访问navigator的部分属性 有那些局限性: 1.不能跨域加载JS 2.worker内代码不能访问DOM 3.各个浏览器对Worker的实现不大一致,例如FF里容许worker中建立新的worker,而Chrome中就不行 4.不是每一个浏览器都支持这个新特性