javascript - 加载 jQuery 的最佳方式是什么?

标签 javascript jquery asp.net asp.net-mvc google-cdn

<分区>

Possible Duplicate:
Where do you include the jQuery library from? Google JSAPI? CDN?

我有一个使用 jQuery 的应用程序。该应用程序几乎可以使用任何最新版本的 jQuery,例如 1.7 或 1.8。

任何人都可以就如何编写我的应用程序代码以最大限度地提高它在用户缓存中找到满足我需求的最新版本的 jQuery 的机会提出建议。例如,我应该尝试从 google CDN 中寻找一个版本,在这种情况下我应该尝试寻找哪个版本?

最佳答案

公共(public)网站使用内容分发网络 (CDN) 非常普遍。要引用一个文件,您可以像任何其他本地文件一样将它们包含在脚本标签中:

jQuery 示例

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

谷歌示例

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

微软例子

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.0.min.js" type="text/javascript"></script>

我应该始终引用最新版本吗?

这样做存在风险,例如使用 jQuery CDN 始终指向最新版本。

在最近的几个版本中,有几个方法已被弃用,即:toggle() - 用于鼠标事件,live()die() 和其他人。

据我从 jQuery 论坛了解到,那些已弃用的方法将在 1.9 版中永久删除。

此外,jQuery 计划同时发布 1.9 和 2.0。然而,2.0 并不是 1.9 的延续,而是将同时开发。

2.0 将不支持 IE6、IE7 或 IE8。 jQuery 1.9 将与所有以前的浏览器版本保持兼容。

了解它 here .

出于这些原因,我不建议自动始终指向最新版本,而是明确引用您支持的特定版本。

如果 CDN 挂了怎么办

这种情况很少发生,但是 CDN 可能会发生故障。为了以防万一,您不必承担后果,您可以实现后备计划。

// Check if jQuery was initialized and if not (CDN was down for example), then
// load jQuery from a local source.
if(typeof jQuery === 'undefined'){
    document.write(unescape("%3Cscript src='yourlocalpath/jquery.1.x.min.js' type='text/javascript'%3E%3C/script%3E"));
}

CDN可用性和性能评估

关于可用 CDN 的质量和性能,我遇到了这个非常有趣的 article在 royal.pingdom.com 上。

来自 Pingdom 的报告显示,jQuery 最常用和免费的主机;谷歌、微软和 Media Temple;已被证明是可靠的,但性能不一致。

为了评估网络,Pingdom 在欧洲和北美的多个地点进行了测试,每分钟一次,全天候持续 30 天。

结果发现,这三者都提供了出色的可用性,但性能却并非如此。

对于不使用 HTTPS 或安全服务器的网站,Media Temple 是迄今为止最快的,在欧洲紧随其后的是 Google,但在北美则落后。对于 HTTPS 网站,谷歌在欧洲是最快的,谷歌和微软在北美的表现相似。

Microsoft 在欧洲表现最差,但在北美整体表现与 Google 持平。

关于javascript - 加载 jQuery 的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12332697/

相关文章:

Javascript 事件删除

javascript - 为什么这个对 Controller 的 ajax 调用在特定页面 (Laravel) 中不起作用?

jquery - 如何用jQuery获取lang属性的值?

c# - ASP 自定义日历控件在回发时消失

asp.net - 对一个页面执行一次脚本

javascript - Nodejs,最好有很多相同的要求或使用句柄?

javascript - 为什么将 "0"与三元运算符一起使用会返回第一个值?

javascript - 带组件变量的 Angular 2 管道/过滤器

javascript - jQuery/Javascript 根据所选答案更改选择选项

javascript - 如何让 onchange 事件发生在 ASP.NET 的代码隐藏中?