即使页面使用jquery刷新,如何维护新加载的页面

时间:2017-10-13 11:08:11

标签: jquery

假设我有2页, 第一页由表单组成,在提交后,我想在同一页面内加载一个新页面(oldpage.html)

$("body").load("newpage.html");

问题是,当我尝试刷新页面时,它会返回到oldpage.html内容

我的问题是,即使刷新后如何维护新加载的页面。

3 个答案:

答案 0 :(得分:0)

使用cookie来保存页面名称以进行加载:

function write_Cookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";

    document.cookie = name + "=" + value + expires + "; path=/";
}

function read_Cookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function clear_Cookie(name) {
    write_Cookie(name, "", -1);
}




var page_for_load=read_Cookie('current_page');
if(!page_for_load){
    page_for_load='oldpage.html';
    write_Cookie('current_page', page_for_load, 1);
}

$('body').load(page_for_load, function(responseTxt, statusTxt, xhr){
    if(statusTxt == "success"){
        page_for_load='newpage.html';
        write_Cookie('current_page', page_for_load, 1);
    }
 });

答案 1 :(得分:0)

由于您要更改整个正文,因此您应该在提交表单后重定向到新页面。 我建议在POST提交表单后,服务器将客户端重定向到新页面或返回到表单。使用http代码&#34; 303见其他&#34;。这是在服务器处理POST请求后使用适当的GET方法将用户重定向到新资源的最佳方法。

答案 2 :(得分:0)

您确实可以使用 Cookie 。但是,为简单起见,它更容易使用sessionStorage对象。

注意
有两个存储对象

  1. sessionStorage - 数据将被存储,直到会话关闭
  2. localStorage - 数据可以永久存储
  3. 所以你可以做的是检查sessionStorage

    中存储的页面

    例如:

    /**
     * This translates into
     *
     * if(sessionStorage.getItem("page")) {
     *     var page = sessionStorage.getItem("page");
     * } else {
     *     var page = "oldpage.html";
     * }
     */
    var page = (sessionStorage.getItem("page") ? sessionStorage.getItem("page") : "oldpage.html";
    
    // Load the correct view based on the above statement
    $("body").load(page);
    

    发布page时,不要忘记更新form。只有在使用AJAX之类的库时才能执行此操作。如果是服务器端,那么cookie会更好。

    update使用sessionStorage对象。

    sessionStorage.setItem("page", "newpage.html");