2010-11-10 80 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