在使用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源代码的情况下应用变通方法代码。这可能吗?
答案 0 :(得分:1)
是否可以拆分请求并让服务器前端执行所有分页逻辑? IE8真是太棒了,但你的方法也不是最好的做法,无论是内网还是内网。 4000个对象x 25个属性(json我猜,因为你正在使用主干)实际上是非常重的客户端解析。
查看Backbone的Backbone.Paginator组件,因为它肯定会帮助你。
http://addyosmani.com/blog/backbone-paginator-new-pagination-components-for-backbone-js/