2

我正在编写一个需要一次显示多达 4000 个多边形的应用程序,其中一些具有数百个坐标。每个多边形都需要一个 、 和 的事件mouseover以及mouseout一个doubleclick信息框标签。

我最初在 IE 8 中遇到了 JavaScript 语句限制的问题。似乎 IE 将 JavaScript 限制为在单个执行块中处理 5,000,000 个 VM 语句,然后抛出一个丑陋的对话框,警告用户使用长时间运行的脚本(无论多快脚本执行。)我通过"setTimeout"在我的代码中放置 JavaScript 语句并将处理分成块来解决这个问题。该脚本现在在合理的时间内执行完成,而不会遇到丑陋的错误。

但是我现在遇到的问题是在我的多边形已经构建和显示之后。如果用户随后尝试缩放,则在 IE 中超过了 5,000,000 条语句限制。但是,在这种情况下,在执行 Google Maps API 代码期间达到了限制,我无法控制并且无法放入 setTimeouts 或将其分成块。

在 Chrome 和 Firefox 中,没有任何问题,并且多边形加载速度惊人地快,在几秒钟内。平移和缩放同样没有问题。

我尝试过的事情:

1) 减少 JavaScript 语句的数量。我试过让我的代码更精简。但这实际上是在 Google Maps API 代码中重新绘制多边形时发生的,所以我不确定这是否会产生影响。

2)通过要求不太准确的多边形来减少每个多边形的点数。这有点帮助,但没有解决问题。

3) 更改了 IE 的“MaxScriptStatements”注册表项以阻止 IE 使用此限制。它有效,但它不是我的应用程序的实际解决方案。

有没有其他人遇到过这个问题?

4

0 回答 0