我们目前从谷歌CDN获取jQuery和jQueryUI(以及jQueryUI CSS)库。我喜欢这样做是因为可以调用google.load("jquery", "1");
,这将使用最新的jQuery 1.x.x版本。
现在由于安全原因,我打算本地获取这些库。
我很高兴本地获取它们,但我想知道还有哪些其他好处和需要注意的问题?
我们目前从谷歌CDN获取jQuery和jQueryUI(以及jQueryUI CSS)库。我喜欢这样做是因为可以调用google.load("jquery", "1");
,这将使用最新的jQuery 1.x.x版本。
现在由于安全原因,我打算本地获取这些库。
我很高兴本地获取它们,但我想知道还有哪些其他好处和需要注意的问题?
我经常使用来自Google的CDN(内容分发网络)。但以防万一,如果它离线:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>!window.jQuery && document.write('<script src="jquery-1.4.2.min.js"><\/script>')</script>
获取Google CDN的jQuery并在必要时返回本地文件
编辑: 如果您不需要支持IE6,并且您的网站部分使用https,也可以删除http:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
!window.jQuery...
)被解释之前加载和解释吗?<script>
标签是异步处理的,对吧? - rinogo<script>
标签是同步处理的!在第二行代码中,jQuery必须已被加载,但以防万一没有加载,我们会注入一些JS来本地加载它。如果jQuery已经存在,document.write
将永远不会被执行。 - Xaver其他人已经介绍了优点。缺点:
如果你只包含来自自己服务器的内容,那么仅有一个服务器需要运行,并且未被防火墙等阻止,以使您的网站正常工作。若要从第三方拉取脚本,则现在需要运行和解除阻止两个服务器才能使您的网站正常工作。
您从任何网站中拉取 <script>
都会完全控制用户在您的网站上的体验。如果 Google 恶意地感觉到某些事情,他们可以把东西放在他们的 jQuery 复本中,记录您的按键,从您所在页面窃取个人信息并将其与他们的网络跟踪数据库联系起来,让你在每个表单中发表“我爱谷歌!”评论,等等。
Google 可能实际上不会这样做,但这是一个超出您控制范围的因素,对于其他脚本托管服务肯定是一个需要担心的问题。之前曾经发生过统计脚本被恶意软件加载器攻击的事件。
在包含任何第三方脚本之前,即使只在您的网站上的一个页面上,您必须 100% 信任他们对该主机名上所有用户可访问的功能进行可见性控制(包括面向 Web 的管理员功能)。
谷歌CDN:
本地:
我更喜欢使用本地版本,因为我无法控制他们提供什么。
例如,我不希望我的用户受到Google Analytics或任何类似的影响,因为这在我的国家是一个法律问题。
好处:(特别是对于Google的CDN)