javascript会在页面上显示元素,因为它们会被追加

时间:2014-01-02 14:13:43

标签: javascript

我正在尝试在屏幕上显示元素,同时异步地在后台加载新数据。我的代码工作正常,但是在代码终止之前,不会显示添加到屏幕的元素。这是一个例子:

var btn=document.createElement("button");
document.body.appendChild(btn);
sleep(1000);
var btn=document.createElement("button");
document.body.appendChild(btn);

此代码的输出是,它等待1秒并同时添加两个按钮。但是我希望它添加第一个按钮,等待1秒并添加另一个按钮。

有什么想法吗? 感谢

编辑: sleep()函数不是这样,它只是帮我解释一下这个问题。上面的代码不是我在我的项目中使用的代码。 在我的项目中,我正在尝试在加载新内容时在屏幕上打印一些Feed。

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

3 个答案:

答案 0 :(得分:2)

使用setTimeout() - 我不相信sleep()是JavaScript中的原生函数。

var btn=document.createElement("button");
document.body.appendChild(btn);
setTimeout(function(){
    var btn=document.createElement("button");
    document.body.appendChild(btn);
}, 1000)

JSFiddle

答案 1 :(得分:2)

试试这个:

var btn=document.createElement("button");
document.body.appendChild(btn);

setTimeout(function(){
    btn=document.createElement("button");
    document.body.appendChild(btn);
},1000);

答案 2 :(得分:2)

嗯,我认为“sleep()”是一种JAVA而不是javascript方法......但是:

var btn=document.createElement("button");
document.body.appendChild(btn);
setTimeout(function(){
  var btn=document.createElement("button");
  document.body.appendChild(btn);  
},1000);

一些文件: http://www.w3schools.com/jsref/met_win_settimeout.asp

你的sleep()函数停止所有JS脚本并在睡眠延迟后解释所有2 document.body.appendChild(btn); ...