1

オフラインモードでも動作するHTML5アプリケーションを作成しました。HTML要素にはマニフェスト属性が含まれ、マニフェストにはアプリケーションをオフラインで使用できるようにするために必要なすべてのファイルが含まれます。自動化された方法でJavaScriptファイルを縮小する方法を見つけようとしていますが、マニフェストファイルも機能しています(縮小後にマニフェストファイルを手動で編集する必要はありません)。ほとんどの場合、縮小されたjavascriptファイルを操作するときは、ファイル名にバージョン番号やクエリ文字列変数などを使用して、縮小されたjavascriptファイルの新しいバージョンが読み込まれるようにするのが最適ですが、マニフェストと組み合わせるとうまく機能しません。クエリ文字列変数または別のファイル名の変更をサポートしていないファイル。

AjaxMinとSquishItを試しましたが、これを機能させることができませんでした。この組み合わせを機能させるためのアイデアや実用的な解決策はありますか?

私たちのHTML:

<html manifest="app.manifest">

私たちのマニフェスト:

CACHE MANIFEST

NETWORK:
data

CACHE:
scripts/application/application.js
scripts/application/database.js
scripts/application/knockout.extensions.js
scripts/application/main.js
scripts/application/models.js
scripts/application/prototype.extensions.js
etc...

ありがとう!

4

2 に答える 2

0

更新をプッシュする場合は、マニフェストを 1 バイト以上変更するだけです。ほとんどの人は、バージョン番号付きのコメントを使用します。

#version 0.1

ブラウザーがキャッシュされたページを表示すると、バックグラウンドでマニフェストがダウンロードされます。変更された場合、マニフェスト内のすべてのファイルを再ダウンロード*します。新しいJSファイルも同様です。したがって、新しいファイルのダウンロードをトリガーするために必要なことはこれだけです。すべてが正しくダウンロードされると、次回ページをロードするときに新しいファイルが使用されます。

(*) 再ダウンロードすると、ブラウザは Last-Modified および/または E-Tag ヘッダーを送信し、ファイルが変更されていない場合にサーバーが 304 を返すことができるようにします (帯域幅の使用を減らすため)。また、一部のブラウザーは、expires ヘッダーを尊重するため、appCache を使用する場合、expires ヘッダーに基づくキャッシュは役に立たないため、それほど遠くない、または過去にある expired ヘッダーを送信します。

また、期限切れが送信されない場合、firefox は最終変更ヘッダーに基づいて期限切れの値を推測することに注意してください。ファイルがしばらく変更されておらず、appcache を使用している場合、ファイル名を変更する以外に、Firefox にそのファイルを強制的に再ダウンロードさせる方法はありません (FX が更新されなかった理由を突き止めようとして、ほとんど正気を失いました)一部のファイル)。

ミニフィケーションの問題が何であるかわかりません。新しい JS は動作するようになりましたか、それともブラウザで新しいファイルを使用できない場所ですか?

于 2011-09-26T14:59:13.487 に答える
0

JavaScript を縮小するためのビルド プロセスまたはリリース プロセスがありますよね? ここで、新しいバージョンのマニフェストの再生成をそのプロセスの一部にする必要があります。ビルド ツール (make、rake、ant など) が新しい縮小された JavaScript を再構築した後、新しい JavaScript ファイルを指す新しいマニフェスト ファイルも生成する必要があります。

于 2011-09-27T06:19:46.603 に答える