有时候载入javascript需要很长时间,怎样才能让此过程中IE不弹出"停止运行此脚本吗"Javascript
系统版本:win7 64位
是这样的。我是做GPS车辆监控系统的,现在要补充一个网页版,按照客户端的方式先获取单位列表和车辆列表,由于获取到的数据还需要保存到类中调用遍历区分父节点子节点,一旦数据过多的时候JS脚本响应就慢。
使用平台的最大总账户测试的时候,本来CHROME浏览器和火狐、猎豹都没有问题,虽然不算快,但是2S之内也能现实近千个单位,上万辆车的节点树了。但是换了IE(IE6~8都试过)之后,要长达7s左右,期间还不断跳出"停止运行此脚本吗"的提示,怎么样才不让这个JS加载缓慢的过程提示呢?
其实解决的方法还有改进代码,如果js有什么高效的hashmap就好了,有hashmap寻找父子节点关系就不用遍历了,到github搜了几个感觉都好复杂,有什么推荐的吗?
使用平台的最大总账户测试的时候,本来CHROME浏览器和火狐、猎豹都没有问题,虽然不算快,但是2S之内也能现实近千个单位,上万辆车的节点树了。但是换了IE(IE6~8都试过)之后,要长达7s左右,期间还不断跳出"停止运行此脚本吗"的提示,怎么样才不让这个JS加载缓慢的过程提示呢?
其实解决的方法还有改进代码,如果js有什么高效的hashmap就好了,有hashmap寻找父子节点关系就不用遍历了,到github搜了几个感觉都好复杂,有什么推荐的吗?
5个回答
几个点题主可以检查一下.
-
在生成完要更新的 DOM 树之前, 不要插入到 document 里, 这样浏览器只会渲染一次. 如果浏览器进行多次渲染, 这个代价是相当大的. 另外这里可以考虑尝试直接构造 HTML 字符串并在最后一次性通过 innerHTML 写入 document, 对比下性能.
-
遍历一万个对象如果时间复杂度只是 O(n), 应该影响是非常有限的, 但另外 DOM 就不同了 (其实如果只是遍历应该还好, 但毕竟这些最终会被渲染), 是否有必要新增上万个 DOM 节点?