确保当用户返回页面而不刷新时,javascript更改的元素保持不变
Making sure elements changed by javascript remain changed when user returns to page without refreshing
很抱歉标题不稳定,很难描述问题。此外,很抱歉,如果这是重复的,很难搜索。
我正在尝试使用JQuery在按钮按下时实现一个相对简单的AJAX调用。我的目标是有一个按钮,上面写着"添加到列表"或"从列表中删除",当按下时,会对服务器进行AJAX调用,以适当地添加/删除列表中的项目。成功后,JQuery会更改按钮以反映后端的更改(因此从Add to->Remove from,反之亦然)。
我希望即使用户没有启用Javascript(这是个好主意,对吧?),我的按钮也能工作,所以我的按钮在一个标准的html表单中,该表单进行POST调用,执行DB操作,然后将用户重定向到他们刚刚访问的网页。我用JQuery覆盖了这种默认行为。
为了在用户第一次加载页面时显示正确的按钮类型,以及在启用Javascript的情况下进行标准POST调用时,我使用Django的模板系统来显示表单中正确的按钮/隐藏值。
这一切都很好。。。大部分情况下。我遇到的问题是,当用户使用Javascript单击按钮,然后转到另一个页面,然后使用页面返回按钮返回页面时,更改不会保留。也就是说,按钮显示为Django在第一次加载页面时所呈现的状态。如果用户重新加载页面,则会修复此问题。
当然,这对用户来说是非常令人困惑的,因为按钮不能正确地反映DB的状态。我该怎么解决这个问题?
不幸的是,这个问题没有真正好的答案。后退按钮通常返回到缓存在用户浏览器上的页面版本,并且与许多形式的动态内容交互不佳。你可能会考虑说服用户不要使用后退按钮(通过强大的导航栏或他们可以使用的等效功能,后退按钮变得更容易),或者写一条有用的注释。你也可以放入各种元阶段来告诉浏览器不要缓存页面(从而使他们每次都能完全加载页面),但这可能会减慢速度,而且可能不是所有浏览器都遵循。
- 如何找到Javascript元素的最长边
- 如何通过它瞄准javascript元素's的onclick属性
- Javascript元素相对于屏幕的位置
- 找不到javascript元素
- JavaScript元素遍历返回的值超出预期
- 没有获得基础's的Javascript元素工作(与Laravel和Elixir)
- 为什么在ASP.NET Ajax更新面板中执行任何操作后javascript元素都停止工作
- 将 JavaScript 元素 ID 传递给 PHP 或 Form Variable
- Javascript元素相互阻塞
- CefSharp javascript元素点击不;不起作用,但手动点击它可以
- javascript元素.click()发布Safari
- Javascript元素更新侦听器
- Javascript 元素值的总和
- 在 php 代码中调用 javascript 元素
- If-Statement中的Javascript元素验证
- JavaScript 元素识别和检索
- 单击内部锚点/哈希时自动更新 JavaScript 元素
- 将 JavaScript 元素作为变量传递
- 按下表单重置按钮时删除 JavaScript 元素
- 将 javascript 保留在新的 JavaScript 元素中