jQuery / Javascript框架效率

我的最新项目是使用javascript框架(jQuery),以及一些插件(validation,jquery-ui,datepicker,facebox,…)来帮助创建一个现代的Web应用程序。

我现在发现页面加载比我习惯的慢。 经过一些js剖析(感谢VS2010!),似乎很多时候都在框架内进行处理。

现在我了解ui工具越复杂,就需要处理的处理越多。 该项目尚未进入大型阶段,我认为这是平均function。 在这个阶段,我可以看到它不会很好地扩展。

我注意到jQuery中的’each’命令之类的事情需要相当多的处理时间。

让其他人使用JS框架经历一些额外的延迟? 如何最小化它们对页面性能的影响? 是否有使用JS框架实现的最佳实践?

谢谢

我个人的看法是使用框架方法和工具,使它们有意义并使生活更轻松,例如选择器和解决跨浏览器的怪癖,并使用普通的旧的vanilla JavaScript,例如不需要使用框架方法,例如,在简单的循环中。

我会检查并仔细检查您使用该框架的代码,以确保它能够尽可能好地执行; 以一种表现不佳的方式使用框架太容易了,有时候直到一个人发布它才发现这个:)

框架确实会引入额外的延迟,因为通常会有许多函数由于使用入口点函数而执行。

编辑:

关于使用jQuery的一些一般要点:

1.如果要多次使用它们,请在局部变量中缓存jQuery对象。 查询DOM是一项相对昂贵的操作,因此应该尽可能少地完成。 如果您有相关的选择器,请查看执行广泛的选择,然后使用find()filter() next()prev()等方法来过滤集合以获取您将使用的相关元素得到的选择器function。

2.在函数内部,不要不必要地在jQuery对象中包装对象。 如果存在跨浏览器方式访问可靠的对象属性值,则使用该方法。 例如,文本输入HTMLElement的value属性

 $('input:text').each(function() { // use this.value // don't worry about this $(this).val(); }); 

3.尽量避免在只使用一小部分function的情况下添加大型脚本文件。 在页面加载上解析和执行代码可能会花费大量时间,而您永远不会使用它们! 如果可能,仅提取所需的相关代码。 我很欣赏这可能很难并且并非总是可行,特别是在版本控制方面,但值得指出。