2012-08-01 96 views
16

我試圖調試我的iPhone4(iOS4)iPad1(iOS3.3)和桌面上的網站。爲什麼我的Mobile Safari緩存不能清除?

我的問題是我根本無法清除iPhone緩存。

如果我向我正在調試的js文件添加警報/控制檯,它們會顯示在iPad和桌面上,但iPhone只是從緩存中繼續重新加載。

如果我通過settings>safari>delete browser history, cache, cookies清除緩存,並在Safari中刪除所有書籤並刪除服務器上的文件,iPad和桌面中斷(缺少文件),但iPhone仍然加載頁面,就像什麼都沒發生一樣。

不確定這是否是正確的地方要問,但也許別人有類似的經驗和想法如何解決?

謝謝!

編輯
我玩過這一些更多。如果我通過圖標啓動應用程序,緩存似乎被清除。只有當我在Mobile Safari中打開頁面時,它仍然使用緩存中的錯誤文件。指針仍然歡迎!

編輯
我開始在這個賞金。我在網站上使用了RequireJS和JqueryMobile,所以這些也可能是緩存未被清除的原因。不過,我不明白爲什麼它在應用程序模式下清除,以及爲什麼它不能在移動Safari中清除。

我嘗試了以下方法:
1.在URL欄中單擊reload page不會清除緩存。點擊鏈接,然後通過go加載頁面好像清除緩存一次

+0

我還沒有真正玩過緩存清單,但是您可以使用緩存清單的「NETWORK」部分來指定應該刷新每個頁面加載的文件嗎?或者,如何將時間戳附加到您想確認的資產的URL未被緩存?或者你可以爲你想要緩存的資產設置一個'Cache-Control:no-cache,must-revalidate'頭文件?設置爲過去的「Expires」標題是另一個嘗試。介意我問你不想緩存什麼特定的文件? – Jasper 2012-08-10 01:28:02

+1

您是否嘗試清除設置中的緩存,然後按住睡眠/喚醒和主頁按鈕(以硬關閉您的iPhone)?當我這樣做,然後重新啓動iPhone,最後,緩存被刷新。 – 2013-08-05 23:34:40

+0

@JaredUpdike:前段時間,但我想我也試過這個。感謝您在 – frequent 2013-08-06 07:50:44

回答

15

即使這是一個有點哈克的頁面,也許有這個解決方法一去(我假設這是發展)

按音符在這裏停止Ajax cacheing How to disable Ajax caching in Safari browser?你可以設置在開發時使用no-cache頭文件,或使用純HTML這樣的文件

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

顯然它不會解決您被卡住的初始問題。但是你可以通過添加一個任意的查詢參數?something = 3164來打破這個循環,所以這個URL是唯一的。那麼下次它加載希望它會保持在無緩存參數。

如果即使這樣做不起作用,您可以設置一個書籤,將您重定向到不同的random = 14361號碼,以便它們都是實際上獨一無二的電話 - 但隨後我們就陷入了愚蠢的領域!

我想要一個適當的解決方案,但是當我正在開發JS webapps時,我發現有時候一切正常刷新一段時間,然後有時它不... ...我沒有真正的模式可以告訴 - 除了事實上,我認爲它似乎做的更少,當調試器啓用(但那完全沒有證據;-)

+0

好的。試試這個。我仍然在等待刷新正確的階段... :-) – frequent 2012-08-06 10:51:30

+0

是url.com/?something=13647(每次不同的號碼)不起作用?或者是HTML文件刷新,但你的資產不是?你可以添加一個查詢字符串呢? (然後在你的服務器上爲它們配置no-cacheing) – joevallender 2012-08-06 10:56:19

+0

不,我的評論是指你說「有時候一切正常刷新一段時間,然後有時它沒有」。對我來說,它似乎永遠不會工作。需要一點點來嘗試你的建議 – frequent 2012-08-06 11:12:09

2

嘗試停止Safari並重新啓動它,並刪除所有在Safari瀏覽器中的頁面....請參閱圖像如何關閉enter image description here

+0

剁碎的好主意。頁面已刪除。網絡服務器我必須檢查我是否可以重新啓動。可能需要一段時間,但我會回來。網絡服務器仍然不應該是原因,因爲它可以讓iPad和桌面平安無事。 – frequent 2012-08-01 07:44:06

+0

是的..刪除網絡服務器部分 – 2012-08-01 07:52:59

+0

雅請嘗試,如果你接受答案,我會自動知道;) – 2012-08-01 07:54:01

2

您正在處理一個HTML5 "offline" application?離線應用程序的清單文件的使用是相當新的,每個瀏覽器都有奇怪的怪癖。修改服務器上的清單文件,iPhone應該再次獲取頁面。

編輯: 如果你有一個清單文件(並指向它的HTML屬性),如果你刪除清單順序錯誤,你的緩存可以得到糾結:

  1. HTML和清單存在
  2. 刪除清單文件,並重新加載HTML頁面=> HTML頁面應該未清單,因爲清單404的,但在某些瀏覽器它不。
  3. 修改HTML => HTML頁面不緩存,因爲(不存在)清單文件沒有更改。

要正確取消清單,請嘗試:

  1. 添加HTML和表現早在
  2. 先取下HTML清單屬性,並重新加載頁面
  3. 然後刪除清單文件從服務器。
+0

我還沒有使用清單,所以我可以放心地排除這是原因。感謝您的答覆,但可能會在以後得到方便 – frequent 2012-08-13 10:39:14

+0

尚未使用它?你有沒有在你的網站測試中有在線清單文件?如果是這樣,在某些情況下,頁面可能會像現在一樣。 – MidnightLightning 2012-08-13 11:21:02

+0

這可能是......我在開始的時候有一個空的清單,但是...因爲它是空的,頁面無法從它重新加載。 – frequent 2012-08-13 11:56:06

1

有一個與出重新啓動Safari瀏覽器的另一個解決方案,

  1. 轉到Settings
  2. 然後往下走,去Safari
  3. 然後往下走,看到選項Clear Cookie and Data在below圖片iPhone Safari Clear Cookie and Data

  4. 現在回到你的Safari瀏覽器,你是完成了!

如果您在下面有任何更多的問題評論。

+0

好的。也嘗試這一點。非常感謝! – frequent 2012-08-08 16:34:51

+1

此選項不會完全清除外部文件JS/CSS的緩存。 – 2016-02-25 22:42:47

4

當iOS移動開發,你可以很容易地通過USB將手機插入到計算機,並使用開發工具清除緩存:

  1. 在電話中,使開發工具:設置/ Safari瀏覽器/高級
  2. 在計算機中,使Safari瀏覽器開發菜單:設置/高級
  3. 確保移動Safari瀏覽器打開時,檢查電話:開發/ PHONE_NAME/TAB_NAME
  4. 現在你按CMD-Shift-R鍵來清除緩存在電話
+0

啊。從來沒有聽說過。太好了!下次會嘗試。 – frequent 2014-04-17 12:15:58

-2

對我而言,有效的方法是在Google上搜索我的網站,然後單擊Google搜索結果。