Javascript代码以相反的顺序执行?

时间:2012-08-13 03:31:22

标签: javascript jquery

这是我的js的一部分:

window.location.reload();
$("#status").html('Try');

我希望页面重新加载,然后将“try”写入div“#status”。但相反的情况发生:div“#status”被写入一小段时间,然后它消失,然后重新加载页面,其中“#status”再次为空。

如何让它们以正确的顺序执行?

3 个答案:

答案 0 :(得分:2)

如果这是你执行的方法,你可能会看到html更改的效果,因为页面确实及时开始重新加载。但是这个代码正在以正确的顺序执行。只是那个location.reload需要更多的时间来执行,然后只需更改元素的innerHtml。

答案 1 :(得分:2)

window.location.reload();将事件发送到浏览器。因此从技术上讲,事件已经执行,并且会移动到下一行。

上面你的评论似乎暗示你想要的更多是一次加载,然后向div添加一些东西。我可能会使用URL中的哈希来读取这个......

var pageHash = window.location.hash;
if(pageHash.indexOf("firstLoad") == -1) {
    //The page hasn't been loaded, so reload
    window.location = window.location.origin + window.location.pathname + "#firstLoad";
} else {
    $("#status").html('Try');
}

答案 2 :(得分:0)

Alegro这对你的情况有帮助

setTimeout(function(){window.location.reload();},5000); 
$("#status").html('Try');

因此消息将被显示,并且在5秒后页面将被重新加载。