V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wubo19842008
V2EX  ›  程序员

jquery 的 ajax 同步调用方式的超时是如何指定的?

  •  
  •   wubo19842008 · 2014-09-24 10:40:31 +08:00 · 9686 次点击
    这是一个创建于 3711 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在调用jquery的ajax功能时候,如果设置async 为true则进行同步请求方式,但是这样jquery设置的timeout就失效了,而且同步下这个超时应该是10s,但是这个10s是什么地方指定的?
    stackoverflow上有一个解释了同步ajax是不支持timeout设定的:
    http://stackoverflow.com/questions/7919881/why-dont-synchronous-ajax-calls-in-jquery-support-timeout
    但是这个10s是哪里设置的?
    第 1 条附言  ·  2014-09-24 11:28:21 +08:00
    测了下桌面版的chrome和ff,都可以在同步情况下等待10s然后返回,移动版浏览器也不太一样,ios版本的Safari会在10s内返回,但是在android的微信浏览器里是可以超过10s的等待
    3 条回复    2014-09-24 17:49:45 +08:00
    klam
        1
    klam  
       2014-09-24 10:52:14 +08:00
    没看懂...

    `async` 的意思是异步,设置为true即是异步请求ajax(默认就是true),如果你想通过同步方式,设置为false。

    timeout是有接口的,和success/error一样,传一个数值进去就可以了:{timeout: 10000}
    wubo19842008
        2
    wubo19842008  
    OP
       2014-09-24 11:06:53 +08:00
    @klam
    async:true的情况下,有些浏览器是不支持的,我测试了ios下的safari,即使设置了timeout,比如设置了30*1000,那么还是会在10s的时候返回超时: dom exception 23
    klam
        3
    klam  
       2014-09-24 17:49:45 +08:00
    @wubo19842008
    没做过移动开发
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3056 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:55 · PVG 21:55 · LAX 05:55 · JFK 08:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.