在将元素附加到页面后,转到另一个页面,然后返回,附加的元素就消失了

After appending element to page, going to another page, then back, the appended element is gone

本文关键字:元素 返回 然后 消失了 另一个      更新时间:2023-09-26

解释起来有点长,所以我尽量保持简短:

我提交一个表单并返回一个用户列表,然后清空a并用返回的用户重新填充它。直到我添加一个用户,然后浏览到另一个页面,然后返回到前一个页面,它才像预期的那样工作,它正在加载添加新用户之前的用户列表。如果我刷新,用户列表将再次正确显示用户列表。

一些伪代码:

... function to add a user, then return success ...
$("ul#userTab").empty();
for(user in data['users']){
    $("ul#userTab").append("<li>"+user+"</li>");
}

似乎浏览器是缓存第一个页面加载一旦我使用后退按钮,但我真的不知道。如有任何帮助,不胜感激。

编辑:澄清一下,我正在向服务器发送数据,将其保存在数据库中,然后从数据库返回用户。我不只是添加一个任意值到页面,然后重新加载,想知道为什么它不在那里。

浏览器不会维护您在页面重定向之间操作的DOM。你必须使用任何历史管理插件或使用iframe来维护页面重定向之间的页面状态。

看看下面的一些链接,这些可能会对你有所帮助

http://www.asual.com/jquery/address/

http://benalman.com/projects/jquery-bbq-plugin/

http://plugins.jquery.com/project/history

http://benalman.com/projects/jquery-hashchange-plugin/

http://code.google.com/p/reallysimplehistory/

一个页面加载了服务器发送给浏览器的内容,javascript所做的任何更改都只在客户端浏览器中完成,而不是在服务器上,所以当页面从服务器重新加载时,它与服务器发送的内容相同。

要使更改永久保存,您需要使用AJAX将更改发送到服务器,或者将其存储在客户端会话或cookie中。

显而易见的答案是,您正在动态地向dom添加元素,而不是重写页面。如果您想保留结果,您应该考虑将结果添加到cookie中,并检查cookie在加载时是否存在,然后相应地显示。

文档。Cookie ='users=html_results here;expires=Thu, 2 Aug 2001 20:47:11 UTC;路径=/';