我想在网格中显示用户评论(很容易)但我想在他们进来时显示新记录。理论上,用户会在此页面上停留一段时间,添加他们自己的评论并在他们进入时查看其他人。
它的行为非常像一个聊天窗口,有多个用户发表评论,但我不认为它会像一个人那样活跃(我希望它会像Facebook墙一样间歇性地更新)
我考虑过:
- jQuery + AJAX + Timer?
- Web套接字。 Web套接字是否准备好迎接黄金时段? Web套接字可以用ASP.NET + IIS实现吗?
我正在寻找一个优雅,干净,快速的解决方案(低带宽;只在可能的情况下加载新的注释,弹出旧的注释)并且在ASP.NET / IIS平台上不那么深奥......不知道怎么回事,请求你的帮助。
谢谢!
PS 我尝试搜索“评论系统”“显示新记录”“聊天系统”,但无法完全达到我所寻求的结果。
答案 0 :(得分:1)
其他人可能有一个更好的例子,但我正在玩一个AJAX聊天网络应用程序。这是我使用ASP.net和JQuery做的。
<script type="text/javascript">
$(document).ready(function () {
$("#btnSend").click(function () {
addMessage();
});
return false;
});
function refreshChat() {
$.get("messages.aspx", function (data) {
$("#chatbox").empty();
$("#chatbox").prepend(data);
var $t = $("#chatbox"); //whatever the selector you use.
$t.animate({ scrollTop: $t.attr("scrollHeight") }, 3000);
});
setTimeout(refreshChat, 5000);
}
function addMessage() {
$.get("messages.aspx", { usr: $("#usr").val(), msg: $("#msg").val() });
$("#msg").val('');
$("#msg").focus();
}
</script>
HTML:
<div id="input">
username:
<input type="text" name="usr" id="usr" /><br />
message:
<textarea rows="3" id="msg" name="msg"></textarea>
<br />
<input type="button" id="btnSend" name="btnSend" value="Send" />
</div>
<div id="chatbox" style="height: 300px; overflow: scroll;">
</div>
使用message.aspx将新消息记录到数据库中,并查询要添加到msg div的新记录。
答案 1 :(得分:0)
试试这个
var interval=2; // on page load
ajax每2秒与服务器同步,mouse || keyboard
事件重置间隔为2,每10次ajax调用将刷新间隔增加1秒。这样您就可以控制服务器负载。并将为客户端和服务器节省带宽。
可根据您的需要调整这些值