我正在寻找一个网页,该网页通过来自嵌入式Web服务器的AJAX调用来采样数据。我将如何设置代码,以使一个请求不会与另一个请求重叠?
我应该提一下,我对JavaScript的了解很少,而且还有一个令人信服的理由,就是不要使用任何大于10千字节的大小的外部库。

最佳答案

您可能只考虑在上一个AJAX调用成功响应后重新启动AJAX请求的选项。

function autoUpdate()
{
    var ajaxConnection = new Ext.data.Connection();

    ajaxConnection.request(
    {
        method:         'GET',
        url:            '/web-service/',

        success: function(response)
        {
            // Add your logic here for a successful AJAX response.
            // ...
            // ...

            // Relaunch the autoUpdate() function in 5 seconds.
            setTimeout(autoUpdate, 5000);
        }
    }
}

此示例使用ExtJS,但是您可以非常容易地仅使用XMLHttpRequest

注意:如果必须具有精确的x秒间隔,则必须跟踪从AJAX请求启动到setTimeout()调用所耗时,然后从延迟中减去此时间跨度。否则,以上示例中的间隔时间将随网络延迟和处理Web服务逻辑的时间而变化。

关于javascript - 如何间隔不重叠地进行Ajax调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1930975/

10-11 22:34
查看更多