到目前为止,我知道可以使用AJAX来分离静态和动态内容,因此如果博客文章有评论更新,则不必重新下载文章(它将成为304),只需下载评论即可。现在,我考虑持久化获取的动态内容,这样下一次只需要请求新评论。是否有任何方法可以在不依赖Flash / Gears / HTML5Storage或其他插件的情况下实现这一点?
编辑:假设文章上的评论部分如下所示:
在此之上,一个AJAX调用将获取评论并将其附加到包含以下代码片段的
编辑:假设文章上的评论部分如下所示:
<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之间的内容。