gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:50:40 24 4
gpt4 key购买 nike

到目前为止,我知道我可以使用 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。

    创建一个 javascript 助手来绘制 JSON 结果。

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

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

  • 所有结果(第一次获取)
  • 在 Max_Last_Modified_Date 之后修改日期的任何内容。
  • 关于ajax - 页面DOM更新后如何修改浏览器缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5230185/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com