2012-08-13 75 views
0

我正在使用php會話管理我的類別變量。當用戶點擊瀏覽器後退按鈕(並且頁面未刷新)時,設置新會話變量?

如果用戶點擊這樣的:

  1. 索引
  2. 類別(類別設置會話變量)
  3. 產物(產物取出該變量)

之後,如果用戶,而不是按主頁鏈接(刷新索引頁),按瀏覽器的後退按鈕發生這種情況:

  1. 用戶剛剛到達索引頁面,其中設置了前面的類別變量;
  2. 如果他直接從索引中點擊產品,則會顯示舊類別。

基本上, 當用戶點擊瀏覽器後退按鈕(並且頁面未刷新)時,有沒有辦法設置新的會話變量?

回答

1

而這正是爲什麼你應該保持請求自包含。所有你需要建立你的導航的信息應該以某種方式出現在請求本身中,也就是說在URL中。您可以從用戶正在查看的產品或已經包含在請求中的某些其他信息中推斷出類別,或者您應該在查詢參數(...?cat=42)中傳輸選定的類別。通過這種方式,每個請求都表達了其內部的所有必要信息,並且不會破壞別處保存的任何單獨的狀態。

0

如果點擊一個產品,那麼當前類別應該根據產品所在的類別進行設置。忽略舊的存儲類別並改用產品。

用戶單擊後退按鈕在底層http請求方面沒有特別的或獨特的。瀏覽器將使用它的緩存,甚至不會向Web服務器發出另一個請求,也不會提出請求,就像點擊一個鏈接重新獲取前一頁一樣。

你可以做一些花哨的東西與JavaScript來檢測它,但我非常懷疑這將是一個優雅或最好的解決方案。

相關問題