我有一个链接
<a href="new link">click me</a>
当用户点击“点击我”链接时,新链接页面将被重定向并在服务器端执行某些操作。问题是,如果用户单击浏览器上的后退按钮,它将返回旧链接。如果用户单击“单击我”链接,将打开新的链接页面,服务器端的处理将再次执行。如何防止这种情况?即使用户返回旧页面,也无法再点击新链接
答案 0 :(得分:2)
在链接上生成唯一ID,例如therequest.do?id=1234
,并将1234
记录到数据库,以便无法再次运行请求。
mypage.do
,服务器生成标识1234
并以未处理的方式登录数据库。therequest.do?id=1234
1234
标记为已处理。1234
已被处理,因此在屏幕上生成错误消息:request has already been processed
。答案 1 :(得分:0)
您可以尝试创建一个新窗口,但这会阻止最终用户返回,但是您需要创建访问状态以使该按钮在CSS中消失。
<a href="new link" target="_blank">click me</a>
除此之外,在纯HTML中,没有办法阻止用户点击标准链接上的后退按钮。
答案 2 :(得分:0)
您可以使用Javascript执行此操作。这是示例代码,显示了一种方法:
<html>
<body>
<a href="#" onclick="f();">click me</a>
<script>
var first = true;
function f() {
if ( first ) {
first = false;
window.open('http://www.google.com');
}
}
</script>
</body>
</html>
或者,您可以删除全局状态变量,只需在单击链接后禁用或隐藏链接。