【javaWeb】写好ajax后成功运行一次,之后的请求一直挂起

挂起的原因猜测:

首先猜测是浏览器的问题,对于老IE7、8来说,有个功能是浏览器的自动缓存,即如果对相同的地址进行访问,则浏览器会直接去访问缓存,而不是重新访问目标地址。

解决方法:对访问的地址,附加一个当前的时间,保证每次访问的地址都是不同的(本质上是一个地址,但是带了一个时间的参数)

解决方法2:同时,在ajax中关闭缓存:cache:false,

 

然后发现问题还是没有解决。

决定设置一个timeout计时,并且在complete回调函数中设置超时提示,注意这个计时要比运行时间要久。

var ajaxTimeOut=
    $.ajax({
        type:"post",
        url:"/AddSR_ReadCourseName",
        async:true,
        cache:false,//缓存
        timeout:5000,
        dataType:"json",
        success:function(data)
        {
           alert("data.success 成功");
        },
        error:function ()
        {
           alert("数据传输失败!")
        },
        complete:function (XMLHttpRequest,status)
        {
            if(status=='timeout')
            {
                //如果请求超时,则弹出提示,并取消请求
                alert("请求超时");
                ajaxTimeOut.abort();
            }
        }
     });
  

这个时候因为tomcat有个关于数据连接池的报错,于是猜测是因为数据连接池的连接数设置少了,不够使用,改变后发现还是没有解决。

 

最后的解决方法及原因:

真正的原因很简单,就是因为上一个和数据库的链接没有关闭,从而使下一个请求被无期限挂起。

所以将所有用到的【ResultSet】、【CallableStatment】、【Connection】在使用后按顺序由近到早挨个关闭即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值