如何使页面保持虚假加载状态

时间:2013-02-28 17:59:32

标签: javascript html browser loading

如何通过javascript将页面保持在假加载状态?

我有一个页面,我设置为$('body')。hide()直到它完成加载AJAX请求,之后页面设置为$('body')。show()。在此期间(大约2秒),页面保持空白,浏览器图标停止加载,然后显示内容或重定向到另一个页面(根据返回的AJAX变量)。

有什么方法可以让浏览器保持加载状态,即使它没有加载任何东西?只是看起来它还在加载东西。

我已经尝试过创建类似的东西:

while(page_loading())
    var l = 1;

然后浏览器崩溃了。我怎么能强迫这个“假”状态?

编辑:

对不起,我之前忘了提到:我想像往常一样保持页面空白而没有任何加载gif或类似的东西,但强制浏览器处于加载状态。当浏览器加载页面时,会出现一个加载图标,该图标一直显示在浏览器选项卡上或状态栏上的消息中。我知道这些特定的状态不能直接用javascript进行更改所以我认为有一种方法可以使用一些无限循环的HTML请求或类似的东西来保持浏览器处于这种加载状态。如果我设置“cursor:wait”,浏览器选项卡仍然会变为“完成状态”。

2 个答案:

答案 0 :(得分:1)

处理此问题的标准方法是创建一个出现和消失的加载gif。您可以create your own gif下载它。然后当页面开始加载时:$("#mygif").show();完成后,$("#mygif").hide();

答案 1 :(得分:1)

使用加载动画作为 yourdeveloperfriend 建议可能是要走的路。但是,可以使用cursor: wait近似加载页面:

html,
body {
    cursor: wait;
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    background: #555;
    color: white;
    text-align: center;
}

setTimeout(function unwait() {
    document.body.style.cursor = 'default';
    document.body.innerHTML = 'Loaded.';
}, 3000);

http://jsfiddle.net/8cxA7/

显然,这只是一个演示。在我看来,标签图标应该保持不变,因为有些浏览器会缓存他们第一次看到的内容并保留在图标上以便亲爱的生活。