刷新页面时遗失了Ajax数据

时间:2015-08-23 09:06:19

标签: jquery ajax

我在数据库中有user_idcomment字段。

在我的视图部分有一个注释框,当用户注释并单击提交按钮时,我触发了jQuery ajax函数并从数据库中检索了该id和注释并显示在div中。

我得到了所需的评论和分区中的ID,但问题是每当我刷新页面时这些数据都会消失。我使用innerHTML属性将ajax值赋给div。有没有什么方法可以显示这些数据,即使刷新页面后它们也不会消失?

4 个答案:

答案 0 :(得分:1)

你的问题反映了对AJAX实际上是什么的了解不足:

这是一种在页面加载后在浏览器和服务器之间交换数据的异步方法。因此,您的页面始终是相同的,没有您在“运行时”添加的所有内容。

你可以做的是实现一些逻辑来重建特定状态,例如:会议。

但是,我不鼓励你单独这样做。在页面的URL / href中包含基本状态信息通常非常聪明,允许用户“标记”特定显示。但这当然取决于你的申请。

答案 1 :(得分:0)

如果您希望数据在页面重新加载时保持不变,则需要在服务器上呈现它。因此,基本上您需要通过从数据库中获取现有注释来使用某种服务器端语言动态构造HTML。

或者,如果您不使用服务器端语言,则需要在使用AJAX调用加载页面(在DOM ready事件中)时从服务器获取注释。

答案 2 :(得分:0)

如果用于触发 ajax 查询的按钮或元素位于表单标签内,则可能会出现此错误。尝试将按钮放在表单标签之外。我的问题就这样解决了。

答案 3 :(得分:0)

如果您不想从服务器端获取数据并显示当前会话,

方式 1:您可以使用“Window.sessionStorage”概念

    Store Data
     sessionStorage.setItem('record - 1', 'My comments');
     sessionStorage.setItem('record - 2', 'My comments 2');
    
    Retrieve Data
     let comments_1 = sessionStorage.getItem('record - 1');
     let comments_2 = sessionStorage.getItem('record - 2');

您存储在此会话存储中的数据即使在您重新加载后也会保留

方式 2:使用 cookies 存储数据(非首选)

方式 3:在页面加载时从客户端调用 ajax 以获取当前记录的评论并即时显示 [首选]

您可以根据自己的方便选择编码方式:)