我创建了一个Drupal网站,它使用Openlayers来显示地图.在其中一个地图中,有一些"过滤器",用户可以使用它们来动态更改地图中显示的数据.与各国相关的数据显示为各国的泡沫.使用Openlayers的API绘制气泡.选择过滤器时,会在场景后面进行大量计算.我使用了setTimeout来避免长时间运行的循环.过滤器工作正常.但是,在单击多个过滤器后(例如,如果单击12个过滤器),如果用户通过单击链接尝试移动到另一个页面,则在IE7和IE8中,以下错误显示 -
"停止运行这个脚本?
此页面上的脚本导致Web浏览器运行缓慢.如果它继续运行,您的计算机可能会无响应."
此错误不会在任何其他浏览器中显示,并且在单击链接之前不会显示在IE7中.这方面的任何指针都将受到高度赞赏.
更新:问题出在OpenLayers的事件缓存中.OpenLayers在窗口卸载事件中清除了事件缓存,这在IE7和IE8中陷入困境(我不知道为什么).到目前为止,当用户点击另一个链接时,我已经能够通过点击普通链接调用OpenLayers.Event.unloadCache()来解决问题.