2016-07-05 51 views
-3

我已经看到过类似的问题,例如:Ajax, back button and DOM updates,实际上,至今为止我尝试的是受到这些问题的答案的启发。然而,他们没有描述实际应用中他们的建议在按下后退/前进按钮时保留DOM上的更改

这是正在发生的事情,现在,当我面临的问题:

  • 第一个执行,我会用更新的元素Ajax调用DOM“例如选定数量”
  • 用户进入网页B和做同样的
  • 用户单击后退按钮
  • 页A负载,但我对DOM所做的所有修改都会丢失
  • 用户点击前进按钮
  • 网页B的节目,我试了一下,到目前为止所有的变化都将丢失以及

: - 刷新对jQuery的准备方法的数量。这工作...虽然用户可以看到几秒钟的旧数量。但是,它有一个很大的缺点,因为它重复每次Ajax调用后发送给服务器

  • 更新window.location.hash值调用量。 I.E

    window.location.hash = new Date()。getTime();

这也适用,但问题是我必须点击后退按钮两次,而不是因为第一次点击重新加载当前页面。

任何想法如何解决这个问题?我想要做的就是保存DOM状态,以避免额外调用服务器以更新数量。

感谢

回答

1

如果你真的改变页的是,即使从缓存中工作,浏览器将显示页面,因为它是从服务器检索时,不是因为它是后来修改的时候。

如果您希望按照当前的方式保留Page A/Page B结构,而不是将其更换为更加SPA的方法,那么您可以将ajax结果存储在sessionStorage中,并在页面加载时检查它。如果有的话,重新申请;如果没有,通过ajax请求并应用它(并保存)。这比通过网络重新请求它要快得多。

+0

嗨,有没有任何例子如何做到这一点?谢谢 – Nmaster88

相关问题