7

我一直在使用以下代码在我的所有项目中加载 JQuery。我从http://html5boilerplate.com/抓取它。这里对这种技术进行了广泛的讨论。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="jquery-1.7.1.min.js"><\/script>');</script>

这段代码效果很好,一旦我把它放在互联网上,它看起来很快,但是当我.html在本地打开我的文件时,每次刷新大约需要 10 秒。一般来说,我受够了并按如下方式更改代码:

<!-- uncomment when going live 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="jquery-1.7.1.min.js"><\/script>');</script>-->

<!-- remove following line when going live -->
<script src="jquery-1.7.1.min.js"></script>

我在这里遗漏了一些明显的东西吗?我觉得我不应该得到超慢的加载时间,但是在注释掉这些行时它确实会自行解决。

4

2 回答 2

11

我猜你没有通过网络服务器提供 HTML。

url 上的//前缀表示它应该使用与当前资源相同的协议(通常是 http 或 https)

由于您不是通过 http 而是通过文件提供服务,因此它会尝试在本地文件系统上查找它,最终会超时。

Chrome 检查器上的网络选项卡显示它试图为我加载以下内容:

文件://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
文件:///C:/Users/[我的用户名]/Documents/jquery-1.7.1.min。 js

它会尝试加载这些时间,文件系统(或者浏览器)最终会超时。

正确的方法是通过网络服务器提供服务,如果你在 Windows 上是 IIS,如果你在 Linux/Mac 上是 Apache(Apache 也适用于 Windows,但 IIS 有更好的 UI 工具)

于 2012-01-03T21:18:00.753 回答
1

这一行:

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

尝试在您的文件系统中查找 jQuery,这意味着需要一段时间才能失败。在 Google Chrome 中查看开发者面板的 Network 选项卡时,它会尝试在file://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js.The 中查找文件。然后,一旦找不到该文件,它会使用下一行加载 jQuery(并成功找到该文件):

<script>window.jQuery || document.write('<script src="jquery-1.7.1.min.js"><\/script>');

要解决此问题,请添加https:src您的脚本标签中,如下所示:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

于 2012-01-03T21:17:53.870 回答