2010-12-03 5 views
1

ユーザーのコメントをグリッドに表示したいのですが(簡単に)、新しいレコードが表示されるようにしたいと思います。理論的には、ユーザーはこのページにしばらく滞在して、自分のコメントを追加し、他の人の写真を見ることができます。"ライブ"コメントを表示する最善の方法

チャットウィンドウのように動作します(私はそれがFacebook壁のように断続的に更新されると期待しています)

私は考えました: - jQuery + AJAX + Timer?
- ウェブソケット。ウェブソケットはプライムタイムに対応していますか?また、Web +ソケットはASP.NET + IISで実装できますか?

私は、エレガントでクリーンで高速(低帯域幅、可能であれば新しいコメントを読み込み、古いものをポップする)のソリューションを探していますが、ASP.NET/IISプラットフォームではそれほど難解ではありません。あなたの助けを親切に要求して、これについてどうやって行くのかわからない。

ありがとうございます!

PS 私は "コメントシステム" "新しいレコードを表示" "チャットシステム"で検索しようとしましたが、私が求めていた結果をかなり打つことができませんでした。

答えて

0

この

var interval=2; // on page load

アヤックス2秒ごとに、サーバーとの同期とmouse || keyboardイベントを2に間隔をリセットし、すべての10回のAjax呼び出しが1秒でリフレッシュ間隔を長くしてみてください。この方法で、サーバーの負荷を制御できます。クライアントとサーバーの帯域幅を節約します。

これらの値は、あなたのニーズに従って他

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> 

のmsg div要素に追加する新しいレコードのデータベースとクエリに新しいメッセージを記録するためにmessage.aspxを使用してください。

関連する問題