我一直在考虑如何创建一个投票,允许用户提交新条目并对现有条目进行投票。然后,轮询将定期更新,添加任何新条目(其他用户可能正在添加的条目),更新每个条目的投票,然后通过减少投票来重新排序所有条目——所有这些都是通过ajax进行的。
在这一实施过程中,我正在寻求一些建议:
-
-
服务器端脚本应该返回此轮询中的所有数据,并让客户端脚本(我正在查看jQuery plugin periodiccupdater script at m)确定数据是否有更改,还是应该将服务器端脚本编程为只返回新条目?如果服务器端脚本只返回新条目,我想我需要为每个ajax调用添加一个时间戳,但我不确定periodiccupdater脚本是否允许这样做。其次,这意味着我将无法获取现有条目的最新投票计数。
如果每个ajax轮询返回完整的数据集,我想我会解析每个条目并检查它是否存在(在dom元素上使用.length()),如果它存在,我会检查投票计数是否相同,否则,更新。如果条目不存在,我将在列表的顶部加上前缀(尽管这无关紧要,因为它将在更新后排序)。最后,我将把更新调用发送到表排序器。
我想使用ajax,因为这意味着用户将减少中断(而不是页面刷新),体验将更加无缝,整个投票事务将相当“现场”。但是,我不确定我前面提到的实现,即每次更新带来的视觉干扰,是否几乎类似于页面刷新。有什么想法吗?理想情况下,最好有一些动画来上下移动现有的条目等,但我没有绝对的线索如何做到这一点。哈哈。
我目前正在考虑使用jQuery插件periodiccupdater和tablesorter,用两列(投票和条目)创建数据。有没有其他插件(ajax服务器轮询和数据排序)可以更好地做到这一点?
任何建议都非常感谢。衷心感谢:)