在ajax成功调用中,我正在执行location.Reload()。页面重新加载后,我想显示一条消息“数据已成功上传”。但是我的页面被重新加载,消息被丢弃。
var data = {
"strSelectedIds": selectedArray.join(',')
};
var countofProcessedRecords = selectedArray.length;
$("#divLoader").removeClass("display-none");
$.ajax({
url: UrlSettings.ProcessSubscriptioData,
type: 'POST',
contentType: "application/json; charset=utf-8",
dataType: "html",
data: JSON.stringify(data),
success: function (response) {
location.reload();
$("#msg").append(
'<div class="alert alert-success hideit alertSuc">' + countofProcessedRecords + 'subscriptions uploaded successfully.</div >')
setTimeout(function () {
$("#divLoader").addClass("display-none");
}, 500);
},
error: function (e) {
$("#divLoader").addClass("display-none");
}
});
有人可以帮我吗?
先谢谢您。
答案 0 :(得分:1)
我认为你应该使用 load() 而不是 location.reload() 因为 load() 将在 div 中显示您想要的内容,而 location.reload 将刷新整个页面 这里有一些 load() 的例子: 在 HTML 代码中:
<div id="display-content"></div>
在 Jquery 中你需要这样的东西:
$("#display-content").load().fadeIn("fast");
你也可以在 load() 中加载文件,例如:
var id = "<?php echo $_GET['id'];?>";
$('#display-content').load('view.php?id='+id).fadeIn("slow");
答案 1 :(得分:0)
要在重新加载后生存下来,您需要使用window.localStorage
之类的持久性存储。
然后,您将一个true
值保存到存储中,并在重新加载后检查该值是否为true
。
因此,在成功执行Ajax调用之后,但在重新加载之前,请保存以下值:
localStorage.ajaxSuccess = 'true';
然后在重新加载之后,您可以检查该值是否为true,并显示消息:
if (localStorage.ajaxSuccess === 'true') {
// Display the message here
}
但是,此方法取决于浏览器的兼容性。并且某些用户可以禁用localStorage或以隐身模式使用Safari。
因此,另一种方法是使用参数而不是page.reload()
加载URL:
www.example.com/uploadPage/?ajaxSuccess
然后在重新加载后检查URL是否包含ajaxSuccess
字符串。
答案 2 :(得分:0)
使用SessionStorage进行跟踪:
TRAIN_DATA = [
("Who is Shaka Khan?", {"entities": [(7, 17, "PERSON")]}),
("I like London and Berlin.", {"entities": [(7, 13, "LOC"), (18, 24, "LOC")]}),
]
答案 3 :(得分:0)
在您重新加载页面之前可能会有一些延迟。像这样:
$.ajax({
type: 'POST',
url: 'url',
data: { id: id },
success: function() {
$('#alertMessage').html('<p>success message</p>');
setTimeout(function(){
location.reload();
}, 800);
}
});