我正在将一个通过URL加载新视图的Rails应用程序移植到完全基于AJAX的版本。我们的做法是通过AJAX加载所有视图,并通过HTML5 History API更改URL。我们还想在整个过程中使用HTTP缓存,以便可以缓存每个部分。
但现在我们遇到了一个问题。现在有两种加载每个页面的方式 - 通过URL或通过单击某个东西通过AJAX加载该部分。但这导致我们为从URL直接加载相同内容和通过AJAX和历史API加载相同内容创建了两个不同的视图和控制器。那么,如何确保当直接通过URL和通过AJAX加载时,浏览器缓存中加载相同的视图?
举个例子,GitHub在他们的树形滑块中使用了这个技术。您可以通过窗口直接访问代码,也可以直接使用URL路径访问代码。如果页面已经加载过,他们肯定会从浏览器缓存中获取其中的一部分。
是否有一种方法可以向同一URL发送请求,但根据是否通过标签单击或输入地址栏来呈现部分或加载整个页面?如果浏览器中已经存在缓存的部分,则应使用缓存的部分。
谢谢
但现在我们遇到了一个问题。现在有两种加载每个页面的方式 - 通过URL或通过单击某个东西通过AJAX加载该部分。但这导致我们为从URL直接加载相同内容和通过AJAX和历史API加载相同内容创建了两个不同的视图和控制器。那么,如何确保当直接通过URL和通过AJAX加载时,浏览器缓存中加载相同的视图?
举个例子,GitHub在他们的树形滑块中使用了这个技术。您可以通过窗口直接访问代码,也可以直接使用URL路径访问代码。如果页面已经加载过,他们肯定会从浏览器缓存中获取其中的一部分。
是否有一种方法可以向同一URL发送请求,但根据是否通过标签单击或输入地址栏来呈现部分或加载整个页面?如果浏览器中已经存在缓存的部分,则应使用缓存的部分。
谢谢