我想在我的应用中为状态待定的项目实现各个部分的视觉指示器,类似于facebook的/ google加未读通知指示符...我已经编写了一个API来获取要显示的计数,但每次添加或删除项目时我都会坚持更新它,我可以想到两种我不满意的方法,
POST
操作
答案 0 :(得分:1)
即使在gmail中,它也会根据客户端请求进行刷新。服务器计算新项目的数量,客户端发起请求(可能使用AJAX)。这需要几乎可以忽略不计的数据和处理时间,因此您可能会侥幸逃脱。如果自上次请求后没有数据发生变化,各种缓存宝石甚至可以存储刷新页面的部分,这甚至可以解决仅在某些内容发生变化时计算的问题。
更新:
您可以通过两种方式解决问题:服务器端推送和客户端查询。由于各种原因,推送是有问题的,至少据我所知,在网络环境中很少使用。大多数页面(如果不是全部)使用定时查询来刷新此类信息。您可以使用正确的工具进行检查,例如firefox的firebug。您可以看到针对服务器发起的各个请求。
当您通过AJAX触发请求时,服务器会回复您。通常它会生成一个页面片段来用旧的内容替换旧内容,但是一些缓存机制可以进行干预,如果没有任何更改,您可能会获得先前存储的缓存片段。查看一些tutorial here,了解各种宝石,其中一个可能符合您的需求。
如果您更喜欢完整的解决方案,请查看Faye(tutorial here)。我没有用它,但值得一试,看起来很简单。