2016-04-11 72 views
0

我正在製作一個Web應用程序,允許用戶在離線狀態下登錄,但前提是他們已經在線登錄。我遇到的問題是,爲了讓用戶能夠脫機登錄,我需要緩存我的登錄頁面。如果我這樣做了,那麼在用戶登錄之前會更新緩存,並且由於我的服務器將未經身份驗證的用戶重定向到登錄頁面,所有緩存的頁面最終都會成爲登錄頁面的副本。防止特定的緩存頁面觸發應用程序緩存更新

我希望當我看到另一篇帖子時,會話ID作爲參數傳遞給清單url,但在我的情況下,它沒有幫助,因爲它仍然在登錄前下載緩存。考慮到我的用戶可能在線時打開登錄頁面,但只有在離線後才登錄。

我需要一種方法來停止特定頁面(如我的登錄頁面)中的緩存更新,而無需將我的登錄頁面從我的清單中移出。我已經嘗試了下面的代碼,但所有的頁面無論如何都得到下載:

window.applicationCache.addEventListener("checking",function(e){ 
    e.stopPropagation(); 
    e.preventDefault(); 
}, true); 

回答

0

可能已經找到了一種方法來做我想做的。如果任何人有類似的問題,這是我的解決方案。

  • 請創建一個login_offline.html或捕獲請求服務器端並將*/login_offline.html重定向到login.html。
  • 將*/login.html替換爲清單中的*/login_offline.html,並刪除*/login.html中的清單聲明。 。在僅可登錄後頁面的每個離開艙單申報
  • 添加回退部分清單,如果不存在的話,並在它把:

    FALLBACK: signin.htm登入,offline.htm