6

jquery モバイルを実行している webapp に appcache を追加すると、サーバーから json ファイルを要求するすべての ajax 呼び出しが機能しなくなりました。私のマニフェストファイルは次のようになります。

CACHE MANIFEST

CACHE:

index.html
scripts/jquery-1.7.1.min.js scripts/jquery.flot.min.js
scripts/jquery.flot.threshold.min.js
scripts/jquery.mobile-1.0.1.min.js
styles/jquery.mobile-1.0.1.min.css
styles/touchStyles.css
styles/styles.css

NETWORK: 

index.appcache
dataFetchAndDraw.js
initJson

initJson は機能しない呼び出しの 1 つです。完全なアドレス (aaa:bbb:ccc:ddd:6565/initJson) を入力しようとしましたが、成功しませんでした。

私の .htaccess ファイルには、次の 1 行しかありません。

AddType text/cache-manifest .manifest
4

3 に答える 3

10

この問題に遭遇したばかりで、マニフェスト ファイルの NETWORK セクションにワイルドカードを追加して、ブラウザがキャッシュされていないリソースのネットワークにアクセスできるようにする必要がありました。

NETWORK:
*
http://*

すべてのブラウザをサポートするには、上記の両方のワイルドカード エントリが必要なようです。

また、appcachefacts.infoは、このことや appcache に関するその他の詳細を理解するのに役立つリソースであることがわかりました。appcache の学習曲線を進める前に、これを最後まで読むことをお勧めします。

NETWORK セクションには、インターネット経由でロードできるすべての URL が一覧表示されます。アプリケーションに API 呼び出しが含まれている場合は、必ずここに列挙してください。これは URL プレフィックスのリストであることに注意してください。したがって、すべてのネットワーク呼び出しがhttp://example.com/api/で始まる場合、含める必要があるのはそれだけです。

任意の URL (スクリプト、スタイルシート、API 呼び出しなど) へのアクセスを許可する場合は、このセクションに *、http://*、および https://* を含めます。(Chrome と Safari は * を尊重します。Firefox は http://* と https://* が必要です。)

于 2012-06-19T14:12:51.983 に答える
2

私が取り組んでいたアプリケーションで同様の問題が発生しました。問題は、ajax 呼び出しのキャッシュ フラグがデフォルトで true に設定されていたことです。

追加したら分かった

cache : false

私のajax GETリクエストに対して、リクエストはサーバーにヒットします。(http://api.jquery.com/jQuery.ajax/)

于 2012-05-21T00:37:11.457 に答える