0

我正在尝试解决一个问题。基本上我需要在长时间运行的 Javascript 代码上显示“加载消息”,并在此代码结束时将其隐藏,例如:

显示消息();

执行我的代码();

隐藏消息();

但是,我在 Internet Explorer 上运行时遇到了问题,现在看起来页面在所有脚本代码完成之前都被冻结了,这对用户来说可能很烦人。我尝试了一种使用 setTimeout() 的方法,但这不起作用,你们有没有解决这个问题?我会很感激你的帮助。

提前致谢。

4

1 回答 1

0

你可以这样做:

function showMessage(){
    /* show message */;
    window.delay=setTimeout(executeMyCode,100); // Give some time to browser to render message
    return;
}

function executeMyCode(){
    clearTimeout(window.delay);
    /* execute long running code */
    /* hide message */
    return;
}

虽然在执行长代码时浏览器仍然会被冻结,但用户现在可以看到该消息。

于 2012-07-31T14:55:04.213 回答