要停止ajax请求,那你得关闭浏览器,不过既然发起请求,数据库查询操作肯定还在执行。

解决方案 »

  1.   

    终止 ajax 可调用 abort 方法不过你说的现象并不存在
      

  2.   


    我现在为ajax方法声明了个对象
    var req = $.ajax(.......)
    然后点击按钮的时候调用
    req.abort();
    ....href = "...";但页面始终不跳转,是我写法有问题,还是别的什么原因?
    怎么能直接跳转呢,ajax的处理结果啥的都可以忽略?
      

  3.   

    公司的代码不好全部粘贴,开发环境是VS, MVC4
    大致构架如下
    var getData = function(){
    $.ajax({
            type: 'PUT',
            url: url,
            cache: false,
            async: true,
            success: function (result) {
               //todo
            }
        });
    };var buttonClick = function(){
        window.location.href = "/Test/Test";
    };页面加载时调用getData(),该方法为异步方法,且很耗时,在此方法运行过程中,我想调用buttonClick()跳转到其他页面。
    问题大概是:现在的代码,跳转被调用后,不能立即跳转,一直在等待异步方法结束后,才能跳转或直接就留在该页面。如何才能在调用buttonClick()的时候直接进行跳转??
    待大神们帮忙
      

  4.   

    $.ajax({
            type: 'PUT',
            url: url,
            cache: false,
            async: true,
            success: function (result) {
               //todo
            }
        });
    };
    你查看下你请求url页面代码。
      

  5.   

    响应该异步操作的代码在controller里,大致如下
            public JsonResult GetInterfaces()
            {
                var total = 0;
                var infos = _manager.GetData(ref total);//此方法很耗时            var dic = new Dictionary<string, object>();
                dic["total"] = total;
                dic["data"] = infos;            return Json(dic, JsonRequestBehavior.AllowGet);
            }
    这块有问题么
      

  6.   

    $.ajax方法我认为本身不耗时,耗时的是等等服务端响应吧?你用HTTP查看器看看请求出去一会后有没有状态码返回,没有的请压根就是在等服务端,而且你还是async=true的我晕...
    另外.ajax方法建议在参数中定义error,一旦服务器执行出错就会调用error的了
      

  7.   

    标红的地方没有看懂,我这代码中的这个ajax去对多个网址的进行发请求,我遇到的最长耗时大概会有2分钟,一些异常等错误信息我底层已经处理了,理论上请求返回时走的都是success。我现在想要做的就是不让这个ajax方法阻塞ui的操作。是我代码设计的有问题?还是实现不了?
      

  8.   

    抱歉我忘记这个参数的值含义了,我知道它是控制是否异步执行的,记得它默认值是异步的(但不记得是true还是false),由于你显式定义了这个参数,我以为不要默认值了,就是非异步了,刚看一下手册才发现我记错了,默认就是true,所以你虽然显式地定义了,但并无问题;所以这里我想你也没必要显式定义,它默认就是true的回到正题,你说很慢,我想确认一下你看了网页调试器里的网络请求真的是很久才有响应状态码返回是吗?这样的话要么服务器处理数据慢,等待时间长,要么是线路不行但如果很快就返回了,却在处理过程中出现了很慢的问题,那是不是这个JS运算数据时有一个很慢的地方?你不如在那个地方打印一下时间看看时差
      

  9.   

    关于返回时间,代码是根据异常来判断网络地址不可达,也就是webrequest的异常状态。当网络好的时候,速度很快,网络不好的时候异常他本身就是底层在一定时间范围内未正常处理等抛出的,这个时间范围有的就是很长大概10秒左右吧我感觉,我现在有多个这样的操作,所以就会导致整体卡在这里1分到2分钟。
    时间戳那个问题,这个我很确定不是success里的问题,因为这里就是对UI赋值,没有其他的操作了。还是老问题,何解。
      

  10.   

    怎么封装,能举个例子么,我刚接触web开发,懂的不多。