在我开始学习如何使用jQuery library之前,我想向我保证一些与文件大小有关的事情......
我很清楚浏览器和服务器会缓存jQuery等文件 - 理论上这意味着该文件只能下载一次,因此后续使用的速度会提高。
我的问题更多的是关于浏览器如何处理javascript文件,以及每次加载页面时浏览器是否处理32k代码文件是否会产生不利影响?这不仅仅是文件的大小,而是它的复杂性。
或者我的理解不正确,浏览器不仅缓存了javascript文件,还缓存了该文件的某种“编译”版本? (是的,我知道 javascript实际上并没有“编译”,但希望你知道我的意思。)
我猜大多数浏览器都能够足够快地处理文件,以便能够实现无差别,并且必须处理较少代码编写的速度优势jQuery弥补了它。
答案 0 :(得分:3)
您对资产规模和发动机性能的担忧有一些需要考虑的重叠因素。最终只有你才能确定你的项目适合/可接受的内容。
可能会说明显而易见但我们将从这里开始。
任何减少页面消耗资产大小的机会都是一件好事。保持你的标记,风格和精益。避免采用您的用户群始终拥有高速连接的心态。例如,考虑移动受众以及他们的连接速度将如何波动。快速加载的页面是获得出色用户体验的第一步。
修剪胖子并确保你已经验证了你的jQuery包含在你的项目中。
您的陈述“在我开始学习如何使用jQuery库之前”让我相信您可能不熟悉Web开发和js开发。不是为了挖掘你的问题或你的问题的有效性,但这个假设将驱动我去的地方。
总体而言,将自己暴露给jQuery库将是一件好事,即使它不是您项目的正确选择。
多年来,jQuery库已经成熟,并且每天都提供一些优雅的解决方案来解决浏览器js问题。浏览源代码并了解实现的一些概念只会帮助您。
此外,jQuery无处不在。无论您可能形成何种个人观点,jQuery都是开发人员工具箱中最受欢迎的库之一,并且似乎无处可去。即使你从不在你从头开始开发的项目中使用jQuery,你肯定会遇到某个地方。熟悉图书馆只会有利于您的开发工作。
最终,您需要评估为什么要考虑将jQuery引入项目中。它只是你最常使用的选择器引擎吗?如果你正在进行基本的DOM操作并且只需要一个好的选择器引擎,那么考虑直接使用Sizzle,它只有4KB(缩小和压缩)。
也许jQuery是你想要包含的酷插件的依赖项。你可以自己重写它来解决它吗?调整工作大小并检查是否值得节省可能的文件大小。如果你只需要节省几KB但需要40个小时才能完成工作,那还值得吗?
创建浏览器支持矩阵。您支持的浏览器不仅会对速度产生直接影响,还会对资产规模产生直接影响。
检查支持的js引擎的性能差异。这将允许您预测页面上js的速度,从那里您可以对您认为可接受的内容做出任何让步。
请记住js(包括你和jQuery等库)的质量和完整性也将极大地影响性能。更快的js引擎(例如V8 for Chrome)可能对写得不好的js有点宽容,因为IE7的JScript可能会暴露缺陷并大大降低性能。
jQuery是一个库,它肯定会影响为核心创作的js中的性能。您可能会发现大多数性能挑战的jQuery源自第三方插件,可能无法进行广泛的跨浏览器基准测试。
如上所述,jQuery包含许多跨浏览器修复程序,用于DOM API支持中的各种差距。这可能会为您节省大量精力或增加一些可能不需要的膨胀。检查支持矩阵倾斜的方式(旧版浏览器与现代浏览器),并确定这可能会对您的项目产生什么影响。如果您发现自己只针对最新和最好的浏览器,可以想象您可以创建自己的jQuery建模库,只添加项目所需的功能。不要忘记调整工作的大小,看看它如何影响底线。
最重要的是,如果你的项目在很大程度上依赖于js以帮助提供功能和用户体验,那么很难说使用jQuery会是一个糟糕的选择。当您考虑到所需的工作量时,您可能没有时间来编写更精简/更高效的代码。考虑所需的工作,不仅需要创建一个等效的库(即使修剪了功能),还需要努力维护它。你需要让编码印章与一大批开发人员保持同步,以保持同步。
无论你决定什么,祝你好运!
答案 1 :(得分:1)
只需从Google加载jQuery(或其他库)。许多其他网站都这样做,因此访问您网页的人很可能已将此文件存储在缓存中。
这里有一篇很好的文章:
http://encosia.com/3-reasons-why-you-should-let-google-host-jquery-for-you/