根据jQuery ajax请求的持续时间添加内容?

时间:2012-01-10 05:47:55

标签: jquery ajax

我在页面上有一个通用的$.ajax()请求及其相应的successerror参数,如下所示:

$.ajax({
    type: 'GET',
    url: getUrl,
    async: true,
    success: function(data) {
        $("#page").html(data);
        if (slide) {
            $("#page").slideDown(500);
        }
    },
    error: function () {
        var data = '<span id="heading">Error</span>'
                  +'<p>The page you requested could not be loaded.</p>';
        $("#page").html(data);
        if (slide) {
            $("#page").slideDown(500);
        }
    } 
}); 

我想知道的是,如果请求花了很长时间(比方说,5秒),我该如何显示一些内容告诉用户该请求仍处于活动状态?由于网络服务器速度缓慢或者请求非常繁重,可能需要一些时间。

就我而言,我会在页面上显示一个预先加载的“loading.gif”类型的图像。在提出请求后插入它的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

通常,您应该在开头显示它。这很容易!请继续阅读:jQuery: AJAX Preloader

答案 1 :(得分:0)

您可以使用setTimeout和clearTimeout:

在提出请求之前:

waitId = setTimeout(showWaitIcon, 5000);

成功与错误:

hideWaitIcon();
clearTimeout(waitId);