2012-03-16 3 views
6

jqueryモバイルを実行しているWebアプリケーションにappcacheを追加すると、サーバのスティペットからjson-fileを要求するすべてのajax呼び出しが機能します。私のマニフェストファイルは次のようになります。HTML5のappcache機能を使用するときにjsonリクエストを許可するにはどうすればよいですか?

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 

答えて

2

を、私は持っていた問題は、AJAX呼び出しのキャッシュフラグが不履行ありました本当に。

私はAjaxのGETリクエストに

cache : false 

を追加した場合、要求がサーバーに当たることがわかりました。 (http://api.jquery.com/jQuery.ajax/)

10

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

NETWORK: 
* 
http://* 

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

また、appcachefacts.infoは、appcacheのこの点やその他の詳細を理解するのに役立つリソースです。私はappcache学習曲線を続ける前にこれをすべて読むことをお勧めします:

[ネットワーク]セクションには、インターネット経由でロードできるすべてのURLがリストされています。アプリケーションにAPI呼び出しが含まれている場合は、ここに列挙してください。これはURL接頭辞のリストであることに注意してください。したがって、すべてのネットワーク通話がhttp://example.com/api/で始まる場合は、それを含めてください。

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

+1

これは本当にデフォルトにする必要があります。 HTML5 AppCacheは実装されていないか、まったく指定されていないようです。ブラウザは、キャッシュされたページをレンダリングしてから、すべてのリロードでキャッシュを更新する接続があれば、バックグラウンドで新しいページをダウンロードする必要があります。しかし、代わりに、ユーザーが接続していても、一種のオフラインモードが強制されます。 –

0

今日はこの問題を投げます。しかし、たった2つのステップで私の場合の仕事に:

  1. $.ajax({ url: "/myurl", cache: false, ...})
  2. コンフィグappcache NETWORKセッション私はそれがあなたのために便利です願っています。

関連する問題