单击页面上的链接时的竞争条件

时间:2012-11-15 20:28:56

标签: gwt web-applications

在我的网络应用中,左侧有按钮。

右侧显示基于按下左手按钮的显示。

有时,用户会执行以下操作:

 1. Press button 1
 2. wait 1-3 seconds
 3. Get reasonably frustrated and click button 2
 4. button 1's display shows up instead

如果我理解正确,那么按钮1的服务器到客户端请求将在按钮2之前提供。

我认为其他网络开发人员遇到过这个问题。应该如何处理?

谢谢, 凯文。

1 个答案:

答案 0 :(得分:0)

点击按钮会导致AJAX请求吗?如果是这样,请在获取资源时禁用按钮并显示加载图像,或者在发出另一个请求之前单击按钮时取消任何现有的AJAX请求。例如:

  var request;
  $('#button1').click(function(event) {
    if (request && typeof request.abort == 'function') request.abort()
    request = $.post(...)
  });

该请求几乎肯定会继续服务器端,具体取决于很多因素,但客户端将不再运行将执行以显示请求结果的函数。