問題タブ [offline-caching]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - .map ファイルを使用した Android のオフライン マップ
.map ファイルを使用してオフライン マップを表示するコードを見つけました。しかし、.map ファイルを作成する方法や、特定の都市や州用の .map ファイルを生成する方法が見つかりません。特定の都市または州の .map ファイルを作成または生成する方法を誰か教えてもらえますか? .map ファイルを使用してオフライン マップを表示するコードを以下に示します。
.map ファイルを作成できません。早急に解決策を教えてください。
javascript - HTML5 / JS - アプリケーションがオフラインであることを確認する
HTML5 オフライン アプリケーションをテストしています。そのために、ローカル Web サーバー (IIS) を停止してアプリケーションを開きます。正常にロードされましたが、サーバー側の API メソッドを要求するとすぐに失敗しました。
それを防ぎたいのですが、 $.get('/api/method') の代わりにローカル ストレージからデータを読み取ります。しかし、自分のアプリケーションがオフラインであることを理解するための機能を見つけることができます。
使用しようとしましnavigation.onLine
たが、常に正しいようです (少なくとも Chrome では確認できます)。
何か提案はありますか?
編集:現在の回答を考慮して。アプリケーションは、cache.manifest に従ってリソースを使用するため、オフラインであることを明確に理解しています。クライアントがあらゆる種類のトリックやpingを実行する必要があるというのは、私にはばかげています。現在のモードを確認する簡単な方法があるはずです。
html - HTML5 / JS / オフライン モード - クエリ パラメータを使用したページのリクエスト
キャッシュ マニフェスト (/cache) の一部であるページがあります。
アプリケーションがオフライン モードになるとすぐに、そのページを開くことができます ( http://app/cache
)。しかし、クエリ文字列でアクセスしようとすると、Chrome は存在しないものとして扱い、フォールバック ページを返します ( http://app/cache?url=1234
- は機能しません)。
誰もがその回避策を知っていますか?
html - ユーザーが必要な場合にのみアプリケーションをキャッシュしますか?
一部のブラウザーは、アプリケーション キャッシュを使用するかどうかをクライアントに尋ねず、最初にアクセスしたときにすべてをダウンロードするだけです (たとえば、Android のブラウザー)。これは、アプリケーション キャッシュが数 MB で、クライアントがモバイル ネットワーク上にある場合に問題を引き起こす可能性があります。これはコストがかかります。また、キャッシュのダウンロードを停止することはできますか? Android などでメニュー ボタンを押してもブラウザは閉じず、バックグラウンドで実行されます。
クライアントが「このサイトをオフラインでキャッシュしたい」ボタンを押したときに設定された Cookie に基づいてマニフェストのみを追加するのは良い考えですか? それによって、新たな課題が生じることはありますか?
私はこれをテストしましたが、うまくいくようです。ただし、さらにテストが必要です。興味があれば、約 2 週間でサイトへのリンクを提供できます。
sencha-touch - cache.manifest に複数の js ファイルを含めますか?
MVC 形式の sencha touch 2 を使用しています。アプリをオフラインにするための cache.manifest ファイルを作成しました。
私の問題は、cache.manifest ファイルが app.js 以外の js ファイルを認識していないように見えることです。オンラインで作業しているときは適切にキャッシュされているように見えますが、オフラインにすると、キャッシュは index.html、app.js、および sencha ファイルのみを返します。cache.manifest ファイルに .js ファイルを 1 つだけ含めることはできますか?
asp.net-mvc - キャッシュマニフェストを本番モードでのみ適用する
アプリケーションに「cache.manifest」を追加しました(これは完全に機能します)。それ以降、常にキャッシュをクリアするか、cache.manifestバージョンを変更する必要があるため、デバッグが非常に困難です。
「HttpContext.Current.IsDebuggingEnabled」条件でマニフェストをロードしようとしました。
これは機能せず、VisualStudioで3つのエラーが発生します。
- ブロックに終了}文字がありません
- html要素が閉じられていません
- 1つ以上のhtml要素を持つことはできません。
誰かアイデアがありますか?
ありがとう !
javascript - iOS AppCached にキャッシュされた Ajax リクエスト
次のことを行う HTML5 オフライン アプリケーションがあります。
- ページを表示する
- マニフェストを確認する (仕様による)
- ajax リクエストを (Prototype を使用して) 実行して、オンラインかどうかを確認します。
Mobile Safari iOS (Safari、Chrome、Firefox 以外) でのみ次の問題が発生します。
- OK: シナリオをオンラインで実行
- OK: シナリオをオフラインで実行 (平面モード)
- OK: サーバーを停止します。
- KO: サーバーを再起動します
Ajax-Request は実行されますが、オフラインのようにタイムアウトになるまでハングします
回避策
- OK: マニフェストを更新すると、キャッシュが更新されます
- OK: iOS の設定でキャッシュを消去すると
- KO: ajax-request にパラメーターを入れた場合 ( ?d={timemillis} など)
- KO: ajax リクエストは POST にあります
- KO: リクエストにはヘッダーがあります: Cache-Control: no-store および Pragma: no-cache
- KO: MobileSafari を強制終了してリロードすると
- KO: マニフェストの NETWORK 部分には URL が明示されています
だから私は何をすべきかわからない:
- localStorage もクリアするため、モバイル Safari ストレージをクリーニングできません
- サーバー上のマニフェスト ファイルに「アクセス」できません
- ユーザーが常に「機内モード」になるかどうか確信が持てません
質問:
- キャッシュの更新を強制する方法はありますか? (仕様によるといいえ)
- Ajax Request のキャッシュを禁止する方法はありますか? (マニフェスト以外)
- iOS で動作することを示す jsFiddle はありますか?
よろしくお願いします
asp.net-mvc-3 - HTML 5 のオフライン機能はブラウザーで動作しますか?
私はこれを数日間続けてきましたが、ますますイライラしています。Chrome、FF で一貫性のないオフライン機能の結果が得られます。Safari を使い始めたばかりです。
Asp .Net MVC 3 を使用してサンドボックス アプリを開発しています。以下は、アプリケーションの構造です。
- コントローラー/カーコントローラー
- ビュー/車/編集
- ビュー/車/編集オフライン
- ビュー/車/インデックス
3 つのビューのうち、マニフェスト属性が定義されているのは Index だけです。Index は、最初に要求されるビューです。以下は私のマニフェストの内容です:
Index の最初のリクエスト時に、ブラウザはアプリケーション キャッシュに 3 つのエントリを作成します。彼らです:
- localhost/Sandbox/Car、タイプ = マスター
- localhost/Sandbox/Car/EditOffline、タイプ = フォールバック
- localhost/Sandbox/Offline.、タイプ = マニフェスト
3 つのブラウザーすべてのオフライン動作をシミュレートしてきた方法は、IIS を明示的に停止することです。その後、インデックスが要求されました。IIS をシャットダウンし、編集アクションに要求を出します。その結果、EditOffline が提供されます。ここで、再度インデックス ビューを表示すると、404 エラーが表示されますが、なぜでしょうか? ブラウザがそのページのキャッシュされたバージョンを提供したと思いましたか? 編集ビューを (まだオフラインで) 再リクエストすると、404 エラーも表示されますが、なぜですか? ブラウザーは以前は EditOffline ビューを提供していたのに、なぜ今 404 を取得するのですか? FF では、何度か期待どおりに動作するようになりましたが、コードは変更していません。オフライン キャッシュを明示的に削除し、サーバーを再起動し、インデックス ビューを再要求したところ、魔法のように機能しました。
java - Android のオフライン ストレージ管理
サーバーからデータをフェッチまたは取得し、Android アプリケーションに更新を投稿する方法。オフラインストレージを管理する方法とは、インターネット接続がない場合は常に、Android アプリケーションでデータが更新される方法、少なくとも Android アプリケーションで更新を表示する方法を検討することを意味します。誰かがこの問題を知っていたら、それについて答えてください。
私は実際にサーバーからデータを取得し、Android アプリケーションに更新を送信するための中間ファイルとしてphp
またはを使用json
していますが、より複雑なようで、サーバー側のファイルにアクセスする許可を取得できない場合、更新をどのように管理すればよいですか? サーバー ファイルへのアクセス許可が必要かどうか。
トピックの詳細: 更新を Web サイトと同期させたい場合、
どのように処理または実装すればよいですか? ここでコーディングを求めているわけではありません。
android - プログラムでAndroidWebView内のオフラインモードキャッシュだけを削除するにはどうすればよいですか?
WebSQLデータベースまたはローカルストレージデータを削除せずに、オフラインモード(cache.manifestで定義)ファイルを削除しようとしています。
私はキャッシュファイルの削除を実験しており、stackoverflowやその他の場所で関連する回答を使用して、次のアプローチからの回答を使用してWebViewキャッシュを削除しました。
Android Webview- FWIW
内のファイルを手動で削除することを示すキャッシュを完全にクリアしますContext.getCacheDir();
。より単純なアプローチ(受け入れられない回答が記載されています)を使用した場合と同じ結果に気づきましたWebView.clearCache(true);
。このアプローチでは、cache.manifestに含まれていないキャッシュファイルが削除されます。
私はまた、使用について言及している他の複数の場所で説明されている手法を使用しました
オフラインモードのファイルには影響しません。私は確かにwebview.dbを削除しましたが、不思議なことに、を使用してwebviewCache.dbファイルを見たことがありませんContext.databaseList()
。
(余談ですが、webview.dbを削除し、次にアプリを開いたときに入力フィールドにテキストを貼り付けようとした後にクラッシュに気付いたので、webview.dbを削除することに疑問があります。防御が必要なようです。少なくとも一部のアプリでは、そのトリックを中心にプログラミングする
)。
また、アプリケーション設定ページの[キャッシュのクリア]ボタンを使用しましたが、オフラインモードのファイルには影響しません。アプリケーション設定ページの[データの消去]ボタンは、オフラインモードのファイルだけでなく、WebSQLデータベースやローカルストレージキーを含む他のすべてのファイルも削除します。また、「データのクリア」ボタンをプログラムで模倣する方法もわかりません。これは、私が探している答えではありませんが、これも役立ちます。
繰り返しになりますが、要点は、これらのアプローチのどれも一見十分ではないということです。私がやりたいのは、オフラインモードでキャッシュされたJS / HTML / CSSを削除し、AndroidWebViewを介して作成されたすべてのWebSQLdbファイルとローカルストレージキーを保持することです。
私は自分のWebサーバーのログを監視しているので、アプリがファイルを要求しているかどうかを正確に知ることができます。