我正在使用WordPress ACF插件创建转发器字段。中继器字段允许管理员向Google Map添加多个标记。

javascript - 多个Google Maps减慢WordPress管理员的速度-LMLPHP

当我们最初构建该站点时,它旨在处理大约20个标记。此后,客户已添加了150多个标记。这意味着有150个Google Maps实例正在后端加载,并且使所有操作变慢。

有没有一种方法可以为每个字段实现异步Google Map?

最佳答案

当浏览器解析传统脚本标记时,它必须等待脚本下载,解析和执行,然后再呈现其后的HTML。但是,使用异步脚本,浏览器可以继续解析和呈现同步脚本之后的HTML,而无需等待该脚本完成。脚本异步加载后,将尽快获取脚本,但脚本的执行将推迟到浏览器的UI线程不忙于做其他事情(例如渲染网页)之前。

另一个技巧是maps.googleapis.com/maps/api/js处的javascript文件是动态文件。服务器以不同的js文件响应不同的参数。

function getScript(src) {
document.write('<' + 'script src="' + src + '"' +
' type="text/javascript"><' + '/script>');
}


同步加载脚本时,浏览器将等待脚本完全加载,并且脚本调用document.write时,文本将附加到正在加载的文档中。但是,一旦文档完全加载,就会进行异步调用。当使用“ callback = initialize”加载js时,自执行函数已经包含要初始化的回调,以及一个可以异步加载更多脚本的修改后函数。

找到了这个相关的票证,讨论了如何异步加载Google地图:Loading google maps asynchronously

关于javascript - 多个Google Maps减慢WordPress管理员的速度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37278645/

10-12 01:49
查看更多