这有点长的解释,所以我会尽量保持简短:
我正在提交表单并返回用户列表,然后清空并重新填充返回的用户。这可以正常工作,直到我添加用户然后浏览到另一个页面,然后返回到上一页,它在加载新用户之前加载那里的用户列表。如果我刷新,则用户列表会再次正确显示用户列表。
一些伪代码:
... function to add a user, then return success ...
$("ul#userTab").empty();
for(user in data['users']){
$("ul#userTab").append("<li>"+user+"</li>");
}
一旦我使用后退按钮,似乎浏览器正在缓存第一页加载,但我真的不知道。任何帮助表示赞赏。
编辑:为了澄清,我将数据发送到服务器,将其保存在数据库中,然后从数据库返回用户。我不只是在页面中添加任意值然后重新加载并想知道它为什么不存在。
答案 0 :(得分:2)
浏览器不会维护您在页面重定向之间操作的DOM。您必须使用任何历史管理插件或使用iframe来维护页面重定向之间的页面状态。
看一下下面的一些链接,这些可能会对你有帮助
http://www.asual.com/jquery/address/
http://benalman.com/projects/jquery-bbq-plugin/
http://plugins.jquery.com/project/history
答案 1 :(得分:1)
页面加载了服务器发送给浏览器的内容,javascript所做的任何更改只在客户端浏览器中完成,而不是在服务器上完成,因此当从服务器重新加载页面时,它与它相同是,服务器发送的内容。
要使更改成为永久更改,您需要使用AJAX将更改发送到服务器,或将客户端存储在会话或cookie中。
答案 2 :(得分:0)
显而易见的答案是,您正在动态地向dom添加元素而不是重写页面。如果要保留结果,应考虑将结果添加到cookie并检查cookie是否在加载时存在,然后相应地显示。
document.cookie ='users = html_results here; expires = Thu,2001年8月2日20:47:11 UTC;路径= /';