有几种方法可以包含jQuery和jQuery UI,我想知道人们在使用什么?
谷歌JSAPI
jQuery的网站
你自己的网站/服务器
另一个CDN
我最近一直在使用Google JSAPI,但发现设置SSL连接需要很长时间,甚至只能解决google.com问题.我一直在谷歌使用以下内容:
我喜欢使用Google的想法,因此它在访问其他网站时被缓存并从我们的服务器节省带宽,但如果它一直是网站的缓慢部分,我可能会更改包含.
你用什么?你有什么问题吗?
编辑:刚刚访问过jQuery的网站,他们使用以下方法:
编辑2:这是我去年包括jQuery没有任何问题的方式:
不同的是删除http:
.通过删除它,您不必担心在http和https之间切换.
毫无疑问,我选择让Google API服务器提供JQuery服务.我没有使用jsapi方法,因为我没有利用任何其他Google API,但如果改变了那么我会考虑它...
第一: Google api服务器分布在世界各地而不是我的单一服务器位置:更紧密的服务器通常意味着访问者的响应时间更快.
第二:许多人选择在Google上托管JQuery,因此当访问者访问我的网站时,他们可能已在其本地缓存中安装了JQuery脚本.预缓存内容通常意味着访问者的加载时间更短.
第三:我的网络托管公司向我收取使用的带宽费用.如果访问者可以在其他地方获得相同的文件,则每个用户会话消耗18k是没有意义
我了解到,我将一部分信任放在Google上,以提供正确的脚本文件,并在线提供.到目前为止,我对使用谷歌并没有感到失望,并将继续这种配置,直到它有意义为止.
有一点值得指出......如果您的网站上有安全页面和不安全页面的混合,您可能需要动态更改Google源代码,以避免在安全页面中加载不安全内容时看到的通常警告:
这是我想出的:
更新2010年9月8日 - 通过删除HTTP和HTTPS并简单地使用以下语法,已经提出了一些建议来降低代码的复杂性:
此外,如果您想确保加载了最新的主要版本的jQuery库,您还可以更改URL以反映jQuery主编号:
最后,如果您不想使用Google并且更喜欢使用jQuery,则可以使用以下源路径(请记住,jQuery不支持SSL连接):
只是重新阅读您的问题,您有使用https的原因吗?这是Google在其示例中列出的脚本标记
我不希望我开发的任何公共站点依赖于任何外部站点,因此,我自己托管jQuery.
当其他(Google,jquery.com等)发生故障时,您是否愿意在您的网站上停电?较少的依赖关系是关键.
优点:Google上的主机有好处
可能更快(他们的服务器更优化)
他们正确处理缓存 - 1年(我们很难做出更改,以便在我们的服务器上获得正确的标题)
已在另一个域上拥有指向Google托管版本的链接的用户已在其缓存中包含该文件
缺点:
某些浏览器可能会将其视为XSS跨域并禁止该文件.
特别是运行Firefox NoScript插件的用户
我想知道你是否可以从谷歌包括,然后检查一些全局变量的存在,或者某些,如果你的服务器没有加载?
这里有一些问题.首先,您指定的异步加载方法:
有几个问题.脚本标记在检索页面时会暂停页面加载(如有必要).现在,如果加载速度慢,这很糟糕,但jQuery很小.上面的方法,真正的问题是,由于负载的jquery.js许多网页独立发生,他们将完成加载和渲染的jQuery加载所以任何jQuery的造型你这样做将是一个前对用户可见的变化.
另一种方式是:
尝试一些简单的例子,有一个简单的表,并使用setOnLoadCallback()方法将单元格的背景更改为黄色,并使用静态jquery.min.js加载将$(document).ready()更改为黄色.第二种方法没有明显的闪烁.第一个会.就个人而言,我认为这不是一个好的用户体验.
举个例子来运行:
Layout
One | Two |
---|---|
Three | Four |
Five | Six |
Seven | Nine |
Nine | Ten |
您(应该)看到表格出现,然后行变黄.
google.load()方法的第二个问题是它只托管有限范围的文件.这是jquery的一个问题,因为它非常依赖插件.如果您尝试,包括有一个jQuery插件标签和
google.load()
插件可能会失败,"没有定义jQuery的",因为它尚未加载的消息.我真的没有办法解决这个问题.
第三个问题(使用任一方法)是它们是一个外部负载.假设你有一些插件和你自己的Javascript代码你到最小的两个外部请求加载你的Javascript.你可能会更好过jQuery的获得,所有相关的插件和你自己的代码,并把它变成一个缩小的文件.
从你应该使用谷歌的AJAX库API的主机?:
至于加载时间,你实际上加载了两个脚本 - jsapi脚本和mootools脚本(上面的压缩版本).这是两个连接,而不是一个连接.根据我的经验,我发现加载时间实际上比从我自己的个人共享服务器加载慢2-3倍,即使它来自谷歌,我的压缩文件版本比谷歌大几K.这甚至在文件加载和(可能)缓存之后.所以对我来说,由于带宽并不重要,所以不重要.
最后,你有一个潜行的问题,一个偏执的浏览器将请求标记为某种XSS尝试.这通常不是默认设置的问题,但在公司网络上,用户可能无法控制他们使用的浏览器,更不用说安全设置可能会出现问题.
所以最后我不能真正看到我至少使用Google AJAX API for jQuery(更多"完整"API在某些方面是不同的故事),除了在这里发布示例.