【问题标题】:Need help on using ajax/jquery in creating discussion forum [closed]在创建讨论论坛时需要使用 ajax/jquery 的帮助 [关闭]
【发布时间】:2013-07-01 14:28:55
【问题描述】:

我熟悉 jquery。我正在尝试创建一个讨论论坛,其内容需要动态更新。我正在用 jquery 做这件事。但是每次我尝试更新一个部门的内容时,我都必须从数据库中检索整个数据。有没有什么简单的方法可以将更新后的数据添加到现有部门?有人可以建议我一个方法吗?我真的需要帮助。提前致谢。

【问题讨论】:

  • 嘿,你看过 math.stackoverflow.com。当我们查看页面时,它会提示用户更新内容,说有一些更新内容的帖子。我需要知道如何实现该功能。如何比较现有内容与更新内容?有什么想法吗?

标签: jquery ajax forum


【解决方案1】:

某些网站使用了一种机制来实现“显示更多”功能。我用它来显示项目 10 x 10 并带有“更多”按钮。您可以将其调整为按间隔而不是单击事件调用。

想法是将最后显示的项目的 id 放在 ajax 响应中。称它为 lastId。将其存储在页面的隐藏输入中。当您想显示新信息时,请在请求中发送此 id。在您的查询中,您必须编写类似

select * from elements where element_id > lastId

它将为您提供自上次请求以来的所有新元素。 (当然,你必须有一个自动递增的策略或类似的东西)。

获取新的更高 ID 并将其发送回 ajax 答案。在需要的地方更新 lastId。

重复操作以获得新元素...

【讨论】:

  • 确实,这不是我的本意。如果论坛中有帖子并且某些用户正在查看它。如果该帖子在用户查看它时得到任何回复,我想更新帖子的内容。除了定期检索整个内容之外,还有其他方法吗?
  • 没有。我不这么认为。客户端无法知道数据库中有更新,服务器也无法告诉他的客户端。我不知道如果您向浏览器发送响应但它没有先发送请求,它会如何反应。我认为它会忽略来自服务器的消息。
  • 有什么方法可以通知用户当前分区的内容有更新提示他重新加载。有没有办法比较更新的内容和预加载的内容?或者怎么做?任何建议...
【解决方案2】:

我不知道您使用哪种语言/框架,但这些视频(和相应的资源)可能会有所帮助:http://railscasts.com/episodes/260-messaging-with-fayehttp://railscasts.com/episodes/229-polling-for-changes-revised

它描述了如何轮询更改以及如何使用 web 套接字来解决这个问题。

【讨论】:

  • 我正在使用 php 和 jquery。除了视频还有其他答案吗?因为,我的工作网络连接速度很慢。
  • 好吧,你可以看看 Socket.IO:socket.io。我没有任何指向描述如何使用 PHP 实现此功能的视频链接 :(.
  • 嘿,你看过 math.stackoverflow.com。当我们查看页面时,它会提示用户更新内容,说有一些更新内容的帖子。我需要知道如何实现该功能。如何比较现有内容与更新内容?有什么想法吗?
  • 你可以使用网络套接字,我想。当页面加载时,会打开一个持久连接。当带有消息(cmets、条目等)的新内容添加到数据库表中时,通知将通过此连接发送,因此用户会在页面上看到一条消息,该消息告诉他一些新内容。或者你可以只加载这个新内容。至少这是我在我的应用程序中使用 cmets 解决这个问题的方法。我使用 Rails 作为框架,使用 Faye 作为设置持久连接的解决方案。 Socket IO 也可以做到这一点,但我没用过 :(.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-10
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多