2012-11-04 29 views
2

我試圖研究這個問題,但沒有找到如何處理這個問題的運氣。任何人都可以指出我正確的方向嗎?關於使用後退按鈕的網絡導航

考慮我有三個腳本可以使用:homepage.php,list.php,form.php。

概念上,從主頁上,用戶將表明他們想要查看列表。用戶然後可以點擊列表中的元素,調出一個表格,允許他們更改列表項目的屬性。用戶提交表單並返回到列表,以便他們可以繼續查看列表並根據需要更改列表項目。

現在問題是,當用戶點擊這一點時,我希望他們返回主頁,因爲他們當前正在查看列表,並且在Web應用程序的上下文中,此時正在倒退應該將用戶返回到主頁。相反,如果他們回來了,他們會回到表格(PRG被使用,所以沒有雙重帖子的問題),然後回到列表,然後回到主頁。

目前發生的事情:

  • openbrowser - >獲取homepage.php
  • homepage.php - > GET list.php的
  • list.php的 - > GET form.php的
  • form.php - > PRG(POST到form.php,重定向回到list.php)
  • list.php - >用戶點擊返回,GET form.php
  • form.php的 - >用戶打回,GET list.php的
  • list.php的 - >用戶打回,GET homepage.php

我想什麼事情發生,但不知道如何:

  • openbrowser - >獲取homepage.php
  • homepage.php - > GET list.php的
  • list.php的 - > GET form.php的
  • form.php的 - > PRG(PO ST到form.php的,重定向到list.php的)
  • list.php的 - >用戶打回,GET homepage.php
+2

你爲什麼不使用JS/AJAX的表單,然後瀏覽器的歷史將是一個非問題... – jtheman

+0

請記住,使用不會有這樣的行爲,他/她可能會感到困惑 – GameScripting

+0

您可以使用HTML5歷史修改API來實現此行爲 – yfrancis

回答

0
header("Expires: Sun, 19 Nov 1978 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", FALSE); 

您可以在這些網頁用這個頭在你不不希望瀏覽器緩存,以便您可以控制用戶點擊後退按鈕的時間。

你的情況,你可以在form.php的這頭,你可以使用會話或HTTP引用或任何從那裏的頁面來跟蹤和重定向相應