2012-01-03 112 views
7

我一直在使用以下代碼在我的所有項目中加載JQuery。我從http://html5boilerplate.com/抓住它。有這種技術的廣泛討論here在本地運行時使用Html5boilerplate的代碼加載JQuery的速度很慢

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

此代碼的偉大工程,一旦我把它掛在interwebs似乎相當不錯的快,但是當我打開我的.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> 

我在這裏丟失了什麼東西嗎?我覺得我不應該得到超慢的加載時間,但是當註釋掉這些行時它確實會自行解決。

回答

11

我猜你不是通過服務於HTML網絡服務器。

URL上的//前綴表示,它應該使用相同的協議作爲當前資源(通常是HTTP或HTTPS)

既然你不通過HTTP,而是通過文件服務,它試圖在本地文件系統上查找它,最終超時。

在Chrome檢查網絡選項卡顯示其試圖加載爲我以下:

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

它會嘗試加載這些時間和文件系統(或可能瀏覽器)最終會超時。

正確的方法是通過Web服務器來服務它,無論是IIS,如果你使用的是Windows或Apache如果你在Linux/MAC(阿帕奇也適用於Windows,但IIS具有更好的UI工具)

+0

你的猜測是正確的。 – 2012-01-03 21:19:57

+0

我想通過XAMPP來運行它是我正在尋找的解決方案,現在我會嘗試一下,但是不知怎麼的事情打破了;-)當我有機會時,必須重新安裝它。 – 2012-01-03 21:22:54

+0

@ZachL。如果您通過網絡服務器提供文件而不是打開文件,它應該可以工作。 – Davy8 2012-01-03 21:23:27

1

這條線:

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

試圖尋找在jQuery的文件系統,這意味着它需要一段失敗。在Chrome瀏覽器中查看開發人員面板的「網絡」選項卡時,它會嘗試在file://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js中查找該文件。然後,一旦找不到該文件,它將使用下一行加載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>

+0

看起來它會起作用,但是這會打敗協議不可知論的方法? – 2012-01-03 21:20:55