spa中引入百度地图api出现警告
引入百度地图之后,页面出现黄色警告:
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=dm65KD93tW9zmcZys9YvKIUj&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.
- 在弱的网络连接环境下,比如2G网络,在页面上使用document.write()来动态插入外部的脚本会阻塞页面的解析,延迟页面的显示,甚至加载脚本失败,最终导致页面不能正确显示。
- 为了提高用户的体验,Chrome对于由document.write()动态插入的
<script>
会做检查,当满足下面所有的条件下,Chrome不会执行加载。
- 用户处在弱网络连接的环境下,特别是2G网络
document.write()
在主页面里,对于那些嵌入在iframe
里的页面没有影响。- 在
document.write()
插入的脚本是阻碍解析的(parser-blocking)。如果插入的<script>
标签加了async 或着defer属性,脚本会异步加载,不影响解析 ,所以也是能被执行的 - 加载的脚本和站点不是同一个域名
- 脚本没有在浏览器的缓存里
- 页面不是重新加载
- 从
Chrome 53
开始,对于满足2-5
条件的代码,在控制台会输出上述警告.
解决方案:
将:
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=your ak></script>
改为:在vue项目里面是index.html文件里面引入修改。
<script type="text/javascript" src="http://api.map.baidu.com/getscript?v=2.0&ak=your ak"></script>