前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTML5多线程与离线存储

HTML5多线程与离线存储

作者头像
踏浪
发布2019-07-31 10:26:58
1.8K0
发布2019-07-31 10:26:58
举报
文章被收录于专栏:踏浪的文章踏浪的文章

多线程 Worker

  1. 前端页面// 创建对象 var w = new Worker("work.js"); w.postmessage("发送的数据"); w.onmessage = function(e){ // do something }

2.多线程处理页面

代码语言:javascript
复制
self.onmessage = function(e){
	// 前端页面传过来的数据
	console.log(e.data)
}

离线存储

使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。 HTML5引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 应用程序缓存为应用带来三个优势:

  • 离线浏览 – 用户可在应用离线时使用它们
  • 速度 – 已缓存资源加载得更快
  • 减少服务器负载 – 浏览器将只从服务器下载更新过或更改过的资源。

  1. 新建一个 .appcache 文件,html文件的html标签中引入这个文件
  2. apachehttpd.conf文件下添加 AddType text/cache-manifest .appcache
  3. .appcache文件下进行设置:

manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。manifest 文件可分为三个部分:

  1. CACHE MANIFEST - 在此标题下列出的文件将在首次加载后进行缓存
  2. NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
  3. FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)

在线的情况下,用户代理每次访问页面,都会去读一次manifest.如果发现其改变, 则重新加载全部清单中的资源

更新缓存

一旦应用被缓存,它就会保持缓存直到发生下列情况: 用户清空浏览器缓存 manifest 文件被修改(包括注释) 由程序来更新应用缓存

注意事项

  • 站点离线存储的容量限制是5M
  • 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览器继续全部使用老的缓存
  • 引用manifest的html必须与manifest文件同源,在同一个域下
  • 在manifest中使用的相对路径,相对参照物为manifest文件
  • CACHE MANIFEST字符串应在第一行,且必不可少
  • 系统会自动缓存引用清单文件的 HTML 文件
  • manifest文件中CACHE则与NETWORK,FALLBACK的位置顺序没有关系,如果是隐式声明需要在最前面
  • FALLBACK中的资源必须和manifest文件同源
  • 当一个资源被缓存后,该浏览器直接请求这个绝对路径也会访问缓存中的资源。
  • 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问
  • 当manifest文件发生改变时,资源请求本身也会触发更新

同域跨文档操作(服务器下运行)

iframe内页: 父页面操作子页面:contentWindow 子页面操作父页面:window.top(找到最顶级的父页面)/parent(第一父页面)

新窗口页: 父页面操作子页面:window.open 子页面操作父页面:window.opener

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 多线程 Worker
  • 离线存储
    • 更新缓存
      • 注意事项
      • 同域跨文档操作(服务器下运行)
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档