HTML5与CSS3权威指南.pdf5
第9章 通信API
跨文档消息传输
HTML5提供了网页文档之间互相接收与发送信息的功能,不仅同源(域+端口号)的Web网页之间可以互相通信,甚至可以实现跨域通信
想要接受从其他窗口发过来的信息,要对窗口对象的message事件进行监视
window.addEventListener("message",function(){...},false);
使用window对象的postMessage方法向其他窗口发送消息
otherWindow.postMessage(message,targetOrigin);
第一个参数为所发送的消息文本,也可以是任何的Javascript对象(通过JSON转换对象为文本);第二个参数为接受消息的对象窗口的URL地址(例如http://localhost:8080/),可以使用通配符“*”指定全部地址。otherWindow为要发送窗口对象的引用,可以通过window.open返回该对象,或通过对window.frames数组指定序号返回单个frame所属的窗口对象
1)通过访问message事件的origin属性,可以获取消息的发送源(发送源与网站的URL地址不是同一概念,发送源只包括域名与端口号,最好检查发送源)
2)message事件的data属性,可以获取消息内容(可以是任何Javascript对象)
3)postMessage方法发送消息
4)通过访问message事件的source属性,可以获取消息发送源的窗口对象(准确的说是窗口的代理对象)
JSON对象的stringify方法将Javascript对象转换成文本,使用parse方法将文本还原为Javascript对象,任何Javascript对象可以通过这种方式在网页文档、端口、域之间传递消息
Web Sockets通信
Web Sockets是HTML5提供的在应用程序中客户端与服务器端之间进行的非HTTP通信机制,它实现了用HTTP不容易实现的服务器端的数据推送等智能通信技术
建立一个非HTTP的双向连接(实时永久,除非被显式关闭),客户端只要有一个被打开的套接字与服务器建立了连接,服务器就可以把数据推送过来,从被动到主动
使用Web Socket API
将URL字符串作为参数,然后调用构造器
var webSocket=new WebSocket("ws://localhost:8005/socket");
URL字符串必须以“ws”、“wss(加密通信时)”文字作为开头,javascript脚本中可以通过访问WebSocket对象的url属性来重新获取,使用WebSocket对象的send方法对服务器发送数据
webSocket.send("data");
通过获取onmessage事件句柄来接收服务器传过来的数据
webSocket.onmessage=function(event){
var data=event.data;
...
}
通过获取onopen事件句柄来监听socket的打开事件
webSocket.onopen=function(event){
//开始通信时的处理
};
获取onclose事件句柄来监听socket的关闭事件
webSocket.onclose=function(event){
//通信结束时的处理
};
通过使用close方法来关闭socket,切断通信连接
webSocket.close();
另外还可以通过读取readyState属性值来获取WebSocket对象的状态
CONNECTING(数字为0)表示正在连接 OPEN(数字为1)表示正在建立连接 CLOSING(数字为2)表示正在关闭连接 CLOSED(数字为2)表示已关闭连接
第10章 使用Web Workers处理线程
var worker=new Worker("worker.js");
需要注意的是,后台线程中不能访问页面或窗口对象,如果使用到则会引发错误
在后台线程中接收消息
worker.onmessage=function(event){
//处理接收到的消息
}
对后台线程发送消息
work.postMessage(message); //文本数据
线程嵌套:线程中可以嵌套子线程,把一个较大的后台线程切成几个子线程,在每个子线程中完成相对独立的一部分
在多个子线程中进行数据的交互,步骤如下
1)先创建发送数据的子线程
2)子线程执行任务,再传给主线程
3)再创建一个子线程,将主线程中的数据传给新的子线程
4)新的子线程执行代码
线程中可用的变量、函数与类
self:本线程范围内的作用域
postMessage(message):向创建的源窗口发送信息
onmessage:接收消息的事件句柄
importScript(urls):导入其他Javascript脚本文件,可以是多个,导入的文件与使用该线程文件的页面必须是同一个域、同一个端口中
importScripts('script1.js','scripts\script2.js');
navigator对象:与window.navigator对象类似
sessionStorage/localStorage:可以在线程中使用WebStorage
XMLHttpRequest:可以在线程中使用Ajax请求
Web Workers:可以在线程中嵌套线程
setTimeout()/setInterval():线程中实现定时处理
close:结束本线程
eval()、isNan()等:可以使用Javascript核心函数
object:可以创建和使用本地对象
WebSockets:可以使用WebSocketsAPI向服务器发送和接收信息
HTML5与CSS3权威指南.pdf5的更多相关文章
- Html5与CSS3权威指南 百度云下载
Html5与CSS3权威指南 百度云下载 链接:http://pan.baidu.com/s/1hq6Dlvm 密码:php3
- HTML5与CSS3权威指南之CSS3学习记录
title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...
- 【HTML5 4】《HTML5与CSS3权威指南》 step1 导读
一.教程重点:以 HTML5和CSS3的新功能和新特性 为导向,辅之以 实战型实例页面 二.内容概况: 第1部分:详细讲解HTML5相关知识,包括 各主流浏览器对HTML5的支持情况. HTML5与H ...
- HTML5与CSS3权威指南.pdf6
第11章 获取地理位置信息 HTML5为window.navigator对象新增了一个geolocation属性 取得当前地理位置 void getCurrentPosition(onSuccess, ...
- HTML5与CSS3权威指南笔记案例1
第1章 <!DOCTYPE html> <meta charset = "UTF-8"> <title> Search </title&g ...
- HTML5与CSS3权威指南
第一章:Web时代的变迁 HTML5放心使用的理由: 兼容性:HTML5在老板本的浏览器上也可以正常运行: 实用性:HTML5内部并没有封装什么很复杂的,不切实际的功能,而只是封装了简单实用的功能: ...
- 读《HTML5与CSS3权威指南(上册)》笔记
第二章 1.内容类型:“text/html”.DOCTYPE声明:<!DOCTYPE html>.指定字符编码:<meta charset="utf-8"> ...
- HTML5与CSS3权威指南.pdf9
第21章 Media Queries相关样式 该模块中允许添加媒体查询(media query)表达式,用以指定媒体类型,根据媒体类型来选择使用的样式(显示器.便携设备.电视机) 使用方法@media ...
- HTML5与CSS3权威指南.pdf8
第17章 与背景和边框相关的样式 与背景相关的新增属性 background-clip指定背景的显示范围 background-origin指定绘制背景图像时的起点 background-size指定 ...
随机推荐
- STUN/TURN/ICE协议在P2P SIP中的应用(一)
1 说明 本文详细描述了基于STUN系列协议实现的P2P SIP电话过程,其中涉及到了SIP信令的交互,P2P的原理,以及STUN.TURN.ICE的协议交互 本文所提到的各个服务 ...
- OpenJudge 2815 城堡问题 / Poj 1164 The Castle
1.链接地址: http://bailian.openjudge.cn/practice/2815/ http://poj.org/problem?id=1164 2.题目: 总时间限制: 1000m ...
- DIV+CSS 网页布局之:三列布局
1.宽度自适应三列布局 三列布局的原理和两列布局的原理是一样的,只不过多了一列,只需给宽度自适应两列布局中间再加一列,然后重新计算三列的宽度,就实现了宽度自适应的三列布局. 同样的道理,更多列的布局, ...
- 基于jquery实现的文字淡入淡出效果
这篇文章介绍了jquery实现的文字淡入淡出效果实例,有需要的朋友可以参考一下 复制代码代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...
- hadoop1中partition和combiner作用
---恢复内容开始--- 1.解析Partiton 把map任务的输出的中间结果按照key的范围进行划分成r份,r代表reduce任务的个数.hadoop默认有个类HashPartition实现分区, ...
- xcode 自动添加注释,生成文档
一.自动生成注释代码 添加一个快捷键,生成 注释代码 ThisService 下载连接:http://wafflesoftware.net/thisservice/ ...
- POJ 2886 Who Gets the Most Candies? 线段树
题目: http://poj.org/problem?id=2886 左右转的果断晕,题目不难,关键是准确的转啊转.因为题目要求输出约数个数最多的数,所以预处理[1,500000]的约数的个数就行了. ...
- handoff了解
iOS8推出一个新特性,叫做Handoff.Handoff中文含义为换手(把接力棒传给下一个人),可以在一台Mac和iOS设备上开始工作,中途将工作交换到另一个Mac或iOS设备中进行.这个在iOS8 ...
- iOS代码规范文档
文件命名规范: 1. 项目统一使用类前缀ZY. 2. 分类命名+后面统一使用ZYExtension,例:NSDictionary+ZYExtension.h,常用分类定义在内部并写好文档注释.如果功能 ...
- java中关于移位运算符的demo与总结
首先,移位运算符有三种,其操作类型只支持:byte / short / char / int和long五种. << 左移运算符,表示将左边的操作数的二进制数据向左移动*位,移动后空缺位以0 ...