【问题标题】:Using Html5boilerplate's code to load JQuery very slow when run locally本地运行时使用 Html5boilerplate 的代码加载 JQuery 非常慢
【发布时间】:2012-01-03 21:10:46
【问题描述】:

我一直在使用以下代码在我的所有项目中加载 JQuery。我是从http://html5boilerplate.com/ 获取的。这种技术被广泛讨论here

<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>

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

【问题讨论】:

    标签: jquery html5boilerplate


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

    • 我想通过 XAMPP 运行它是我正在寻找的解决方案,我现在尝试一下,但是该死的东西不知何故坏了;-) 有机会时必须重新安装它.
    • @ZachL。如果您通过网络服务器提供文件而不是仅仅打开文件,它应该可以工作。
    • 为了记录,我对这个解决方案有点失望。对于小型 html/js/css 项目,我喜欢直接在桌面上工作。
    【解决方案2】:

    这一行:

    &lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"&gt;&lt;/script&gt;

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

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

    要解决此问题,请将https: 添加到脚本标记的src,如下所示:

    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"&gt;&lt;/script&gt;

    【讨论】:

    • 看起来它会起作用,但这会破坏协议无关方法的要点吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    相关资源
    最近更新 更多