【问题标题】:Ajax data disappeared when I come back我回来时Ajax数据消失了
【发布时间】:2015-11-26 21:24:40
【问题描述】:

我制作了一个 html 页面,并且有 ajax 调用来获取一些数据。

在成功调用 ajax 后,我使用来自 ajax 调用的 json 数据渲染到 html 元素。

但是,如果我通过单击某个链接转到其他页面,并且当我回来时根本没有数据。

当我从其他页面返回时如何保留数据元素。

<!DOCTYPE HTML>
...
...
<body>
<div id='data'>
</div>
<a href='/next'> NEXT </a>
<script type='text/javascript'>
$.ajax({
    type : 'GET',
    url : '/data/user',
    ...
    ...
    success: function(json) {
        $('#data').append(json.username);
    }
    ...
</script>
</html>

当我单击“下一步”并返回历史记录时。用户名消失了。

【问题讨论】:

  • 您需要一些服务器端技术才能从服务器加载数据。 Ajax 只是针对单个请求修改您的 DOM.. 或者在页面加载中进行..
  • 当您刷新页面或浏览另一个页面时,预计会丢失数据。但是,如果该 ajax 调用不是基于某个条件;并且服务器端仍然存在相同的数据;即使您刷新页面,它也应该在那里。如果你在这里分享你的代码会更好。
  • 您可以在 jquery 就绪函数中调用 ajax,这样每次访问页面时用户名都可用,或者您可以将其存储在 ajax 文件和 html 中的 $_SESSION 变量中页面你可以设置条件,如果没有找到会话进行ajax调用来设置会话
  • $(document).ready(function(){ // your code here });中调用ajax调用

标签: javascript jquery html ajax web


【解决方案1】:

当页面重新加载时,所有来自 ajax 的数据肯定会丢失。如果您之前已经使用缓存属性进行了 ajax 调用,您可以加快 ajax 调用速度

$.ajax({
  url: "test.html",
  cache: true
})
  .done(function( html ) {
    $( "#results" ).append( html );
  });

【讨论】:

  • 我设置的缓存是真的,但是我丢失了数据。
  • 是的,它会丢失,但这会更快
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-18
  • 1970-01-01
  • 1970-01-01
  • 2019-01-22
  • 1970-01-01
  • 2021-10-16
  • 1970-01-01
相关资源
最近更新 更多