24

Apple は、iOS 6 でのホームスクリーン/スタンドアロン Web アプリの動作方法を変更したようです。さまざまなブログ投稿 () によると、これらのアプリは、キャッシュされたファイル、sqllite db、ローカル ストレージなどを格納するための独自の専用スペースを取得するようになりました。以前のように Safari ブラウザーと共有します。

iOS 6 以前の開発では、次の手順を宗教的に実行してキャッシュをクリアしていました...

  1. ホーム画面からアプリを削除します。
  2. Safari のすべてのページ/タブを閉じます。
  3. 最後に、「設定」>「Safari」で「Cookie とデータを消去」または「データを消去」します。

残念ながら、Apple がゴール ポストを移動した現在、この同じ手順は機能していないようです。クリア後​​、Safari で変更が反映されていても、ホーム画面に追加してアプリを起動すると、古い HTML や JS などが引き続き反映されます。

iOS 6 でキャッシュを確実に完全にクリアする方法を知っている人はいますか?

4

9 に答える 9

9

キャッシュが適切にクリアされていることを確認できませんが、これはうまくいきました:

これを行うには、iOS デバイスで Web Inspector を許可する必要があります。[設定] > [Safari] > [詳細設定] > [Web インスペクター] に移動します (アクティブにする必要があります)。コンピューターの Safari で開発者メニューをアクティブにする必要があります。[設定] > [詳細設定] > [開発者メニューを有効にする] に移動します

  1. USBケーブルでデバイスをコンピュータに接続します
  2. safari > Developpement > Your Device name > Inspect an App に移動します (アプリが実行されている必要があります)。
  3. これにより、Web アプリのコンピューターのインスペクターが開きます
  4. インスペクタが開いている間にキャッシュをクリアします (command + alt + E)
  5. インスペクターを開いたまま、コンピューターのページを更新します (コマンド + R)

どういうわけか Webapp キャッシュがクリアされ、キャッシュされていないコードを取得しました。

于 2014-06-28T11:59:14.120 に答える
7

回避策を見つけました。新しいバージョンを見るのに苦労しているユーザーのために、ウェブページ自体にリンクを張るだけです...

<a href="javascript:top.frames.location.reload();">refresh</a>

iPhone/iPad のアドレス バーの更新ボタンと同じように機能します。

于 2014-11-02T13:47:07.043 に答える
3

デバイスを接続し、コンピューターでSafari の Web インスペクターを開きdocument.location.reload()、コンソール タブで実行してページをリロードできます。

リロードする前にOption+ Command+Eを押して、キャッシュがクリアされていることを確認してください。

上記の代わりに、Shift+ Command+を押しRてキャッシュなしでページをリロードすることもできますが、うまくいかないこともあります。

于 2015-12-09T17:12:21.847 に答える
2

一意の GET タグをすべてのhref属性の末尾に追加してみてください。次に例を示します。

<link rel="stylesheet" type="text/css" href="/css/global.css?
   <?php echo(mt_rand(10000000, 99999999)); ?>
" />

href="/css/global.css?########"これにより、ほぼ毎回異なる数のが生成されます。これにより、iOS の Safari は「新しい」ページを強制的に削除します。これは、同じ URI から発信されたデータがキャッシュに存在せず、今後も存在しない可能性が高いためです (開発中にアプリを何百万回もリロードする予定がない限り:D)。

于 2014-08-08T15:09:42.147 に答える
0

これはしばらく私を夢中にさせました。デバイスのキャッシュをクリアしようとしましたが、うまくいきませんでした。ページの名前を変更することは役に立ちましたが、名前を元に戻すと、同じ古いバージョンが表示されます。昨日解決策を見つけました。デバイスを Mac に接続し、Safari の [開発] メニューで Web インスペクターを開く必要があります。Web Inspector に入ったら、Inspector のツールバーの [Reload page] ボタンを押すだけで、デバイスの画面に新しいバージョンが表示されます。

于 2016-11-15T13:28:06.053 に答える
0

現在これに対処する唯一の方法は待つことですが、回避策があります。ファイルの名前を変更すると、新しいコードがプルされます。ただし、キャッシュがクリアされる前に古い名前に戻すと、古いコードが使用されます。キャッシュは定期的に更新され、最終的に更新されます。変更を拒否したCSSファイルでこれが発生しました。時間が解決しますが、テストのために更新する必要がある場合は、名前の変更が機能します。

于 2013-03-18T19:02:45.530 に答える
-1

WebView に渡すリクエストを NSURLRequestReloadIgnoringLocalCacheData に設定するだけです

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[self.webView loadRequest:request];
于 2012-10-20T17:37:59.763 に答える