[html5] 学习笔记-应用缓存与Web workers
1、应用缓存
HTML5引入了应用缓存程序,这意味着Web应用可进行缓存,并可在没有因特网连接时访问。
应用缓存的优势:
1)离线浏览--用户可在应用离线时使用它们
2)速度--已缓存是从本地加载,加载得更快
3)减少服务器负载--浏览器将只从服务器下载更新过或更改过的资源
实现缓存:
如需启动应用程序缓存,需在文档的<html>标签中包含manifest属性,manifest文件建议的文件扩展名是 “.appcache”
manifest文件的属性:
1)CACHE MANIFEST --在此标题下列出的文件将在首次下载后缓存
2)NETWORK --在此标题下列出的文件需要与服务器的连接,且不会被缓存
3)FALLBACK --在此标题下列出的文件规定当页面无法访问时回退页面(比如404页面)
首先启动apache服务器,在apcache服务器的安装目录下,进入htdocs文件夹,将要执行的工程文件夹MyProject 放在这里。笔者安装apache服务器时,指定的servername是localhost,因此,在本地服务器执行html时,输入的Url为:locahost/MyProject/1.html。
html内容如下:
<!doctype html>
<html manifest="1.appcache">
<head lang="en">
<meta charset="utf-8">
<title></title>
<link href="style.css" rel="stylesheet" type="text/css">
<script src="1.js"></script>
</head>
<body>
<h1 class="h1">hello html5!</h1>
</body>
</html>
对应的1.appcache如下,表示缓存1.html,1.js,style.css这3个文件:
CACHE MANIFEST CACHE: 1.html 1.js style.css
在应用中,可以把不需要更换的数据进行缓存,只把需要更新的数据向服务器重新请求。
如果style.css这个文件不需要缓存,则对应的1.appcache为:
CACHE MANIFEST CACHE: 1.html 1.js NETWORK: style.css
2、Web Worker
Web Worker是运行在后台的javascript,独立于其他脚本,不会影响页面的性能。在创建新程序时,会存在一个主线程,来支持程序的运行;如果让这个主线程去做事,可能会很卡,很难响应用户的操作;因此,可以把这些事交给后台的脚本来做,最后返回给主线程。Web Worker底层也是使用多线程来实现的。
方法:
postMessage():用于向HTML页面传回一段消息
terminate():终止Web Worker,并释放浏览器/计算机资源
事件:
onmessage
例子:1.html:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="1.js"></script>
</head>
<body>
<div id="numDiv">0</div>
<button id="start">start</button>
<button id="stop">stop</button>
</body>
</html>
1.js:
var numDiv;
var work;
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("2.js");
work.onmessage = function (e) {
numDiv.innerHTML = e.data;
}
}
2.js:
var countNum =0;
function count(){
postMessage(countNum);
countNum++;
setTimeout(count,100);
}
count();
[html5] 学习笔记-应用缓存与Web workers的更多相关文章
- H5学习笔记-应用缓存,Web worker,服务器发送事件
↑亮了 应用缓存用法 <!DOCTYPE HTML> <html manifest="demo.appcache"> <body> The co ...
- HTML5学习笔记(六)web worker
当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成.web worker 是运行在后台的 JavaScript,不会影响页面的性能,页面可以响应. 在创建 web worker ...
- html5学习笔记一
HTML5学习笔记 <video>标记:定义视频,Ogg.MPEG4.WebM三种格式 <video src=”movie.ogg” controls=”controls”> ...
- Html5学习笔记1 元素 标签 属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- HTML5学习笔记之表格标签
HTML5学习笔记之表格标签 其他HTML5相关文章 HTML5学习笔记之HTML5基本介绍 HTML5学习笔记之基础标签 HTML5学习笔记之表格标签 HTML5学习笔记之表单标签 HTML5学习笔 ...
- HTML5 学习笔记 1
1.音频.视频 <!DOCTYPE HTML> <html> <body> <audio controls="controls"> ...
- HTML5学习笔记(一):HTML简介
Web前端涵盖的内容较多且杂,主要由3个部分组成:HTML标记语言.CSS样式语言和JavaScript脚本语言组成,而下面我们将先学习最新的标记语言HTML5. <!DOCTYPE>标记 ...
- CSS3秘笈第三版涵盖HTML5学习笔记6~8章
第二部分----CSS实用技术 第6章,文本格式化 指定备用字体: font-family:Arial,Helvetica,sans-serif; 当访问者没有安装第一种字体时,浏览器会在列表中继续往 ...
- CSS3秘笈第三版涵盖HTML5学习笔记1~5章
第一部分----CSS基础知识 第1章,CSS需要的HTML HTML越简单,对搜索引擎越友好 div是块级元素,span是行内元素 <section>标签包含一组相关的内容,就像一本书中 ...
随机推荐
- 如何获取app的素材,做出一个高仿的app
第一步:在iTunes中搜索你想要的app,然后点击下载: 下载完成之后右键点击:在Finder中显示 在finder中右键用"归档工具打开" 会显示如下内容: "显示包 ...
- ip识别运用
tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8:10.0.0.0-10.255.255.255 172.16.0.0/12:172.16.0.0-1 ...
- Linux 分区的概念
事实上无论是linux 还是 window 都必须遵循以下分区的规则 分区类型 1.主分区:最多只能四个. 2.扩展分区: - 最多只能一个 - 主分区加扩展分区最多只能有四个 - 不能写入数据,它存 ...
- iOS开发——Scheme白名单
问题:在iOS 9下涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme.对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端. 报错:This app is ...
- Tessnet2图片识别
验证码识别据说可以用C#图像识别类库Tessnet2来实现,Tessnet2源于目前Google维护的开源项目Tesseract2.本文将对此传说进行验证,含验证结果与验证方法. 1. 验证结果 —— ...
- 原生JavaScript之“淘宝轮播图”
轮播图是我们学习原生js的必经之路 它包含很多基本知识的运用,像this的使用,DOM的操作,还有setInterval的使用和清除,浮动与定位等等,很好的考察了我们的基础知识牢不牢固, 话不多说,直 ...
- java class加载机制及对象生成机制
java class加载机制及对象生成机制 当使用到某个类,但该类还未初始化,未加载到内存中时会经历类加载.链接.初始化三个步骤完成类的初始化.需要注意的是类的初始化和链接的顺序有可能是互换的. Cl ...
- YII 1.0 扩展第三方类
扩展缩略图类在blog\protected\extensions 中建立 Image/CThumb.php 1. 自己瞎弄的,一点都不优雅 include_once Yii::app()->Ba ...
- CentOS-6.6下Tomcat-7.0安装与配置(Linux)
CentOS-6.6下Tomcat-7.0安装与配置(Linux) 一.认识tomcat Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目, ...
- PHP中file_exists与is_file、is_dir的区别,以及执行效率的比较
判断文件是否存在,有2个常用的PHP函数:is_file 和 file_exists, 判断文件夹是否存在,有2个常用PHP函数:is_dir 和 file_exists, 即 file_exists ...