所以,如果你有一个喜欢的按钮,那么用户可以继续点击,最喜欢的东西将继续关闭和打开等等。
但是,似乎某种竞争条件是由于速度点击而发生的,事情开始变得有趣,一旦我刷新页面它们就会恢复正常。问题似乎更多的是在UI端而不是后端,但我无法调试,因为这给程序时间和竞争条件消失了。
我有SET NOCOUNT ON;在我的SQL过程中,万一你想知道。
因此,一旦用户点击“收藏”按钮,我应该采取哪些步骤来确保他们不会再次点击它,直到我们收到Ajax请求的回复?
我正在联系数据库,以便每次做或取消喜欢...是不是很糟糕? (这与我原来的问题没有关系)
答案 0 :(得分:2)
的伪代码:
anchors = [DOMElement, DOMElement];
anchors.each(function() {
var clickable = true;
el.onclick = function() {
if ( clickable ) {
clickable = false;
ajaxStuff({
done: function(){
clickable = true;
}
})
}
});
基本上,在每个元素的上下文中调用一个函数,设置一个可点击的变量,如果clickable为true,则单击执行,然后将其设置为false,并将其设置回ajax完成。