如何处理ajax会形成多个请求

And*_*ius 3 c# asp.net-mvc asynchronous asp.net-ajax ajaxform

假设我的导航中有两个链接,它们Ajax.BeginForm与mvc4中不显眼的javascript一起使用.第一个请求向数据库发出一个请求,第二个请求发出两个请求,因此需要两倍的时间.假设每个请求需要一秒钟.现在,用户点击第二个链接,然后立即点击第一个链接.按此顺序发生的方案:

  1. 用户点击链接2
  2. 用户点击链接1
  3. 页面已加载链接1
  4. 页面已加载链接2

假设用户这样做是因为他在点击后立即意识到了他的错误.现在,而不是预期的第1页,他看到它只是一瞬间,然后再次,他看到一个页面#2,即使他不想完全达到它.

首先,这是一个问题吗?如果是,是否有关于如何以最恰当的方式解决它的例子?或许我只是在田野里追风,应该忘记它?

Mak*_*kov 7

当您创建一个新的AJAX调用时,您应该总是中止之前的AJAX调用.它将帮助您的服务器并为用户提供所需的结果.

var xhr;

function makeRequest() {
    if (xhr) 
        xhr.abort();

    xhr = $.ajax(...);
}
Run Code Online (Sandbox Code Playgroud)