为什么Todos MVC ember演示应用程序在IE8中产生缓慢的脚本警告



我刚刚开始学习如何使用Ember,并将其与其他JavaScriptMV*库/框架/约定一起进行评估。到目前为止,ember的架构和性能给我留下了深刻的印象。然而,我所在组织的一个要求是,无论我们选择什么,都必须在IE8上运行。我在其他地方看到IE8是受支持的,但当然,性能可能会降低。

为什么ember网站上的基本Todos示例似乎运行良好,但TodoMVC项目网站上的示例似乎陷入了无限循环?当我在IE8中加载它时,页面看起来不正确(例如,"需要做什么?"占位符不在那里),每隔几秒钟就会产生慢速脚本警告("此页面上的脚本导致Internet Explorer运行缓慢…")。

这与Ember路由器或TodoMVC示例中包含但不包含在基本示例中的其他功能或插件有关吗?感谢您的帮助!

更新:自从我6个月前发布这个问题以来,Ember已经发生了很大的变化,而且全球IE8的使用率已经下降到24%左右(希望很快会下降),这个问题变得无关紧要了。此外,我最初引用的"好"Ember TODO代码似乎已经被移动或删除,而IE8中存在"无限循环"问题的代码现在呈现出另一个问题:Object doesn't support this property or method (todos_controller.js, Line 8)。因此,我建议结束这个问题,尽管我从未得到令人满意的答案。

这个问题变得无关紧要(请参阅更新)。虽然我最近尝试在IE8中使用的代码似乎不太好用,但这可能不是EmberJS的错,而是其他一些现代web浏览器功能不受支持。根据Peter Wagenet(大约一年前)的说法,EmberJS应该能够与旧浏览器一起工作,但性能可能会降低。http://www.browserstack.com/list-of-browsers-and-platforms

好吧,查看页面的来源,我发现这是注释:

<!--[if IE]>
<script src="../../assets/ie.js"></script>
<![endif]-->

大概他们要么已经准备好了IE的脚本,还没有更改它,所以它使用了它们,要么他们还没有完成IE的脚本编码。

最新更新