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