为程序猿打造的最专业的问答平台
我要提问

有时候载入javascript需要很长时间,怎样才能让此过程中IE不弹出"停止运行此脚本吗"Javascript

浏览1692 | 马云云_理想青年 发布于 6年前 | | 举报
系统版本:win7 64位
是这样的。我是做GPS车辆监控系统的,现在要补充一个网页版,按照客户端的方式先获取单位列表和车辆列表,由于获取到的数据还需要保存到类中调用遍历区分父节点子节点,一旦数据过多的时候JS脚本响应就慢。
使用平台的最大总账户测试的时候,本来CHROME浏览器和火狐、猎豹都没有问题,虽然不算快,但是2S之内也能现实近千个单位,上万辆车的节点树了。但是换了IE(IE6~8都试过)之后,要长达7s左右,期间还不断跳出"停止运行此脚本吗"的提示,怎么样才不让这个JS加载缓慢的过程提示呢?
其实解决的方法还有改进代码,如果js有什么高效的hashmap就好了,有hashmap寻找父子节点关系就不用遍历了,到github搜了几个感觉都好复杂,有什么推荐的吗?
5个回答
1
dabaozi发表于6年前 dabaozi

可以数据一次性加载到浏览器本地数据库 localstore 再做 异步渲染

1
程序员1999发表于6年前 程序员1999

瓶颈在dom的渲染,

异步渲染dom,在节点展开时再去 生成节点;

1
路俊建发表于6年前 路俊建

几个点题主可以检查一下.

  1. 在生成完要更新的 DOM 树之前, 不要插入到 document 里, 这样浏览器只会渲染一次. 如果浏览器进行多次渲染, 这个代价是相当大的. 另外这里可以考虑尝试直接构造 HTML 字符串并在最后一次性通过 innerHTML 写入 document, 对比下性能.

  2. 遍历一万个对象如果时间复杂度只是 O(n), 应该影响是非常有限的, 但另外 DOM 就不同了 (其实如果只是遍历应该还好, 但毕竟这些最终会被渲染), 是否有必要新增上万个 DOM 节点?

0
你懂的发表于6年前 你懂的

需要在一个图中显示这么多节点么 超过几百个节点对浏览器性能也是考验
如果只是列表 建议用树按需求加载

0
Fqujnyq发表于6年前 Fqujnyq

上万个对象对js压力其实不大,但上千个dom就压力巨大了,优化dom往往比优化hashmap什么的有效

我来回答
您当前输入了 0 个文字

擅长用户

jibjab 令狐葱 my 孙晋硕 kkli dabaozi 思倍儿 路俊建 zsc1980 阿木 mrJin 较瘦 i7GTX980 王子亭 张龙manlo bachelor Levine 依云 herostark 我感觉墙撞多了 李振春 那一年 喜剧演员 jianleer Fqujnyq jiajiakilong ooxxPP Snailrider xelz Kavlez 开发陈 SF丶STS nil_461711 kevin 你懂的 haidaozhaoran 夜尽天明19950504 德玛西亚之剑
TOP
登录
登录
记住我
忘记密码?
密码错误
登陆
没有账号?点此注册
举报
胡乱举报将扣除一定问答币或以其他方式进行处罚
辱骂 广告 重复 其他
举报