显示“实时”评论的最佳方式

时间:2010-12-03 02:17:11

标签: asp.net ajax commenting

我想在网格中显示用户评论(很容易)但我想在他们进来时显示新记录。理论上,用户会在此页面上停留一段时间,添加他们自己的评论并在他们进入时查看其他人。

它的行为非常像一个聊天窗口,有多个用户发表评论,但我不认为它会像一个人那样活跃(我希望它会像Facebook墙一样间歇性地更新)

我考虑过:   - jQuery + AJAX + Timer?
  - Web套接字。 Web套接字是否准备好迎接黄金时段? Web套接字可以用ASP.NET + IIS实现吗?

我正在寻找一个优雅,干净,快速的解决方案(低带宽;只在可能的情况下加载新的注释,弹出旧的注释)并且在ASP.NET / IIS平台上不那么深奥......不知道怎么回事,请求你的帮助。

谢谢!

PS 我尝试搜索“评论系统”“显示新记录”“聊天系统”,但无法完全达到我所寻求的结果。

2 个答案:

答案 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秒。这样您就可以控制服务器负载。并将为客户端和服务器节省带宽。

可根据您的需要调整这些值