使用Javascript的片段缓存
有人能告诉我一些示例代码,说明在使用javascript加载页面的动态部分时如何最好地进行缓存 我的典型示例涉及一个页面,其中除了页面顶部的用户登录状态和用户名之外,没有任何更改。通过jQuery和ajax请求更改此文本非常简单,但由于我是在使用Javascript的片段缓存,javascript,caching,fragment-caching,Javascript,Caching,Fragment Caching,有人能告诉我一些示例代码,说明在使用javascript加载页面的动态部分时如何最好地进行缓存 我的典型示例涉及一个页面,其中除了页面顶部的用户登录状态和用户名之外,没有任何更改。通过jQuery和ajax请求更改此文本非常简单,但由于我是在$(document).ready()上执行此操作的,如果您快速查看,您可以在ajax请求触发和更新页面的该部分之前看到类似“单击此处登录”的页面加载 编辑以进行澄清: 如果缓存整个页面,将发生以下情况 用户A请求该页面 页面未被缓存,因此应用程序在右上角生
$(document).ready()
上执行此操作的,如果您快速查看,您可以在ajax请求触发和更新页面的该部分之前看到类似“单击此处登录”的页面加载
编辑以进行澄清:
如果缓存整个页面,将发生以下情况
getStatus()
为用户处于的任何状态生成正确的HTML。在页面上,我将有一个包含此信息的
。服务器端,调用getStatus()
(例如使用PHP):
然后让AJAX请求返回
getStatus()
,并更新
内容。Aha!有一个铁路司机正是我想要的
Rails-y Goods可以在这里找到:在服务器上进行这种操作比在Javascript中更好。当然可以,但这意味着我将为每个请求重新生成整个页面。我正试图避免这种情况。:)@不,我会缓存页面的碎片。或者只为注销的用户缓存整个页面。我考虑过这样做。缓存片段的感觉很奇怪,实际上只有一行代码在变化。我会跳出圈套来缓存一个小分区周围的所有片段。只为已注销的用户缓存是一个有趣的想法。如果您希望在整个DOM准备就绪之前触发,可以在所述元素下方放置一个
函数thattupdates()
。这就是我现在正在做的事情。问题在于,在文档准备就绪之前,状态不会改变——这意味着,如果渲染只需半秒钟,您可以在javascript更新之前短暂地看到缓存状态。这有意义吗?那你就不是这么做的。在显示页面上的任何内容之前,应将getStatus()
称为服务器端。浏览器只会将其解释为普通HTML,而不是javascript必须触及的任何内容。不,如果您只是提供HTML页面,则不会调用getStatus()。只有在提供动态页面时(通过php/rails/etc),才会调用它。。。除非我没有正确理解你是的。。。但它仍然是服务器端。如果您请求index.php
,它不会在第一次为用户状态额外调用status.php
。getStatus()
在index.php
中,当状态通过登录或其他方式更改时,AJAX调用它并通过status.php
进行更改。
<div id="status"><?php =getStatus() ?></div>