Abh*_*jit 2 javascript jquery internet-explorer openlayers
我创建了一个Drupal网站,它使用Openlayers来显示地图.在其中一个地图中,有一些"过滤器",用户可以使用它们来动态更改地图中显示的数据.与各国相关的数据显示为各国的泡沫.使用Openlayers的API绘制气泡.选择过滤器时,会在场景后面进行大量计算.我使用了setTimeout来避免长时间运行的循环.过滤器工作正常.但是,在单击多个过滤器后(例如,如果单击12个过滤器),如果用户通过单击链接尝试移动到另一个页面,则在IE7和IE8中,以下错误显示 -
"停止运行这个脚本?
此页面上的脚本导致Web浏览器运行缓慢.如果它继续运行,您的计算机可能会无响应."
此错误不会在任何其他浏览器中显示,并且在单击链接之前不会显示在IE7中.这方面的任何指针都将受到高度赞赏.
更新:问题出在OpenLayers的事件缓存中.OpenLayers在窗口卸载事件中清除了事件缓存,这在IE7和IE8中陷入困境(我不知道为什么).到目前为止,当用户点击另一个链接时,我已经能够通过点击普通链接调用OpenLayers.Event.unloadCache()来解决问题.
jQuery可能非常昂贵.链接下面的文章为您提供了10个良好的建议,以更好地执行您的jQuery应用程序.对我来说最有用(我一个月前遇到同样的问题)是用传统的lops替换$ .each()并用jquery模板替换大量的DOM构造.还使用ID而不是类,并为选择器,选择器缓存等提供上下文.
此列表使用我自己的建议中的"有用性"标准进行排序.
| 归档时间: |
|
| 查看次数: |
6192 次 |
| 最近记录: |