Javascript 如何在ajax成功和location.Reload()之后在div中显示消息

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

在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");
    }
});
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都是真的。