2012-10-02 47 views
0

我的问题很简单,但我无法找到符合我要求的答案。这里基本上是我的情况:如何在页面重新加载时保持Javascript生成的HTML?

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

这里的.js文件的代码示例来更改HTML内容:

$.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内容没有保存,我看到我的形式背部。

我对网络开发相当陌生,我相信我错过了一些关于此的东西。请有人指导我或给我一些关于我的案子的提示吗?

谢谢!

回答

0

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

0

由于HTML是使用回调change_html动态生成的,因此在页面重新加载期间不可能保留它。这是它的动态性质。

0

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

+0

我可以这样做,但我想避免在会话中存储太多东西。 –

+0

如果你有很多数据要从一个页面存储到下一个页面,那么查看一个数据库来存储数据可能是明智的。不完全确定你的应用程序是什么以及什么可能是最合适的。 – Mike

1

简而言之,您无法坚持刷新DOM的状态。你可以做很多事情来修复:

  1. 看看调用一个AJAX方法,当页面加载抓住数据保持在服务器上重绘动态页面。
  2. 将数据存储在客户端浏览器的会话中,重新装载时检索该数据并重绘动态页面。您可以使用一些坚持会话存储的工具来实现这一点。
相关问题