2010-09-24 3 views
1

Я могу легко использовать javascript для автоматического обновления страницы каждые 10 секунд, например, но, разве это не перегружает страницу, требующую каких-либо изменений каждые 10 секунд? есть ли более эффективный способ сделать это. Некоторый орган сказал мне однажды, что есть способ, на котором клиентская сторона ожидает ответа от сервера, который отправляет его только тогда, когда он действительно имеет какое-то изменение, например, какой-то budy написал текст в чате. Это действительно целесообразно? Есть ли способ лучше?.Каков наилучший способ автоматического обновления чата pag

ответ

0

Зачем обновлять страницу чата? Почему бы просто не проверить сервер, чтобы узнать, есть ли новые сообщения/чаты и т. Д. Если это так, добавьте их в свой чат.

Есть таймер (SetTimeout) огонь говорят когда 5 секунд:

Быстрый псевдо-код:

function updateChat() 
{ 
    //Query a web service on the server for new text chat 
    //If successful append the chat to the chat area 

    //Call timeout again. 
    setTimeout(updateChat, 500); 
} 

Edit: Увидев у вас есть .NET Я полагаю, вы используете ASP.NET. Вот ссылка на программу демо-чат:

http://trappedinhoth.blogspot.com/2009/04/ajax-jquery-chat-demo.html

+0

нормально, то будет хорошим решение, но не многие призывов ослабляющего сервера? это действительно эффективно? есть ли другой способ? –

+0

@Giancarlo Solarino ~ http://google.com/search?q=premature+optimization ... отбросьте это, бросьте, пытаясь догадаться, какая слишком большая нагрузка. Напишите это правильно, а затем посмотрите, слишком ли загружена. Для справки, серверы могут обрабатывать нагрузку, как это, для тысяч пользователей, без заметного попадания. – jcolebrand

+0

Он загружается более эффективно, чем обновление всей страницы. Это аналогичный подход к работе чата FaceBook. –

0

Вы можете применить OutputCache на стороне сервера. В этом случае серверу нужно генерировать только 1 ответ за каждые 10 секунд.

0

Вы можете попробовать использовать новую технологию WebSockets в JavaScript. Он не поддерживается во многих браузерах (в настоящее время его поддерживают только Firefox 4, Chrome 4 и Safari 5), но он позволяет подключиться к серверу, чтобы он оставался «открытым», а затем сервер мог отправить сообщение клиенту. Более подробная информация:

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