0

我使用WordPress的插件ACF创建一个中继器领域。中继器字段允许管理员为Google地图添加多个标记。多谷歌地图减缓WordPress管理

ACF Repeater with Google Maps

当我们最初建网站,其目的是要处理大约20标记。客户已添加超过150个标记。这意味着150个Google地图实例将在后端加载并放慢一切。

是否有实现异步谷歌地图的每个字段的方法吗?

+0

我的建议是从ACF中继领域,转而既然你有这么多的使用自定义职位类型。我认为这将更易于管理。 –

+0

这是一个很好的解决方案,谢谢。唯一的问题是迁移已经存在的数据所需的时间。有任何想法吗? – Squideyes

回答

1

当浏览器解析传统的脚本标记,它必须等待脚本下载,解析和渲染后,不能有任何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时,自执行函数已经包含回调到初始化的函数,以及一个可以异步加载更多脚本的修改函数。

发现这个相关的机票,讨论如何加载谷歌地图异步:Loading google maps asynchronously