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

Webサーバーを介して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ツールがあります)

于 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の開発者パネルの[ネットワーク]タブを見ながら、でファイルを検索しようとします。次に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>

于 2012-01-03T21:17:53.870 に答える