项目中有一项使用谷歌地图的功能。 我们使用自定义图标(png格式的红点)渲染最多700个标记。在更新到v3.31之前,渲染是平滑而快速的。
但是,切换到v3.31后,一旦标记数量大于256,浏览器就会冻结,并且在浏览器(Chrome)控制台中会出现警告:
[违规]'setTimeout'处理程序需要5779ms marker.js:27
在此处发布问题之前:
1)我检查了我们的实现,并且我们这边的标记创建没有变化。
2)检查了v3.31(https://developers.google.com/maps/documentation/javascript/releases)
的发行说明3.31 2018年2月13日 变化:
- 默认情况下制作前256个标记DOM标记,然后制作后续标记Tile Markers。目前的默认值是所有Tile Markers。
- 拖动Pegman时,在高缩放级别(放大)时,请选择NEAREST,而不是Google选择的BEST全景。
- gestureHandling:none现在与draggable相同:在mousedown处理程序中更改时为false(现在它在mousedown上生效)。
3)在渲染255个标记时检查DOM并且只看到div,但是当渲染时>生成了255幅画布。在画布生成期间,浏览器不响应。
问题是,是否有人遇到过类似的问题?