等待数据时显示加载程序


Display loader while waiting for data

我有一个简单的基于php的网站,它可以查询其他网站的一些数据。在处理数据时,我需要显示一些加载图像。

我试着跟随,但加载程序只显示了一会儿,一旦页面加载并淡出。

<script>
    $(window).load(function() {
        $("#loading").fadeOut("slow");
    });
</script>

html

<div id="loading"></div>

css

#loading {
    z-index: 100;
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0px;
    top: 0px;
    background: url('img/loading.gif') 50% 50% no-repeat;
}

为了更好地解释发生了什么以及我需要什么,假设页面的加载时间是10秒。现在页面加载10秒,不显示加载程序,10秒后显示加载程序将其淡出。我需要显示加载程序整整10秒,然后将其淡出。

发生这种情况是因为在PHP发送响应之前,页面甚至不会开始加载。在完成所有查询后,它只会在10秒后发送响应。你应该做的是有一个静态页面,它首先加载自己(快速),然后通过AJAX单独调用你的PHP脚本。您可以在调用期间显示加载程序。

您还可以尝试关闭PHP输出缓冲,并在执行任何慢速查询之前发送(回显)包含加载程序的页面的一部分。