超时的JQuery问题

时间:2009-01-27 12:13:27

标签: jquery timeout

我发现使用JQuery超时有问题,我有一个带脚本的页面,它设置了超时并等待来自服务器的响应。问题是当超时必须执行时,简而言之,它是“无动作”。我认为该脚本不会中断与服务器的连接并等待服务器响应,因为在服务器端连接开启10秒(但超时设置为5秒)。 当服务器在不同的域名然后客户端工作时,我看到这个问题,而当服务器和客户端在本地工作时,这个问题没有。

您有没有想法,因为发生了此错误或如何关闭脚本连接?

// client 

$.ajax({

    type: "GET",

    url: "some.php",

    data: "name=John&location=Boston",

    timeout: 5000,

    success: function(msg){

        alert( "Data Saved: " + msg );

    },
    error: function(request, errorType, errorThrown){

        alert("opppsssss .... ");
    }
});

和服务器代码:

//some.php

< ?

//simulate long task

sleep(10); //sleep 10 seconds

//send response

echo "some test data";

? >

最好的问候

多梅尼科

1 个答案:

答案 0 :(得分:3)

你的外表是从前到后做的。您已将超时设置为5000毫秒(5秒),因此如果服务器端代码响应时间超过5秒,则会超时。你正在睡觉(10);它会休眠10秒,这是指定超时的两倍。解决这个问题的方法是执行以下操作:

// client 
$.ajax({
    type: "GET",
    url: "some.php",
    data: "name=John&location=Boston",
    timeout: 10000,

    success: function(msg){
        alert( "Data Saved: " + msg );
    },
    error: function(request, errorType, errorThrown){
        alert("opppsssss .... ");
    }
});

服务器代码:

//some.php
< ?
    //simulate long task
    sleep(5); // sleep 5 seconds!
    //send response
    echo "some test data";
? >

希望这有帮助。