加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax – 如何在更新页面DOM后修改浏览器缓存?

发布时间:2020-12-16 02:56:02 所属栏目:百科 来源:网络整理
导读:到目前为止,我知道我可以使用 AJAX分离静态和动态内容,因此如果博客帖子有评论更新,那么文章不必重新加载(它是304),只有评论.现在,我正在考虑保留所获取的动态内容,以便下次只需要请求新的注释.有没有办法在不依赖Flash / Gears / HTML5Storage或其他插件的
到目前为止,我知道我可以使用 AJAX分离静态和动态内容,因此如果博客帖子有评论更新,那么文章不必重新加载(它是304),只有评论.现在,我正在考虑保留所获取的动态内容,以便下次只需要请求新的注释.有没有办法在不依赖Flash / Gears / HTML5Storage或其他插件的情况下做到这一点?

编辑:
假设文章的评论部分如下所示:

<div class='comments' id='comments'>
 <a name='comments'></a>
 <h4>43 comments:</h4>
 <dl id='comments-block'></dl>
 <p class='comment-footer'>
  <a href='http://example.org/postcomment' onclick=''>Post a Comment</a>
 </p>
</div>

在其上,用于获取注释的AJAX调用会将它们附加到< dl id ='comments-block'>,其中包含以下代码段:

<div class='comments-singleblock'>
  <dt class='comment-author' id='comment-5378479254070788764'>
    <a name='comment-5378479254070788764'></a>
      Anonymous coward
      <span class='comment-timestamp'>
        <a href='#comment-5378479254070788764' title='comment permalink'>
           5 February 2012 16:52
        </a>
      </span>
    </a>
  </dt>
  <dd class='comment-body'>
    <p>
      Your lorum is my ipsum,the dolor is sit amet us.
    </p>
  </dd>
  <dd class='comment-footer'>
    Which eternal lies,that is not death.
  </dd>
</div>

可以缓存.随后的AJAX调用应仅返回新内容,并附加到上面.
现在加载文章时,逻辑就是这样

>没有时间戳的第一次AJAX注释调用:获取所有注释直到当前时间戳A.这是缓存的.
>时间在新时间戳B上传递,在时间戳A之后向服务器发送请求以进行注释.此调用可以被缓存,但是没有意义,因为请求URL永远不会被重用.
>客户端现在已经更新了注释,直到时间戳B.但是只缓存了时间戳A之前的内容.
>客户端刷新文章,该文章提示没有时间戳的第一个评论请求,这应该返回缓存的评论,直到时间戳A.

所以问题是如何修改缓存的内容以包括时间戳A和B之间的内容.

解决方法

创建一个局部变量来存储ajax调用的JSON结果.

创建一个局部变量来存储Max_Last_Modified_Date.

创建一个将绘制JSON结果的javascript助手.

创建一个服务器端处理程序,它将告诉您评论的MAX(LastModifiedDate).

创建一个服务器端处理程序,它将返回JSON中的注释

>所有结果(首次获取)> Max_Last_Modified_Date之后修改日期的任何内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读