2010-12-03 34 views
1

我想在網格中顯示用戶評論(非常簡單),但是我也希望顯示新記錄。理論上,用戶在此頁面停留一段時間,添加他們自己的評論並查看其他人的評論。顯示「實時」評論的最佳方式

它的行爲非常像多個用戶發表評論的聊天窗口,但我並不期望它(我預計它會像Facebook牆一樣間歇更新)

我考慮過: - jQuery + AJAX + Timer?
- Web套接字。 Web套接字是否準備好黃金時間? Web套接字可以用ASP.NET + IIS實現嗎?

我正在尋找一個優雅,乾淨,快速的解決方案(低帶寬;只加載新的評論,如果可能的話,彈出舊的),而不是在ASP.NET/IIS平臺上如此深奧。不知道該怎麼辦,請您提供幫助。

謝謝!

PS 我試着搜索「評論系統」「顯示新記錄」「聊天系統」,但無法完全達到我尋求的結果。

回答

0

嘗試此

var interval=2; // on page load

AJAX與服務器同步用於每2秒和mouse || keyboard事件復位的時間間隔爲2和每10 AJAX調用由1秒增加的刷新間隔。這樣你就可以控制服務器負載。並會爲客戶端和服務器節省帶寬。

這些值可以進行調整,按您的需求

1

其他人可能有一個更好的例子,但我是用AJAX聊天web應用程序玩耍。這是我使用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錄製新郵件到數據庫和查詢新記錄添加到味精股利。