1

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

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

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

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

while(page_loading())
    var l = 1;

但是随后浏览器崩溃了。我怎样才能强制这种“假”状态?

编辑:

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

4

2 回答 2

1

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

于 2013-02-28T18:03:02.093 回答
1

使用你的开发者朋友建议的加载动画可能是要走的路。但是,您可以使用以下方法估算页面加载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/

显然,这只是一个演示。在我看来,标签图标应该被单独留下,因为一些浏览器会缓存他们第一次看到的内容,并为宝贵的生命而保留该图标。

于 2013-02-28T18:06:17.190 回答