如何在页面重新加载后显示消息或警报?

13

我正在使用Jquery Toastr来显示一些成功消息。它就像是在一段时间内弹出警告框。

我想在页面重新加载后显示一些消息,但问题是当页面重新加载时,所有的JavaScript都会重新加载。

有没有办法解决这个问题?我想在ajax成功后实现这个功能。

success: function(data) {
    if (data.OperationStatus) {
        window.location.reload(); //Reload the page
        Toaster.show("The record is added"); //I want to show here.But it will never show because when page is loaded javascript is also loaded.            
    }
}

有没有更有效的方法来做这件事?


你需要在localStorage中维护状态,并从localStorage中获取状态。如果成功获取状态,则显示toast提示。 - Parth Trivedi
是的,我也在考虑这个问题。但是在jQuery或JavaScript中有没有相应的事件可以实现这个功能呢? - Umer Waheed
1
请参考 localstorage 的获取和设置值,如果您遇到问题,请在此处写下。 - Parth Trivedi
我想知道如果你要使用localStorage,你会在哪个事件中删除它的值?因为有可能你会跳转到另一个页面,然后再回到同一个页面...这可能导致你的页面是新的而不是重新加载的页面... - Pranay Rana
这不是一个问题,我们可以检查本地存储中是否存在某个键,然后将其删除。 - Umer Waheed
显示剩余3条评论
1个回答

31

你必须这样做

$(document).ready(function(){
    //get it if Status key found
    if(localStorage.getItem("Status"))
    {
        Toaster.show("The record is added");
        localStorage.clear();
    }
});

在Ajax调用时设置本地存储

success: function(data) {
if (data.OperationStatus) {
    localStorage.setItem("Status",data.OperationStatus)
    window.location.reload(); 
}

你也可以使用sessionStorage来实现。将当前代码中的localStorage替换为sessionStorage,整个代码就可以与sessionStorage一起使用。

在使用localStorage时,它的行为类似于cookie,直到您使用localStorage.removeItem(key);localStorage.clear();

在使用sessionStorage时,数据会一直保留到您关闭浏览器标签页或者使用sessionStorage.removeItem(key);sessionStorage.clear();删除数据。

查看参考文献了解如何使用localStoragesessionStorage


1
@Umer 像这样做。 - Parth Trivedi
请使用setTimeout函数。 - Parth Trivedi
@ParthTrivedi 这是可能的,但这不是一个好的方法。 - Umer Waheed
3
"localstorage"在关闭浏览器后仍然保留,而"session storage"会在关闭浏览器时自动删除,因此应该使用"session storage"。在这里,可以通过"localStorage.clear();"来清除localStorage,所以不会有任何问题。 - Parth Trivedi
2
@Umer sessionStorage 仅在当前浏览器选项卡中保留。localStorage 的工作方式类似于 cookies,并且可以在指定路径中获取。 - Parth Trivedi
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接