一、文档间的通信    postMessage对象
//不跨域
1、iframe:obj.contentWindow [iframe中的window对象] iframe拿到父级页面的window: parent(上一层window) top(最顶层window)
2、window.open() 返回值是新窗口的window对象 拿到父级window : window.opener //跨域
3. 目标域的window.postMessage("xxx","目标域"); 目标域:监听message事件,在ev.data中拿到发送过来的消息
4.ajax需要服务端配合:允许我跨域访问
5.jsonp //无刷新上传文件
obj.fiels //获取文件列表 var FD = new FormData();
FD.append('name',files[0]) //构建二进制对象 //ajax发送二进制数据给后台
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if( xhr.status == 200 ){
var res = JSON.parse(xhr.response);
alert(res.msg);
}
}
}
//ajax发送源文件
xhr.open('post','post_file.php',true);
xhr.setRequestHeader('X-Request-with','XMLHttpRequest');
xhr.send(FD); xhr.upload //上传进度对象
事件:
onprogress: 上传事件(上传过程中连续触发)
属性:
ev.total(要发送的总量)
ev.loaded(已发送的总量) 二、websocket:通信协议 -> 与 http类似 (参考阮一峰2012‘互联网协议入门篇’)
1.nodejs搭建前后端
2.使用websocket实现时时传输:
a].安装socket.io:npm install socket.io 引入sokit.io包 //服务端
a].var io = require('socket.io');
var soket = io.listen(httpServer);
b].soket.sokets.on('connection',function(socket){
//socket -> 每个人进来都会产生一个socket
}); //有人进来的事件监听,执行回掉
e]. 服务端->客户端:socket.emit('hello','数据');
h]. 监听客户端'hellohello'事件:socket.on('hellohello',function(data){
//data 客户端过来的数据(数据1)
});
i]. socket.broadcast.emit('a','有新人进来了'); //广播(除了当前的人(刚刚进来的人)接收不到) //客户端
c].客户端需要发送tcp链接,引入client.socket.js文件 [提供一个io对象。
d]. var socket = null;socket = io.connect('url');发送tcp请求
f]. 客户端监听hello事件: socket.on('hello',function(data){
//data 服务端过来的数据
});
g]. 客户端 -> 服务端:socket.emit('hellohello','数据1'); 三、applicationCache 离线存储
1、搭建离线应用程序
//服务器设置头信息
AddType text/cache-manifest .manifest //http.comfig中加 nodeJs: 'AddType': 'text/cache-manifest .manifest'
//html标签添加属性:
manifest='cache.manifest' //xxx就是离线存储的清单列表
//新建cache.manifest文件
先写:
-CACHE MANIFEST
-2.png //就会缓存2.png图片
-FALLBACK
-styl1.css style2.css //第一个网络地址没有获取到,就走第二个缓存
-NETWORK:无论缓存是否有,都从网络获取
四、web worker [开启多线程
1.使用:
//主js中:
var w1 = new Worker('worker1.js'); //开启多线程
w1.postMessage('wenwen'); //用于传递数据
//worker1.js中:
self.onmessage = function(ev){ //self == w1 引用此文件的返回值
ev.data
}
<!--
console.time(1);
.
.
console.timeEnd(1);
//计算执行中间的代码使用的时间,在控制台打印出来
-->
2.运行环境:
navigator:appName appVersion userAgent platform
location:所有属性只读
self: 只想全局worker对象
所有的ECMA对象:Objec...
XMLHttpRequest
setTimeout setIntercal
self.close()方法:内部立即停止worker运行 worker.terminate()//外部结束进程
importScripts('xxx.js')方法引入其他js文件
五、小功能:
1、标签可编辑属性:contenteditable='true'

文档通信(跨域-不跨域)、时时通信(websocket)、离线存储(applicationCache)、开启多线程(web worker)的更多相关文章

  1. NanUI文档 - 如何实现C#与Javascript的相互通信

    NanUI文档目录 NanUI简介 开始使用NanUI 打包并使用内嵌式的HTML/CSS/JS资源 使用网页来设计整个窗口 如何实现C#与Javascript的相互通信 如何处理NanUI中的下载过 ...

  2. Prism 4 文档 ---第9章 松耦合组件之间通信

    当构建一个大而负责的应用程序时,通用的做法时将功能拆分到离散的模块程序集中.将模块之间的静态引用最小化.这使得模块可以被独立的开发,测试,部署和升级,以及它迫使松散耦合的沟通. 当在模块之间通信时,你 ...

  3. MongoDB改动、删除文档的域属性实例

    MongoDB改动.删除文档的域属性实例 在站点的开发中,可能最初的设计不合理.或者后期业务的变更,会造成文档结构会有些无用的属性.须要去删除或改动.因为MongoDB 是无 Schema 的,不像关 ...

  4. WebAPI使用Swagger生成接口文档

    开发工具:VS2017 版本15.7.1 新建项目,选择空模板,下面只勾选WebAPI 配置Web.config <system.webServer> 节点改为 <system.we ...

  5. 有关Lucene的问题(4):影响Lucene对文档打分的四种方式

    原文出自:http://forfuture1978.iteye.com/blog/591804点击打开链接 在索引阶段设置Document Boost和Field Boost,存储在(.nrm)文件中 ...

  6. Api接口文档管理工具,你知道哪些呢?

    上周看到有人在我的Github开源项目中提了个issue,说是否考虑接入swagger.那今天我就用swagger与其他接口文档工具做对比,同时说说Api接口文档工具的那点事.如今,在前后端分离开发的 ...

  7. Elasticsearch简介、倒排索引、文档基本操作、分词器

    lucene.Solr.Elasticsearch 1.倒排序索引 2.Lucene是类库 3.solr基于lucene 4.ES基于lucene 一.Elasticsearch 核心术语 特点: 1 ...

  8. 关于Elasticsearch文档的描述以及如何操作文档的详细总结

    文档 什么是文档 在大多数应用中,多数实体或对象可以被序列化为包含键值对的 JSON 对象. 一个 键 可以是一个字段或字段的名称,一个 值 可以是一个字符串,一个数字,一个布尔值, 另一个对象,一些 ...

  9. JAVA Asponse.Word Office 操作神器,借助 word 模板生成 word 文档,并转化为 pdf,png 等多种格式的文件

    一,由于该 jar 包不是免费的, maven 仓库一般不会有,需要我们去官网下载并安装到本地 maven 仓库 1,用地址   https://www-evget-com/product/564  ...

随机推荐

  1. IOS8 TouchID使用介绍

    本文转载至 http://blog.csdn.net/jinkaiouyang/article/details/35555123 IOS8将指纹识别技术开放出来了.我们能够利用用户设置的touch I ...

  2. Python3做采集

    出于某些目的,需要在网上爬一些数据.考虑到Python有各种各样的库,以前想试试Pycharm这个IDE,就决定用它了.首先翻完<深入Python3>这本书,了解了它的语法之类的.下面就开 ...

  3. react遇到的各种坑

    标签里用到<label for>的,for 要写成htmlFor 标签里的class要写成className 组件首字母一定要大写 单标签最后一定要闭合 如果html里要空格转义, 注意不 ...

  4. 完美的jquery事件绑定方法on()

    在讲on()方法之前,我们先讲讲在on()方法出现前的那些事件绑定方法: .live() jQuery 1.3新增的live()方法,使用方法例如以下: $("#info_table td& ...

  5. BNUOJ 34978 汉诺塔 (概率dp)

    题目分析:对于 i 个盘 , 须要移动多少步,取决于最大的盘子在哪个杆上.在C杆上,则最大的盘不须要移动,由于初始状态一定是满足盘由下到上盘子依次变小的,仅仅须要移动i - 1个盘.假设在A杆上,则首 ...

  6. STM32 CAN通信

    最近在STM32上开发CAN通信相关内容,转载一篇个人认为不错的文章,看完了基本算明白了,能够实际操作了. 原文地址:  https://blog.csdn.net/ludaoyi88/article ...

  7. LightOJ1138 —— 阶乘末尾0、质因子分解

    题目链接:https://vjudge.net/problem/LightOJ-1138 1138 - Trailing Zeroes (III)    PDF (English) Statistic ...

  8. void类型和void *指针类型(网上摘抄总结)【转】

    http://www.blogjava.net/fhtdy2004/archive/2009/07/09/286004.html 现在在学linux编程过程中遇到很多void *指针类型,由于c很早学 ...

  9. XML中CDATA和#PCDATA的区别

    在XML文档中, 能看到“CDATA"的地方有三处: 1)在DTD中,指定标签中某个属性的类型为字符型时,使用CDATA.因为XML解析器会去分析这段字符内容,因而里面如果需要使用>, ...

  10. 字符编码乱码问题(servlet底层 编码大揭秘)

    好多初学者会遇到,请求过去的信息内包含中文(一般会是get方式提交过去的请求会出现).好郁闷,这是为什么呢.有下面分析下,说的不好可以吐槽 话说我们能遇到这种编码的问题,归根结底就是这  这 web开 ...