15

私はオフラインのWebアプリケーションを可能にするHTML5の機能を見始めています。

しばらく前に、CDNの使用が私のアプリケーションでうまく機能することに気づいたので、私はCDNを使い続けてきましたが、ほとんどはjQueryだけでした。

ただし、マニフェストファイルでクロスドメインリソースをキャッシュできるようには見えません。

この時点で、関連するDive Into HTML5チュートリアルで説明されているように、キャッチオールマニフェストを使用しています。私のjQueryは、HTML5ボイラープレートで定義されているものと同様にプルインされます。

オンラインユーザー向けにCDNからjQueryを引き続き提供できるようにしたいのですが、オフラインアクセス用にローカルコピーをキャッシュしておくことをお勧めします。

このルートを追求する価値はありますか、それともすべてのリクエストに対して、自分のサイトからjQueryを提供するだけに切り替える必要がありますか?

ありがとう。

4

3 に答える 3

7

実際には、jQueryCDNへのリンクを持つマニフェストを作成できます。私のようにapp.manifest

CACHE MANIFEST
# 2012-01-20:v4

http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js

それはHTMLセグメントです:

<html manifest="app.manifest">
<head>
    ....
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    ....
</body>
</html>

それは私にはうまくいきます。

于 2012-04-15T04:28:20.330 に答える
3

オンラインjqueryが存在するかどうか、ローカルからロードされていないかどうかを確認するパスは、ここで回答されました: CDNがブロックされている/利用できない場合にフォールバックとしてローカルスクリプトファイルをロードする方法は?

議論といくつかの異なるアプローチがあるところ

個人的に私はhtml5boilerplateアプローチが好きです:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>

ブラウザがmodernizerhttp ://www.modernizr.com/でオフラインキャッシュをサポートしているかどうかを確認でき ます。modernizer2.0バージョンは条件付き読み込みをサポートしているため、次のスクリプト(diveintohtml5から取得)で必要なリソースを検出して読み込むことができます。 :

    if (Modernizr.applicationcache) {
  // window.applicationCache is available!
} else {
  // no native support for offline :(
  // maybe try Gears or another third-party solution
}

しかし、前に言ったように、私はhtml5boilerplateメソッドを好みます

于 2011-10-07T14:50:31.320 に答える
0

何週間も考えた後、私は今夜家に帰る途中でようやくアイデアを思いつきました。

ブラウザがオフラインをサポートしているかどうかを確認することができます。次に、アプリケーションのオフラインサポートを有効にするかどうかをユーザーに尋ねる領域を作成できます。含まれている場合は、jQueryのローカルコピーを読み込みます。そうでない場合、またはオフラインサポートが利用できない場合は、CDNからjQueryを参照するだけです。

または、アプリケーションの別のページである可能性があります。彼らがそれにアクセスした場合、ローカルのjQueryファイルをプルするスクリプト要素が含まれているだけです。次に、アプリケーションに応じて、ページが1つ戻るか、ウィンドウが閉じます。(jQueryのローカルコピーを追加しても、既存のページからjQueryを削除しない限り(変数を上書きするなど)、メインページでは機能しないと思います。)

ブラウザがオフラインコンテンツ(ファイル)を保持する方法によっては、ローカルjQueryファイルが1ページにのみ読み込まれる場合、ごくまれに問題が発生する可能性があります。もちろん、ユーザーがオフラインになるまで、その時点で(潜在的に)すべてのページで呼び出されます。

于 2011-03-29T00:04:46.447 に答える