0

这是我的js的一部分:

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

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

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

4

3 回答 3

2

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

于 2012-08-13T03:39:25.140 回答
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');
}
于 2012-08-13T04:02:44.093 回答
0

Alegro 这可以帮助你的情况

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

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

于 2012-08-13T05:28:47.477 回答