zoukankan      html  css  js  c++  java
  • 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

       查看详情

     

  • 相关阅读:
    html页面3秒后自动跳转的方法有哪些
    web前端教程之javascript创建对象的方法
    想学好web前端,需要看哪些书籍
    码农只能干到30岁的说法可信吗?
    不管你以后写不写JS,都应该学会这种思考方式
    Python基础知识之排序法
    input和textarea修改placeholder颜色和字号
    关于IE和Firefox兼容性问题及解决办法
    vue-cli构建vue项目
    js 小数取整的函数
  • 原文地址:https://www.cnblogs.com/mominger/p/3955509.html
Copyright © 2011-2022 走看看