【发布时间】:2013-09-07 00:08:33
【问题描述】:
在将 HTML5 缓存添加到使用 rails 主干编写的单页应用程序后,我遇到了一个问题。浏览器 (chrome) 没有重新加载 html,这会以两种方式导致问题:
1) 主干的 html 框架有时会发生变化 - 至少让主干知道用户已登录。但是,由于没有加载 html,应用程序不知道这一点(例如刷新后)。我可以在页面加载时查询服务器,但这是我希望避免的另一个请求。此外,这将强制将所有权限逻辑移动到客户端 - 因此要么从服务器复制 cancan 设置,要么将其嵌入到 html 中 - 我们遇到了上述问题。
2) Rails 的 csrf 标记在 html 中,它们也不会改变 - 导致任何 ajax 发布都不起作用。对于这个我不知道该怎么做。从我读到的 csrf 令牌是为会话生成的,所以也许在登录/注销时我可以用 js 更新它。但是从哪里得到它,它会起作用吗?
【问题讨论】:
-
引用清单的页面始终包含在应用缓存中。您应该使用 JavaScript 加载 所有 非静态数据,或者每次 HTML 更改时都需要更新清单文件。
标签: ruby-on-rails html authentication caching backbone.js