如何让元素的innerHTML立即更新?

时间:2012-11-21 00:24:59

标签: javascript buffer

我有一个带有文本框的网页。在框中输入.js文件名并单击执行按钮时,将通过AJAX和eval()'d加载给定的文件。

此页面上还有一个空<div>用作输出。如果加载的文件需要在屏幕上打印某些内容,则会将其添加到div的{​​{1}}。

当向innerHTML添加文本时,它通常不会在Javascript完成之前在屏幕上呈现,这很好,除了有时Javascript文件执行繁重的计算可能会占用更多的事实到一分钟完成,能够在执行时看到输出会很有用。

有没有办法“刷新”文件?

2 个答案:

答案 0 :(得分:1)

我会尝试使用setTimeout来解决这个问题。

function performInitialHtmlRender() {
    /// This sets the innerHtml that you want the user to see
    /// While you are performing the calculations
}

function performExpensiveCalculationsAndRender() {
    // This is the really expensive function that
    // you want to run once the browser has rendered 
    // the initial HTML
}

performInitialHtmlRender();
setTimeout(performExpensiveCalculationsAndRender(), 0);

答案 1 :(得分:0)

您可以使用setTimeout:

div.innerHTML = html;
setTimeout( function(){
   doHeavyCalculations();
}, 35);

http://jsfiddle.net/YKEKK/