2010-12-03 3 views
1

Я хочу показать комментарии пользователей в сетке (достаточно просто), но я хочу показать новые записи по мере их поступления. Теоретически пользователь остается на этой странице некоторое время, добавляя свои собственные комментарии и просматривая другие, когда они входят.Лучший способ показать «живые» комментарии

Он очень похож на окно чата с несколькими пользователями, делающими комментарии, хотя я этого не ожидаю чтобы быть таким же активным, как один (я ожидаю, что это будет примерно так же периодически обновляться, как стена Facebook)

Я подумал: - jQuery + AJAX + Таймер?
- Веб-гнезда. Готовы ли веб-сокеты к прайм-тайм? А можно ли использовать веб-сокеты с помощью ASP.NET + IIS?

Я ищу решение, которое является элегантным, чистым, быстрым (низкая пропускная способность, только загружайте новые комментарии, если это возможно, выбирая старые) и не настолько эзотеричны на платформе ASP.NET/IIS .. Не уверен, как это сделать, любезно прося о помощи.

Спасибо!

PS Я пробовал искать в системе комментариев «показать новые записи» «чат-системы», но не смог достичь лучших результатов, которые я искал.

ответ

0

Попробуйте

var interval=2; // on page load

Аякса синхронизируется с сервером каждые 2 секунды и на mouse || keyboard случае сброса интервал 2 и каждые 10 Аякса вызовы увеличивают интервал обновления на 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> 

Используйте message.aspx для записи новых сообщений в базу данных и запрос для новых записей, чтобы добавить в ГЗС дел.

Смежные вопросы