Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “返回”按钮上未保存AJAX DOM元素_Javascript_Jquery_Dom - Fatal编程技术网

Javascript “返回”按钮上未保存AJAX DOM元素

Javascript “返回”按钮上未保存AJAX DOM元素,javascript,jquery,dom,Javascript,Jquery,Dom,我有一个数据列表,用户可以使用AJAX数据对其进行分页,并将该数据附加到容器中。如果用户单击任何条目转到另一个页面,并单击浏览器上的本机后退按钮,则任何AJAX追加数据都不会再列在DOM上。我如何解决这个问题?这是jQuery的问题吗 我曾尝试在分页时更改URL哈希(#page2),但一旦他们回击,它仍然无法保持不变 有什么想法吗?基本上,您必须将数据写入某个位置,以便数据仍然存在。如果没有客户端持久性,这意味着服务器端持久性。这意味着当他们编辑数据时,您必须将其写回服务器。我知道有一些技术进入

我有一个数据列表,用户可以使用AJAX数据对其进行分页,并将该数据附加到容器中。如果用户单击任何条目转到另一个页面,并单击浏览器上的本机后退按钮,则任何AJAX追加数据都不会再列在DOM上。我如何解决这个问题?这是jQuery的问题吗

我曾尝试在分页时更改URL哈希(#page2),但一旦他们回击,它仍然无法保持不变


有什么想法吗?

基本上,您必须将数据写入某个位置,以便数据仍然存在。如果没有客户端持久性,这意味着服务器端持久性。这意味着当他们编辑数据时,您必须将其写回服务器。我知道有一些技术进入浏览器,允许在客户端上实现某种版本的持久性,但我自己还没有研究过


你可以看看。该单页应用程序使用各种机制,包括某些浏览器中的受信任小程序,将数据重写回文件系统中的页面,以便用户所做的更改在用户返回页面时保持不变并可用。但这与生活在http://land不同。在web世界中,您需要将持久数据重写回服务器。

必须使用history.pushState(),然后在用户单击“上一步”按钮更新页面时处理
popstate
事件。上一步按钮要求浏览器加载其他页面。除非您采取某些特定的操作来保存,否则您在当前页面中加载的任何内容都将丢失。您可以查看localStorage或cookies,但仍需要一些代码将其应用于正在加载的页面。请参见@mikewards注释。@MikeW不完全正确。可以运行单页应用程序,利用历史记录显示不同的内容,但都在同一个页面中page@MikeEdwards因此,您必须不允许使用pushState,而是将数据保存在某个位置,以便它可以将其添加回DOM?仅使用pushState不会强制浏览器在进入下一个页面之前缓存当前页面?我从未直接使用过pushState,因此我的大纲非常高。我只是想用一些关键词来为你指出正确的方向,这就是为什么它是一个评论而不是答案。我不确定我是否会跟随——看看像foursquare这样的页面。您可以向下滚动活动提要,它将为您添加数据。然后进入一个项目,点击后退按钮。内容仍将存在。我不想保存数据,只想将其添加到浏览器的缓存中。它不应该在“后退”按钮上加载页面的新版本。正当