1

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

我有一个带有表单的 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;
}

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

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

谢谢 !

4

4 回答 4

1

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

  1. 查看在页面加载时调用 AJAX 方法,该方法会抓取服务器上持久保存的数据以重绘动态页面。
  2. 将数据存储在客户端浏览器的会话中,重新加载时检索该数据并重新绘制动态页面。您可以使用许多持久保存到会话存储的工具来实现这一点。
于 2012-10-02T20:50:13.973 回答
0

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

于 2012-10-02T20:46:08.420 回答
0

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

于 2012-10-02T20:47:18.493 回答
0

是否有任何机会,因为无论如何您都在使用 ajax,您可以将数据转储到 php 会话中并在再次需要时重新调用它和/或使用 ajax 重新格式化它?

于 2012-10-02T20:48:42.540 回答