如果我点击一个名为servlet的链接。
是否有可能通过过滤器跟踪重复请求,以便我可以避免命中servlet?
答案 0 :(得分:3)
通常,您会在链接中添加某种“请求标识符”,例如一个GUID。你要么懒洋洋地跟踪你已经看过的标识符(并忽略那个集合中的任何内容),要么跟踪你生成但未看到的标识符(并忽略其中的任何不)设定)。
答案 1 :(得分:0)
你真的想为每个请求做这个吗?如果不这样做,请使用Jon的答案中的第一个解决方案,忽略那些没有guid的东西。
您可以在javascript中轻松完成此操作。单击任何链接后,防止再次单击该链接:(使用某些YUI):
YAHOO.util.Event.onDOMReady(function(){
function killIt(e){
YAHOO.util.Event.stopEvent(e);
}
var anchors = document.getElementsByTagName('a');
for(var i = 0; i < anchors.length; i++){
YAHOO.util.Event.addListener(anchors[i], 'click', function(e){
var el = YAHOO.util.Event.getTarget(e);
YAHOO.util.Event.removeListener(el, 'click'); // kill existing handle
YAHOO.util.Event.addListener(el, 'click', killIt); // kill any future clicks
});
}
});
您也可以在点击它时禁用锚点。有点不同。直接只在你想要单击启用的锚点上实现它。
答案 2 :(得分:0)
绝对没有理由使用庞大的Javascript框架来动态禁用链接。
<a href="/test" onmouseup="this.href='';" />
完成。
答案 3 :(得分:0)
我喜欢这个:
sbt dist