百度地图加载浏览器控制台警告信息
MarkLin 2021-05-18 Vue
# 百度地图加载浏览器控制台警告信息
# 黄色警告信息如下:
A parser-blocking, cross site (i.e. different eTLD+1) script, http://api.map.baidu.com/getscript?v=3.0&ak=xxxxxx&services=&t=20210512114808, 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
# 警告出现原因
页面渲染以后调用了document.write() ,而这种方式chrome53以上版本是不允许的。
# 警告的用意
对于在2G,3G 或者是慢 wifi 环境下面,使用document.write()动态加载资源会让页面的展现慢10秒以上,浏览器可以呈现页面之前,必须通过解析HTML标记来构建DOM树。每当解析器遇到脚本时,它必须停止并执行它,然后才能继续解析HTML。如果脚本动态地注入另一个脚本,解析器将被迫等待更长时间才能下载资源,这可能会导致一个或多个网络往返并延迟首次渲染页面的时间,导致页面无法加载或花费的时间长于用户放弃。根据Chrome中的设备,我们了解到,通过第三方脚本插入的document.write()页面的速度通常比2G的其他页面载入速度慢两倍,会出现页面阻塞。
# 解决方法
// 原有
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=key" ></script>
1
2
2
将src引入的地址中api?
换成 getscript?
即可
// 修改后
<script type="text/javascript" src="http://api.map.baidu.com/getscript?v=2.0&ak=key" ></script>
1
2
2