我想为新闻门户构建一个评论系统。
我希望 jQuery AJAX 能够检测是否有人添加评论数据,它会自动更新 SlideDown 运动中添加的评论。
我怎样才能做到这一点?谢谢。
(注意:我使用 ASP.NET 作为服务器)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function () {
$.ajax({
url: 'WebForm1.aspx',
success: function (data) {
$("#Urunler").html(data);
}
});
});
</script>
<style>
li
{
width: 100px;
height: 30px;
background: yellow;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<ul id="Urunler" runat="server">
</ul>
</div>
</form>
</body>
</html>
这是背后的代码,
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
namespace WebApplication2
{
public partial class WebForm1 : System.Web.UI.Page
{
SqlConnection cnn = new SqlConnection("Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
cnn.Open();
SqlCommand cmd = new SqlCommand("SELECT FirstName FROM Employees", cnn);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
Urunler.InnerHtml += "<li>" + dr.GetString(0) + "</li>";
}
}
cnn.Close();
}
}
}
}
最佳答案
如果我没猜错的话,您正在寻找诸如 facebook/gmail 的实时通知之类的东西。
您可以通过实现多种架构来实现它:
- Ajax 池:每 N(假设 5)秒向服务器发出一次 ajax 请求,服务器将为您提供最新的评论。这是最简单也是最重的方法。有了一点流量,就不会花费大量时间来用这么多不必要的请求淹没您的服务器,因为即使什么也没有发生,您也会执行请求。
- Web Socket:您可以使用socket.io 并打开一个套接字将更新转发给所有客户端。这是解决该问题的常用方法。也是一件俏皮的事。您可以使用this答案来应对这种方法。
- 反向 Ajax/Comet:最后一个是最难的。 Facebook 使用这种架构,并且由于他们正在处理一些高流量 (:p),我们可以假设该架构具有扩展能力。您可以通过this通过视频了解反向 ajax 或 comet 方法。这个so answer帮助您了解它。
更新: 这个article似乎通过不同的技术来实现你的目标。这可能会有所帮助。
关于javascript - jQuery AJAX 检测幻灯片上/下运动中的数据更改显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19639346/