javascript基础-HTML5

跨文档消息(Web Messaging cross-document messaging)

  原理

    往有关联(同一框架/弹出)的文档传递数据。

    

              Message Channel在javascript基础-ajax做了解释

  写法

    两iframe通信

        //一框架发送消息
        $('#myi')[0].contentWindow.postMessage("adfasdf","*");

        //另一个框架接收消息   IE8用attachEvent
        $('#myi2')[0].contentWindow.addEventListener('message',function(e){
              //e.data传递的数据  e.origin来源域  e.source代理,用来回传信息
              console.log(e.data);//控制台输出"adfasdf"
        },false);

         弹出窗口通信

//弹出窗口给父窗体窗体发送消息
        window.addEventListener('load', function(e){
            //标记这消息来自http://www.suning.com
            e.currentTarget.opener.postMessage('', 'http://www.suning.com');
        }, false); 

   用途

     IE8+支持iframe间的Web messaging。它具备通用性。

              以前两iframe通信,如果同源: 直接调用另一个iframe的全局方法。如果跨域:无法直接访问另一iframe的window,那时的解决方案:

跨域类型 解决方案
同主域 设置document.domain切换成同源
不同主域 通过parent中转
如a 子iframe b。设置一个与b同源的祖先iframe c.bl通过parent.parent访问c。b通过parent访问c。

资源缓存

  适合离线应用APP。配置manifest文件,设置缓存资源--->html读取缓存资源。查看详情

数据存储  

原理 容量限制 浏览器兼容 适合场景
存储少量数据到硬盘,任何人可以访问。
ajax请求时自动附加
CORS跨域允许附加
jsonp跨域不附加
IE/Firefox 50个键值对
<4095B

突破键值对方式:值映射成多个键值对
全部 存储少量跨会话的数据。

如用户已登录过,30天内不失效。将用户登录标识记录在cookie里
会话数据存储
浏览器关闭自动清除
总容量5M/2.5M IE8+ 以前依赖web服务器存储的session数据可以进一步细分服务端和客户端,分开存储。
方便前端读取。
从容量和API方面,增强版的cookie 每个来源 5M/2.5M IE8+ 同cookie.数据存储扩大。
浏览器本地数据库。目的是为应用APP,提供一套高效CRUD js对象的API。具体具备游标、索引、事务等数据库能力。CRUD均是异步操作。 无限制 IE10+ 需大数据存储的APP


 Web 
Workers

   查看详情

 

原文地址:https://www.cnblogs.com/mominger/p/3955509.html