博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web存储、应用缓存、web workers
阅读量:7217 次
发布时间:2019-06-29

本文共 1756 字,大约阅读时间需要 5 分钟。

hot3.png

客户端存储数据

  1. 两种方式:
  • localStorage-没有时间限制的数据存储
    • 存储特点: localStorage方法存储的数据没有时间限制。第二天,第二周或下一年之后,数据依然可用。
  • sessionStorage-针对一个session的数据存储
    • 存储特点: sessionStorage方法针对一个session进行数据存储,用户关闭浏览器后,数据会被删除
  1. 与cookie做对比:
    之前,这些都是由cookie完成的。但是cookie不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得cookie速度很慢而且效率也不高

代码示例

    
Document

应用缓存

  1. 什么是应用程序缓存:
    HTML5引入了应用程序缓存,这意味着web应用可进行缓存,并可在没有因特网连接时进行访问
  2. 应用缓存的优势:
  • 离线浏览-用户可在应用离线时使用它们
  • 速度-已缓存资源加载得更快
  • 减少服务器负载-浏览器将只从服务器下载更新过或更改过的资源
  1. 实现缓存:
    如需应用程序缓存,请在文档的<html>标签中包含manifest属性
    manifest文件的建议的文件扩展名是:".appcache"
  2. Manifest 文件:
  • CACHE MANIFEST-在此标题下列出的文件将在首次下载后进行缓存
  • NETWORK-在此标题下列出的文件需要与服务器的连接,且不会被缓存
  • FALLBACK-在此标题下列出的文件规定当页面无法访问时的回退页面(比如404页面)

代码示例:

创建文件为:index.html

    

Hello HTML5!

接下来创建文件为:index.appcache

CACHE MANIFESTCACHE:index.htmlindex.jsNETWORK:style.css

用chrome打开index.html后检查元素就会发现index.html index.js缓存下来了,而style.css没有缓存。

web workers

  1. 什么是Web Worker?
    web worker是运行在后台的JavaScript,独立于其他脚本,不会影响页面的性能
  2. 方法:
    postMessage()-它用于向HTML页面传回一段消息
    terminate()-终止web worker,并释放浏览器/计算机资源
  3. 事件:
    onmessage

代码示例

创建主文件:index.html

    
0

创建:index.js

var numDiv;var work = null;window.onload = function(){    numDiv = document.getElementById("numDiv");    document.getElementById("start").onclick = startWorker;    document.getElementById("stop").onclick = function(){        if(work){            work.terminate();            work = null;        }    }}function startWorker(){    if(work){        return;    }    work = new Worker("count.js");    work.onmessage = function(e){        numDiv.innerHTML = e.data;    }}

最后创建:count.js

var countNum = 0;function count(){    postMessage(countNum);    countNum++;    setTimeout(count,1000);}count();

作者:

github:

转载于:https://my.oschina.net/cllgeek/blog/1584760

你可能感兴趣的文章
聚焦“云开发圆桌论坛”,大前端Serverless大佬们释放了这些讯号!
查看>>
数学模板
查看>>
c#中英文混合字符串截取指定长度
查看>>
.NetCore应用多个target framework
查看>>
pdfminer获取整页文本
查看>>
windows服务器多端口Redis安装步骤
查看>>
第二次作业心得
查看>>
爬虫——请求库之requests
查看>>
android子线程更新UI,与主Thread一起工作
查看>>
50行实现简易HTTP服务器
查看>>
细讲递归(recursion)
查看>>
进程和进程间通信
查看>>
微处理器的两种结构比较
查看>>
ORACLE EXPIRED(GRACE)
查看>>
Markdown应用样例
查看>>
多文本框的值得存放和赋值
查看>>
Linux中计划任务执行脚本crontab-简洁版
查看>>
Java - IO
查看>>
安卓app中嵌入一个H5页面,当手机系统设置字体变大时,如何使H5页面的字体不会随用户自己调整的系统字体变化而变化?...
查看>>
safari 收藏导出 手机safari 导出
查看>>