Javascript 如何在ajax成功和location.Reload()之后在div中显示消息
在ajax成功调用中,我正在执行location.Reload()。重新加载页面后,我想显示一条消息“数据上传成功”。但我的页面被重新加载,消息被丢弃Javascript 如何在ajax成功和location.Reload()之后在div中显示消息,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,在ajax成功调用中,我正在执行location.Reload()。重新加载页面后,我想显示一条消息“数据上传成功”。但我的页面被重新加载,消息被丢弃 var data = { "strSelectedIds": selectedArray.join(',') }; var countofProcessedRecords = selectedArray.length; $("#divLoader").removeClass("display-none"); $.ajax({ ur
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");
}
});
var数据={
“strselectedDS”:selectedArray.join(','))
};
var countofProcessedRecords=selectedArray.length;
$(“#divLoader”).removeClass(“显示无”);
$.ajax({
url:UrlSettings.ProcessSubscriptionData,
键入:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“html”,
数据:JSON.stringify(数据),
成功:功能(响应){
location.reload();
$(“#msg”)。追加(
''+进程记录计数+'订阅已成功上载。“)
setTimeout(函数(){
$(“#divLoader”).addClass(“显示无”);
}, 500);
},
错误:函数(e){
$(“#divLoader”).addClass(“显示无”);
}
});
谁能帮我一下吗
提前感谢您。要在重新加载后生存,您需要使用持久性存储,如
window.localStorage
。
然后将true
值保存到存储器中,重新加载后,检查该值是否为true
因此,在成功调用Ajax之后,但在重新加载之前,请保存值:
localStorage.ajaxSuccess='true'代码>
重新加载后,您可以立即检查该值是否为真,并显示以下消息:
if (localStorage.ajaxSuccess === 'true') {
// Display the message here
}
但是,此方法取决于浏览器兼容性。有些用户可以禁用localStorage,或者在匿名模式下使用Safari。
因此,另一种方法是使用参数加载URL,而不是page.reload()
:
www.example.com/uploadPage/?ajaxSuccess
重新加载后,检查URL是否包含ajaxSuccess
字符串 使用SessionStorage跟踪如下内容:
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) {
sessionStorage.successMessage= true;
location.reload();
setTimeout(function () {
$("#divLoader").addClass("display-none");
}, 500);
},
error: function (e) {
$("#divLoader").addClass("display-none");
}
});
$( function () {
if ( sessionStorage.successMessage) {
$("#msg").append(
'<div class="alert alert-success hideit alertSuc">' + countofProcessedRecords + 'subscriptions uploaded successfully.</div >');
sessionStorage.successMessage = false;
}
}
);
$("#display-content").load().fadeIn("fast");
var数据={
“strselectedDS”:selectedArray.join(','))
};
var countofProcessedRecords=selectedArray.length;
$(“#divLoader”).removeClass(“显示无”);
$.ajax({
url:UrlSettings.ProcessSubscriptionData,
键入:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“html”,
数据:JSON.stringify(数据),
成功:功能(响应){
sessionStorage.successMessage=true;
location.reload();
setTimeout(函数(){
$(“#divLoader”).addClass(“显示无”);
}, 500);
},
错误:函数(e){
$(“#divLoader”).addClass(“显示无”);
}
});
$(函数(){
if(sessionStorage.successMessage){
$(“#msg”)。追加(
''+进程记录计数+'订阅已成功上载');
sessionStorage.successMessage=false;
}
}
);
我认为应该使用load()而不是location.reload()
因为load()将在div中显示所需的内容,而location.reload将刷新整个页面
下面是load()的一些示例:
在HTML代码中:
<div id="display-content"></div>
您还可以在load()中加载文件,例如:
var id = "<?php echo $_GET['id'];?>";
$('#display-content').load('view.php?id='+id).fadeIn("slow");
var id=”“;
$('#display content').load('view.php?id='+id).fadeIn(“慢”);
在重新加载页面之前可能会有一些延迟。像这样:
$.ajax({
type: 'POST',
url: 'url',
data: { id: id },
success: function() {
$('#alertMessage').html('<p>success message</p>');
setTimeout(function(){
location.reload();
}, 800);
}
});
$.ajax({
键入:“POST”,
url:'url',
数据:{id:id},
成功:函数(){
$(“#alertMessage”).html(“成功消息””);
setTimeout(函数(){
location.reload();
}, 800);
}
});
获取当前位置url并向url中添加一个参数,在加载页面时检查该参数是否有值,然后使用该消息显示为状态。我尝试了此操作,但每次ajax成功时localStorage.ajaxSuccess都是真的。