2010-11-10 82 views
0

我正在編寫基於cgi的Web應用程序。在應用程序的一部分中,您可以維護一個項目列表,您可以執行的其中一項操作是將項目上移一個點。當目標URL與當前頁面相同時,瀏覽器將不加載頁面

的鏈接,移動的項目多達基本上是這樣的:如果是我要移動起來就行了兩個點的項目

foo.cgi?action=moveItemUp&itemID=12345 

我的問題就出現了。我可以將它向上移動一點,但是當我第二次單擊「向上移動」鏈接時,瀏覽器將不會加載新頁面。完全沒有任何反應。

我認爲這是因爲瀏覽器發現新頁面的URL與當前頁面相同,因此認爲沒有什麼可做的事情。

我可以通過將鏈接更改爲表單提交按鈕來解決此問題,但我想知道是否有更簡單的解決方案。

+0

我最終將鏈接轉換爲表單提交按鈕,看起來有點醜陋,但A)它的工作,和B)它符合HTTP的期望GET請求不應該更改服務器上的數據。 – 2011-06-16 21:22:42

回答

0

只是通知該頁面不能被緩存。

<html> 
    <head> 
     <meta HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
     <meta HTTP-EQUIV="Expires" CONTENT="-1"> 
    </head> 
    <body> 
     (Content) 
    </body> 
</html> 
1

你可以有腳本send the correct headers telling the browser not to cache the page under any circumstances,或隨機值添加到URL:

foo.cgi?action=moveItemUp&itemID=12345&random=23934253094 

頭的辦法是清潔的。

+0

我試着添加元標題,但沒有明顯的效果。當我第二次點擊「向上移動」鏈接時,根本沒有任何反應。瀏覽器不發送請求。 – 2010-11-10 20:40:24

+0

@John ahhh,當然,現在我明白了 - 緩存在這裏根本就不是問題,瀏覽器只是假定它已經在正確的頁面上。抱歉。是的,在這種情況下,一個隨機的URL是唯一的出路。 – 2010-11-10 20:42:47