本文作者:DurkBlue

在js里引用地图发现 is invoked via document.write. The network request for this script MAY be blocked by the 推荐

DurkBlue 02-09 85915
在js里引用地图发现 is invoked via document.write. The network request for this script MAY be blocked by the 摘要:       在页面中引用高德地图后发现页面出现黄色警告  api?v=2.0&ak=dm65KD93tW9zmcZys9Y...

      在页面中引用高德地图后发现页面出现黄色警告  

api?v=2.0&ak=dm65KD93tW9zmcZys9YvKIUj:1 A parser-blocking, cross site (i.e. different eTLD+1) script, http://api.map.baidu.com/getscript?v=2.0&ak=YvKIUj&services=&t=20190123111209, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://www.chromestatus.com/feature/5718547946799104 for more details.


   造成这个警告的原因是:

    

1.在弱的网络连接环境下,比如2G网络,在页面上使用document.write()来动态插入外部的脚本会阻塞页面的解析,延迟页面的显示,甚至加载脚本失败,最终导致页面不能正确显示。

2.为了提高用户的体验,Chrome对于由document.write()动态插入的<script>会做检查,当满足下面所有的条件下,Chrome不会执行加载。


a.用户处在弱网络连接的环境下,特别是2G网络

b.document.write()在主页面里,对于那些嵌入在iframe里的页面没有影响。

c.在document.write()插入的脚本是阻碍解析的(parser-blocking)。如果插入的<script>标签加了async 或着defer属性,脚本会异步加载,不影响解析 ,所以也是能被执行的

d.加载的脚本和站点不是同一个域名

e.脚本没有在浏览器的缓存里

f.页面不是重新加载


  • Chrome 53开始,对于满足2-5条件的代码,在控制台会输出上述警告.
    解决途径

改变地图js的引用方法

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=your ak></script>

改成

<script type="text/javascript" src="http://api.map.baidu.com/getscript?v=2.0&ak=your ak"></script>


此篇文章由DurkBlue发布,麻烦转载请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 02-09
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享