【发布时间】:2014-08-30 05:31:55
【问题描述】:
我正在将一个通过 URL 加载新视图的 Rails 应用程序移动到一个完全 AJAX 版本。我们这样做的方式是通过 AJAX 加载所有视图并通过 HTML5 History API 更改 URL。我们还想在整个过程中使用 HTTP 缓存,以便我们可以缓存每个部分。
但现在我们被困在一个问题上。现在基本上有两种加载每个页面的方法 - 通过 URL 或通过单击通过 AJAX 加载该部分的内容。但这导致我们创建了两种不同的视图和控制器来加载相同的内容——一种直接从 URL 中加载,另一种通过单击主页并通过 AJAX 和历史 API 加载。那么,当直接通过 URL 和 AJAX 加载时,我们如何确保从浏览器缓存中加载相同的视图呢?
举个例子,GitHub 在他们的树形滑块中使用。您可以通过在窗口中浏览或直接使用其 URL 路径来直接访问代码。我确定如果该页面之前已加载,他们会从浏览器缓存中获取其中的一部分。
有没有办法向同一个 URL 发送请求,但只呈现部分页面或加载整个页面,具体取决于请求是通过单击选项卡发送还是在地址栏中输入?如果它们已经在浏览器中,它应该使用缓存的部分。
谢谢
【问题讨论】:
标签: ruby-on-rails ajax html http-caching html5-history