如何在页面重新加载时保持Javascript生成的HTML?

时间:2012-10-02 20:43:46

标签: javascript jquery html ajax codeigniter

我的问题很简单,但我没有找到适合我所寻找的答案。这基本上就是我的情况:

我有一个带有表单的HTML页面。使用jQuery和AJAX,我提交了我的表单,并使用一些javascript代码,我更改了我的div的HTML内容。所有这些都是在没有重新加载页面的情况下完成的,同时按下F5 / Ctrl-R / Cmd-R。

以下是更改HTML内容的.js代码示例:

$.ajax({
    type: "POST",
    url: "/management/uploadFile",
    dataType: "JSON",
    data: "uploadedFile="+uploadedFile,
    cache: false,
    success: 
    function(data){
        $('#mydiv').html(change_html(data));
    },
});

function change_html(data)
{
    var html;

    html += '<div id="mydiv">';
    html += 'Hello World !<br/>';
    html += '</div>';
    return html;
}

事实是,如果我手动重新加载页面,我的动态&#39;不保留HTML内容,我会看到我的表单。

我对网络开发很陌生,我确信我错过了这个。有人可以指导我或给我一些关于我的案例的提示吗?

谢谢!

4 个答案:

答案 0 :(得分:1)

简短的回答是你无法在刷新时保持DOM的状态。你可以做很多事情来修复:

  1. 查看页面加载时调用AJAX方法,该方法会抓取服务器上持久保存的数据以重绘动态页面。
  2. 将数据存储在客户端浏览器的会话中,重新加载时检索该数据并重绘您的动态页面。您可以使用许多持久存储到会话存储的工具来实现此目的。

答案 1 :(得分:0)

我过去解决这个问题的方法是使用backbone.js模型并在那里存储任何数据。

答案 2 :(得分:0)

由于HTML是使用回调change_html动态生成的,因此在页面重新加载期间无法保留它。这就是它充满活力的本质。

答案 3 :(得分:0)

有没有机会,因为你还在使用ajax,你可以将数据转储到php会话中并在需要时再调用它和/或用ajax重新格式化它?