有没有办法实时加载jQuery的特定功能?

时间:2014-01-30 19:37:50

标签: javascript jquery html html5 performance

正如我所看到的,每次加载站点时加载jQuery都非常慢。即。

<!-- jQuery -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<!-- Site Scripts -->
<script type="text/javascript" src="js/myJS.js"></script>

与将jQuery下载到本地文件系统并在本地导入相比。即。

<!-- jQuery -->
<script type="text/javascript" src="js/jquery-someversion.min.js"></script>
<!-- Site Scripts -->
<script type="text/javascript" src="js/myJS.js"></script>

显然取决于加载脚本时我的互联网速度。

我想知道是否有某种类型的jQuery API允许我使用HTML脚本标记“懒惰加载”它(jQuery)。懒惰加载jQuery的意思是:只加载我将要使用的特定功能,即

<!-- jQuery -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js/events"></script>
<!-- Site Scripts -->
<script type="text/javascript" src="js/myJS.js"></script>

更改了来源:&lt;脚本.... src =“http://code.jquery.com/jquery-latest.min.js/ 事件”/&gt;

我知道我可以查找该特定功能的jQuery代码并在需要时自行加载,但我不希望每次jQuery都将这些功能复制到我的本地文件系统更新或其他什么。如果你还没有到达我要去的地方,我想要的是有一种方式,我知道这些功能是最新的和支持的(通过jQuery)所以后来的bug修复/改进/更改/添加/交叉-browser-对jQuery的支持在我的网站中“自动”实现。

4 个答案:

答案 0 :(得分:2)

总是提取jquery-latest vs jquery-version的速度变慢 - 服务器强制执行它。例如:

http://code.jquery.com/jquery-latest.min.js

jquery-latest headers

http://code.jquery.com/jquery-1.10.2.min.js

enter image description here

请注意,现在发送了一个非常的日期Expires标头。这意味着一旦加载了第一个页面,浏览器将长时间缓存此版本,使后续页面调用几乎没有延迟。

但是,通过使用最新版本,您强制浏览器为每个页面加载获取此文件。当然这会增加延迟。

  

我想要的是有一种方式,我知道这些功能是最新的和支持的(通过jQuery)所以后来对jQuery的错误修复/改进/更改/添加/跨浏览器支持是“自动的” “在我的网站上实施。

除非您撰写使用$.browser.die().live的内容,否则会想知道为什么它不再有效。

可以说花几分钟时间来更新你的JS文件(特别是如果它意味着你的网站昨天工作但今天没有,你不知道为什么)。

答案 1 :(得分:2)

如果您将使用cdn路径,那么如果先前已缓存该文件,则不会重新下载该文件。它增加了缓存命中的可能性。 (随着越来越多的网站遵循这种做法,越来越多的用户已经准备好了文件。)

答案 2 :(得分:2)

您可以创建自己的jQuery版本,但您必须自己托管它。

按照"How to build your own jQuery" guide的说明操作:

  

可以创建不包含jQuery功能子集的特殊版本。当构建器确定没有使用jQuery的那些部分时,这允许更小的自定义构建。例如,仅为$ .ajax()使用JSONP并且不需要计算元素的偏移或位置的应用程序可以排除偏移量和ajax / xhr模块。

答案 3 :(得分:1)

你不这么说! jQuery的大小只有32KB!

http://code.jquery.com/jquery-latest.min.js

您将花费更多时间加载多个文件而不是一个文件。此外,将所有JS和CSS文件合并为一个JS和一个CSS文件是个好主意。