我有一个带有 onClick 处理程序的自定义小部件。问题是当用户双击元素时,第二次单击也会触发重复调用。试图通过使用 onDoubleClick 处理程序来避免它,在双击时,调用会进入此处理程序,但只有在执行 onClick 后才会执行。所以仍然会发生重复通话。
已经在 Javascript 中看到了计时器的解决方案,以避免重复请求。是否可以在 GWT 中使用类似的东西?
或者是否有其他更好的方法可以避免重复请求双击 GWT 中的元素?
答案 0 :(得分:1)
只要小部件正在执行操作,就用“加载微调器动画图像”替换小部件。准备好后,用小部件替换它。
由于图像不包含点击处理程序,因此不会再接收第二次点击。
答案 1 :(得分:1)
我通过以毫秒为单位获取当前时间来防止双击,并在上次处理此方法时进行检查。如果第一次和第二次点击之间的时间不到一秒,则第二次点击就会被阻止。
long lastClick = 0;
if (lastClick < System.currentTimeMillis() - 1000)
{
// do logic
}
lastClick = System.currentTimeMillis();
答案 2 :(得分:0)
How to prevent DoubleSubmit in a GWT application?
上述链接中给出的答案有助于处理双击按钮。
但如果自定义小部件和 .setEnabled(false)不起作用,我们可以使用静态布尔变量,条件检查如果 false 然后允许并在点击一次时将其设置为 true ,则在成功时将其设置回 false 。如果双击,布尔值将为 true ,if条件将失败。