【发布时间】:2023-06-30 14:33:01
【问题描述】:
我有一个使用 turbolinks5 在 RoR 4 中制作的经典购物车应用程序。用户可以更改给定项目的数量并单击“更新购物车”按钮以更新购物车值。
“更新购物车”按钮提交 Ajax 表单 (data-remote="true") 以更新购物车并增加/减少放置在菜单中的购物车项目计数器。
现在的问题是:每次用户单击“更新购物车”按钮时,都会缓存购物车的新页面,因此如果用户更新购物车 3 次,然后单击浏览器的“返回按钮”,则会显示三个旧的购物车的版本(存储在缓存中)。
所以:
我在购物车页面中使用了
<meta name="turbolinks-cache-control" content="no-cache">,这解决了问题,但似乎有点矫枉过正。我在包含购物车项目计数 (
<li class="active" id="cart_total_items" data-turbolinks-permanent>222<\li>) 的元素上使用了data-turbolinks-permanent,但它不起作用,也就是说,当单击“后退按钮”时,会显示旧计数而不是新计数一。如果我对所有页面使用
<meta name="turbolinks-cache-control" content="no-cache">,它可以工作,但显然我想使用页面缓存
那么知道为什么这不起作用吗?
热烈的问候
【问题讨论】:
-
尝试在这个事件中编写代码 $(document).on("turbolinks:load", function() { // 你的代码 });
标签: ruby-on-rails ajax cart turbolinks