2009-12-02 99 views
6

我已經使用PHP構建了iPhone webapp。主要(也是唯一)頁面包括支持apple-mobile-web-app-的蘋果觸摸全屏元標記,以便它可以在添加到主屏幕後運行全屏。但是,似乎每次我從主屏幕啓動應用程序時,都會使用頁面的緩存版本,而不是刷新頁面(當然,我需要在啓動時更新頁面,並且無法在此處使用Ajax - 需要使用SSO phpCAS動態驗證用戶)。我沒有使用任何清單文件,並嘗試添加有關緩存的元標記,但沒有成功。有人知道如何解決這個問題嗎?iPhone Web App禁用緩存

謝謝

回答

3

你嘗試過哪些元標記?

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 

應該告訴Safari不要緩存,但我沒有嘗試過。

您可以使用JavaScript從緩存頁面加載您的「真實」啓動頁面,使用任何標準技術使URL獨一無二,例如添加一個隨機數字。

這甚至可能適用於主啓動頁面,但我對此表示懷疑。值得一試,但。


我建議緩存的頁面加載了新的一頁,只有當它是跳板上:

UNTESTED建議:

window.onload = function() { 
    if (navigator.standalone) { 
    document.location.href = 'http://your.com/whatever.php?randomjunk=1234') } 
} 

所以如果頁面在瀏覽器,它能夠給出指令在保存到主屏幕時,如果它從主屏幕運行,它將加載實際頁面。

+0

感謝您的幫助。 是的我試過了你提到的元標記,但它仍在加載緩存。請注意,只有當Apple-mobile-web-app-capable標籤設置爲YES(但我需要這個,因爲希望網絡運行全屏)並且僅當我在Springboard上使用圖標時纔會發生這種情況。向URL添加一個隨機生成的標記可以解決這個問題,但這意味着重定向:所以在Safari Mobile中不再可以爲主頁添加書籤(在添加令牌get paremeter之後重定向...),它就是你看看我的意思... 最好 – Benoit 2009-12-02 16:54:41

+0

未經測試的版本(window.onload .....)的作品,太棒了!唯一不好的是你只需要不斷改變它的每一次發佈。我在頁面上使用了一個iframe,它嵌入了一個頁面,該頁面重定向到您想要顯示用戶的實際頁面。然後我有htaccess改變重定向頁面重定向到頁面randomJunk,它不會緩存htaccess所以它完美的作品。 – 2017-02-18 18:57:19

2

我知道你什麼時候包含一個清單文件,主頁面會自動緩存,但我不認爲它發生在使用... web-app-capable。您是否嘗試過使用緩存清單文件並在「網絡:」下列出您的網頁以明確將其從此緩存方法中排除?如果不是這樣的話,它必須是在那裏處理標題和元信息。