我有一个关系数据库和一个线程/评论系统。我无法想出一种解决upvoting的方法,因为必须刷新页面才能让服务器注意到任何更改。
我创建了一个新表UPVOTESTHREAD,它包含两个外键,用户ID和线程ID,以及一个主键,它是两者的组合。我实际插入的唯一方法是提交一些POST数据。我担心这会让用户感到笨拙,这也意味着用户必须将scroooollll回到他们刚才看到的地方。这不是正确的解决方案,对吧?有没有更好的方法呢?
答案 0 :(得分:2)
是的,有更好的解决方案。它被称为AJAX。它向服务器发送一个post或get请求,并在不重新加载页面的情况下接收输出。
接收ajax请求的服务器上的脚本可以(在您的情况下)在db中增加一个投票计数器。
(通常是PHP-)脚本还可以输出ajax函数的成功处理程序将接收的内容(通常是json或状态代码)。然后,您可以使用javascript修改您的页面。在您的情况下,如果有计数,您可以收到当前的投票计数并更新upvote按钮旁边的计数。