19

iPhone4 (iOS4) iPad1 (iOS3.3) とデスクトップでサイトをデバッグしようとしています。

私の問題は、iPhone のキャッシュをまったくクリアできないことです。

デバッグ中のjsファイルにアラート/コンソールを追加すると、それらはiPadとデスクトップに表示されますが、iPhoneはキャッシュからリロードし続けます。

Safari でキャッシュをクリアするsettings>safari>delete browser history, cache, cookiesと、すべてのブックマークが削除され、サーバー上のファイルが削除されます。iPad とデスクトップは壊れます (ファイルが見つからない) が、iPhone は何も起こらなかったかのようにページをロードします。

ここで質問するのが適切かどうかはわかりませんが、他の誰かが同様の経験を持ち、回避策を考えているのではないでしょうか?

ありがとう!

編集
私はこれをもう少しいじりました。アイコンからアプリケーションを起動すると、キャッシュがクリアされたように見えます。Mobile Safari でページを開いたときにのみ、キャッシュから間違ったファイルが使用されます。ポインターは引き続き歓迎します。

編集
私はこれについて報奨金を開始しています。サイトで RequireJS と JqueryMobile を使用しているため、これらもキャッシュがクリアされない理由である可能性があります。それでも、アプリモードでクリアされる理由と、モバイル Safari でクリアされない理由がわかりません。

次のことを試しました
。 1. URL バーをクリックreload pageしても、キャッシュがクリアされません。リンクをクリックしてからページをロードすると、go時々キャッシュがクリアされるようです

4

5 に答える 5

18

これは少しハックですが、この回避策を試してみてください (これは開発用であると想定しています)。

ここで ajax キャッシュを無効にする際の注意事項に従って、Safari ブラウザーで Ajax キャッシュを無効にする方法は? 開発中またはこのようなプレーンHTMLでキャッシュなしヘッダーを設定できます

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

明らかに、立ち往生するという最初の問題は解決されません。ただし、任意のクエリ パラメータ ?something=3164 を追加することでサイクルを断ち切ることができるため、URL は事実上一意になります。次にロードするときは、キャッシュなしのパラメーターを保持することを願っています。

それでもうまくいかない場合は、ブックマークを設定して、毎回別の random=14361 番号にリダイレクトすることで、それらはすべて実質的に一意の呼び出しになります。

適切な解決策が欲しいのですが、JS webapps を開発しているときに、すべてがしばらくの間適切に更新される場合と、そうでない場合があることがわかりました...私が知ることができる実際のパターンはありません-私が考える事実は別としてデバッガーが有効になっていると、あまり実行されないようです(ただし、それはまったく根拠がありません;-)

于 2012-08-06T10:36:13.543 に答える
5

iOS モバイル向けに開発する場合、電話を USB 経由でコンピューターに接続し、開発ツールを使用することで、キャッシュを簡単にクリアできます。

  1. 電話で、開発ツールを有効にします: 設定/Safari/詳細
  2. コンピューターで、Safari 開発メニューを有効にします: 設定/詳細
  3. モバイル Safari が開いていることを確認し、電話を調べます: Develop/PHONE_NAME/TAB_NAME
  4. ここで、cmd-shift-r を押して電話のキャッシュをクリアします
于 2014-04-17T11:24:50.270 に答える
2

サファリを停止して再起動し、サファリにあるすべてのページを削除してみてください...ページを閉じる方法の画像を参照してくださいここに画像の説明を入力してください

于 2012-08-01T07:34:28.307 に答える
2

HTML5 の「オフライン」アプリケーションを扱っていますか? オフライン アプリでのマニフェスト ファイルの使用はまったく新しいもので、ブラウザーごとに奇妙な癖があります。サーバー上のマニフェスト ファイルを変更すると、iPhone はページを再度取得する必要があります。

EDIT : マニフェスト ファイル (およびそれを指す HTML 属性) があった場合、マニフェストを間違った順序で削除すると、キャッシュが混乱する可能性があります。

  1. HTMLとマニフェストが存在
  2. マニフェスト ファイルを削除し、HTML ページをリロードします =>マニフェスト 404 であるため、HTML ページはマニフェストされませんが、一部のブラウザではマニフェストされません
  3. (存在しない) マニフェスト ファイルが変更されていないため、HTML を変更します => HTML ページはキャッシュを解除しません。

正しくアンマニフェストするには、次を試してください。

  1. HTML とマニフェストを追加して戻します
  2. 最初に HTML マニフェスト属性を削除し、ページをリロードします
  3. 次に、マニフェスト ファイルをサーバーから削除します。
于 2012-08-06T19:36:32.493 に答える
1

サファリ用にデバイスを再起動しない別の解決策があります。

  1. に行くSettings
  2. それから下に行き、Safari
  3. 次に、下に移動しClear Cookie and Dataて、以下の画像のようにオプションを表示しますiPhone Safari の Cookie とデータの消去

  4. サファリに戻って完了です!

他に質問がある場合は、以下にコメントしてください。

于 2012-08-08T16:32:58.607 に答える