2012-06-14 62 views
0

我目前有一個網站,其中大約有20個單獨的頁面。所有頁面都有兩個版本...查看器尚未登錄的版本以及已登錄的版本。登錄版本可能與非登錄版本有很大不同... 我想知道是否有一種簡單的方法可以告訴瀏覽器在用戶登錄或註銷時「無效」我域的所有緩存頁面。已登錄用戶的單獨緩存

示例:未登錄的查看器訪問我網站上的許多頁面,導致瀏覽器緩存所有這些頁面。登錄後,我可以向用戶提供一個特定的頭文件,這會使瀏覽器在下次頁面加載時不使用緩存版本?這需要在登錄和註銷時進行。

任何提示或技巧將是超級有用,我是相當新的緩存... 謝謝:)

回答

1

不,你不能告訴用戶的瀏覽器未緩存頁面。您可以爲登錄用戶使用不同的URL而不是註銷用戶(添加一個查詢字符串就足夠了),或者不允許緩存他們中的任何一個。

1

理想情況下,您不會有單獨的頁面來表示用戶的登錄狀態。你的應用程序的屬性真的屬於模型而不是視圖。我想象一個登錄用戶永遠不會通過控制器看到未登錄的頁面,對吧?在這種情況下,我認爲無論哪個頁面被緩存,哪個不是。

以下是我想要做的事情發生的唯一方法,但它並不漂亮......如果用戶已登錄但請求未登錄的頁面,則會過期(例如$ q-> header(-expires =>'now'))並將登錄用戶發送到未登錄頁面。但是,如上所述,我懷疑你想這樣做。您可以引用具有js/ajax的.js文件,該文件檢測到這種情況,然後將用戶重定向回登錄頁面。

你可以看到這可能是一次考驗。我建議收緊你的應用程序設計,以便這個問題消失。希望這是有幫助的。祝你好運!