使用Javascript的片段缓存

使用Javascript的片段缓存,javascript,caching,fragment-caching,Javascript,Caching,Fragment Caching,有人能告诉我一些示例代码,说明在使用javascript加载页面的动态部分时如何最好地进行缓存 我的典型示例涉及一个页面,其中除了页面顶部的用户登录状态和用户名之外,没有任何更改。通过jQuery和ajax请求更改此文本非常简单,但由于我是在$(document).ready()上执行此操作的,如果您快速查看,您可以在ajax请求触发和更新页面的该部分之前看到类似“单击此处登录”的页面加载 编辑以进行澄清: 如果缓存整个页面,将发生以下情况 用户A请求该页面 页面未被缓存,因此应用程序在右上角生

有人能告诉我一些示例代码,说明在使用javascript加载页面的动态部分时如何最好地进行缓存

我的典型示例涉及一个页面,其中除了页面顶部的用户登录状态和用户名之外,没有任何更改。通过jQuery和ajax请求更改此文本非常简单,但由于我是在
$(document).ready()
上执行此操作的,如果您快速查看,您可以在ajax请求触发和更新页面的该部分之前看到类似“单击此处登录”的页面加载

编辑以进行澄清

如果缓存整个页面,将发生以下情况

  • 用户A请求该页面
  • 页面未被缓存,因此应用程序在右上角生成带有“Hi User A”的html
  • 用户B请求该页面

  • 页面是缓存的,所以应用程序按原样为我们服务——包括“Hi User A”位,我将首先在服务器的主页中加载用户状态,使用与生成AJAX响应相同的东西。然后,当用户更改状态时,使用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>