javascript - 谷歌地图创建隐藏的 div 并在内部跨越值 BESbswy 并降低 Angular 性能

标签 javascript angular google-maps-api-3

我在我的 Angular 项目上使用 google map API v3,但是当我将 map 添加到我的项目时,google map 会创建一个隐藏的
<div style="position: absolute; left: 0px; top: -2px; height: 1px; overflow: hidden; visibility: hidden; width: 1px;"><span style="position: absolute; font-size: 300px; width: auto; height: auto; margin: 0px; padding: 0px; font-family: Roboto, Arial, sans-serif;">BESbswy</span></div>
主体底部的元素。
我没有意识到这一点,直到我在使用 map 时感觉到我的 fps 降低了,例如,使用绘图管理器创建多边形等。 所以经过几个小时的调试,我意识到因为那个无用的隐藏 div Angular 变化检测每秒触发一次并导致性能问题我检查过ngAfterViewChecked并意识到即使在我的组件完全加载后,这个函数也会不断调用,当我从 dom 中删除该元素时,一切都恢复正常。
我用谷歌搜索这个问题,我也发现了一些与这个问题相关的问题,但我找不到任何可接受的解决方案 Unknown “BESbswy”

enter image description here

最佳答案

Google Places API 也有同样的问题。每当我通过查询他们的服务访问结果时,愚蠢的“BESbswy”div 也是如此。我的搜索显示它与 typekit 相关,但我没有在我的页面上使用 @font-face 或谷歌字体。我的猜测是谷歌将其放入以确保他们的 map 正确显示?但它留在那里 - super 烦人。我看到的唯一解决方法是创建一个计时器并在几纳秒后删除 div。但这似乎更像是在问题上包扎而不是解决问题。

稍后编辑!

所以,我刚刚发现,当将谷歌地图添加到屏幕时,我会发生这种情况。 map 的容器没有定义宽度或高度,所以 map 没有宽度,所以当 typekit 试图通过比较“BESbswy”字符串来查看字体是否已加载并且由于没有宽度而失败时在 map 上的比较字符串上。这会导致字体加载的运行时测试出错或无法加载。

Google 似乎没有编写在错误/失败时删除 div 的逻辑。但也许这就是我们知道有问题的地方?就个人而言,我更喜欢日志而不是控制台……

关于javascript - 谷歌地图创建隐藏的 div 并在内部跨越值 BESbswy 并降低 Angular 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53000347/

相关文章:

javascript - 无法理解 zone.js 示例

angular - 是否可以在 Angular 2中读取其他应用程序的本地存储?

angular - Ionic 2 - 如何导入 Intl polyfill

javascript - Google map API addListener 方法不起作用

javascript - JavaScript 函数中返回未定义

javascript - 在 date-fns 中获取主名月份名称

javascript - 使用 object.create() 设置函数的原型(prototype)

javascript - 在 Google Maps Places API 中更改默认文本 "Enter a Location"

xml - 读取距离xml节点(距离) - Google Maps api - Delphi 6

javascript - 如何从 JWPlayer 实例中删除事件处理程序?