有没有办法实现页面刷新功能的回调,刷新后检查页面是否准备好,然后打印消息?我想在单击按钮后显示刷新页面并显示特定消息,但是,我需要留在我的代码中才能知道要显示什么消息。任何类似于下一个代码的东西都会很棒:
location.reload(function(){
alert ('done refreshing and document is ready');
});
有没有办法实现页面刷新功能的回调,刷新后检查页面是否准备好,然后打印消息?我想在单击按钮后显示刷新页面并显示特定消息,但是,我需要留在我的代码中才能知道要显示什么消息。任何类似于下一个代码的东西都会很棒:
location.reload(function(){
alert ('done refreshing and document is ready');
});
在页面重新加载时,您的 JS 应用程序会重新初始化并重新启动,因此您无法进行回调。
但是,您可以做的是在重新加载之前将哈希片段添加到 URL。
window.location = window.location.href + "#refresh";
window.location.reload();
然后,在页面加载时,检查哈希片段是否存在。如果是这样,您就会知道您刚刚刷新了页面。
如果你想使用 window.location.reload() 你必须使用浏览器的 sessionStorage。这是我的代码,我用它来保存数据。
window.onload = function () {
var msg = sessionStorage.getItem("nameShah");
if (msg == "Success") {
sessionStorage.setItem("nameShah", "");
alert("Saved Successfully");
}
}
$("#save").click(function () {
$.ajax({
url: "/AspNetUsers/SaveData",
type: "POST",
async: true,
data:{userName: "a"},
success: function (data) {
if (data.Msg == "Success") {
sessionStorage.setItem("nameShah", "Success");
window.location.reload();
}
}
});
});
服务器端:
public ActionResult SaveData(string userName)
{
return Json(new { Msg = "Success" }, JsonRequestBehavior.AllowGet);
}
要走的路是使用
$(document).ready(function(){
alert('done refreshing and document is ready');
});
但它并没有区分第一次加载和刷新。但是您可以使用会话来实现。例如,使用 PHP:
<?php
session_start();
$showJs = false;
if( !isset($_SESSION['loaded_before']) ) {
$showJs = true;
$_SESSION['loaded_before'] = true;
}
?>
...
<?php if($showjs) { ?>
<script type="text/javascript">
$(document).ready(function(){
alert('done refreshing and document is ready');
});
</script>
<?php } ?>
如果你真的想去 javascript 方面,你可以在重新加载之前使用 sessionStorage.varName ,然后你检查那个 var 并继续。