为jQuery的$.ajax设置超时时间
2017-05-27 17:19
246 查看
jQuery的ajax模块封装了非常强大的功能,有时候我们在发送一个ajax请求的时候希望能有一个超时的时间,想让程序在一段时间请求不到数据时做出一些反馈。幸运的是jQuery为我们提供了这样的参数:timeout。今天试了一下,做个记录。
首先在试验之前,有一个一直搞不明白的东西,那就是默认的超时时间是多少?这个配置在到底在什么地方设置。jQuery中?还是apache中?PHP中?
经过一番搜索,暂得到如下结论:
①jQuery没有默认的超时时间,只可以通过参数来配置;
②apache2的默认超时时间是300秒,但是我在httpd.conf中设置Timeout 10,压根没起到作用,不明白是怎么回事
③php.ini中,只找到一个max_execution_time来配置脚本最长执行时间,貌似也没什么关系
智商捉急。。。哪位高手知道,一定告诉一下我啊~~
下面来看jQuery中的timeout参数,值为Number类型,单位为毫秒。为了在超时的时候执行我们定义好的处理函数,可以把它放在error参数中,如下代码:
s.php中的内容为sleep(100)。这样在3秒后会输出error:timeout,textStatus即为错误的内容。这个还是很用的,如果你的error函数中还要进行其他处理,为了不与超时混在一起,可以这么写:
还可以把函数写在complete中,因为无论success还是error,complete函数都会执行。
这下就可以轻松为超时指定动作了。不过在手工之前呢我还要小小的辟谣一下,因为在网上搜索文章的时候,有人如此描述timeout参数:会覆盖掉全局的设置。看到这句我顿时菊花一紧,难道我在这里设一次,页面上再用$.ajax的时候都会在3秒后超时?跑去官网一看文档,原句子是这么写的:“This will override any global timeout set with$.ajaxSetup().”,原来是会覆盖掉$.ajaxSetup()中的设置,如果我压根就没用$.ajaxSetup()这个函数,便什么事都没有。
转自:http://www.cnblogs.com/lvdabao/p/3383240.html
首先在试验之前,有一个一直搞不明白的东西,那就是默认的超时时间是多少?这个配置在到底在什么地方设置。jQuery中?还是apache中?PHP中?
经过一番搜索,暂得到如下结论:
①jQuery没有默认的超时时间,只可以通过参数来配置;
②apache2的默认超时时间是300秒,但是我在httpd.conf中设置Timeout 10,压根没起到作用,不明白是怎么回事
③php.ini中,只找到一个max_execution_time来配置脚本最长执行时间,貌似也没什么关系
智商捉急。。。哪位高手知道,一定告诉一下我啊~~
下面来看jQuery中的timeout参数,值为Number类型,单位为毫秒。为了在超时的时候执行我们定义好的处理函数,可以把它放在error参数中,如下代码:
$.ajax({ url : 's.php', timeout : 3000, error : function(xhr,textStatus){ console.log('error:'+textStatus); }, });
s.php中的内容为sleep(100)。这样在3秒后会输出error:timeout,textStatus即为错误的内容。这个还是很用的,如果你的error函数中还要进行其他处理,为了不与超时混在一起,可以这么写:
error : function(xhr,textStatus){ if(textStatus=='timeout'){ //处理超时的逻辑 } else{ //其他错误的逻辑 } }
还可以把函数写在complete中,因为无论success还是error,complete函数都会执行。
这下就可以轻松为超时指定动作了。不过在手工之前呢我还要小小的辟谣一下,因为在网上搜索文章的时候,有人如此描述timeout参数:会覆盖掉全局的设置。看到这句我顿时菊花一紧,难道我在这里设一次,页面上再用$.ajax的时候都会在3秒后超时?跑去官网一看文档,原句子是这么写的:“This will override any global timeout set with$.ajaxSetup().”,原来是会覆盖掉$.ajaxSetup()中的设置,如果我压根就没用$.ajaxSetup()这个函数,便什么事都没有。
转自:http://www.cnblogs.com/lvdabao/p/3383240.html
相关文章推荐
- 为jQuery的$.ajax设置超时时间
- jquery ajax timeout含义是设置请求超时时间,不涉及服务器响应时间
- jQuery基于$.ajax设置移动端click超时处理方法
- Javascript (Ajax)给XMLHttpRequest设置超时时间
- 在jquery中为ajax()设置超时
- ExtJS ajax request 设置超时时间
- 为jquery的ajax请求添加超时timeout时间的操作方法
- 设置revc()的等待超时时间
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- session超时时间设置方法
- net-snmp 一些系统mib节点值的存储位置 和 超时时间的设置
- 设置MySQL 超时等待时间
- JSP J2EE WebLogic设置session超时时间(转)
- 设置web请求超时时间
- WebLogic如何设置session超时时间
- IE弹出"是否停止运行此脚本"脚本超时时间设置
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- 给XMLHttpRequest设置超时时间
- 为ServerXMLHTTP对象的HTTP请求设置超时时间