Как показать сообщение в div после ajax success и location.Reload () - PullRequest
0 голосов
/ 08 февраля 2019

При успешном вызове 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");
    }
});

Может кто-нибудь, пожалуйста, помогите мне с этим.

Заранее спасибо ..

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Используйте 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;
        }
    } 
);
0 голосов
/ 08 февраля 2019

Чтобы пережить перезагрузку, вам нужно использовать постоянное хранилище, например 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...