在大型集合的IE8中“停止运行脚本错误”

时间:2012-07-31 06:50:46

标签: javascript backbone.js internet-explorer-8 underscore.js

在使用IE8从REST服务中获取相当大的Backbone集合时,遇到“此页面上的脚本导致Internet Explorer运行缓慢”警告消息。

我有大约25个属性的4000项(这是一个内部网应用程序,我做分页客户端)。

所有其他浏览器(IE9也都可以)完美运行。

收到的rest数组在提取到服务器后映射到模型集合时会出现警告。

此消息显示为IE8已a limit of around 5 million operations,并在到达时显示恼人的警告消息。

我不知道我怎么能达到这个限制,因为它对我来说并不是一个非常庞大的数据。

我了解到,可以通过操作客户端上的Windows注册表或Microsoft提供的patch来增加此限制。

更优雅的解决方案是使用here所述的变通方法,它将在长时间运行的操作中插入setTimeout,重置IE8中的操作计数器。

现在成功获取数据后,backbone会调用parse方法,该方法将在内部使用underscore.js映射函数。

我想在不触及underscore.js或backbone.js源代码的情况下应用变通方法代码。这可能吗?

1 个答案:

答案 0 :(得分:1)

是否可以拆分请求并让服务器前端执行所有分页逻辑? IE8真是太棒了,但你的方法也不是最好的做法,无论是内网还是内网。 4000个对象x 25个属性(json我猜,因为你正在使用主干)实际上是非常重的客户端解析。

查看Backbone的Backbone.Paginator组件,因为它肯定会帮助你。

http://addyosmani.com/blog/backbone-paginator-new-pagination-components-for-backbone-js/