Постоянно запрашивать сервер через Javascript - хорошая идея? - PullRequest
5 голосов
/ 22 июня 2009

У меня есть небольшой сайт с 5-10 администраторами. Я настроил его на мониторинг того, что делает каждый администратор (добавление элементов, удаление элементов и т. Д.). У меня был список в нашей админ-панели, который показывает предыдущие 10 действий, выполненных коллективной администрацией. Сегодня я решил делать это самообновление каждые 30 секунд.

Мой вопрос прост: есть ли проблемы с этим? Я вызываю небольшой фрагмент текста с каждым запросом, и, скорее всего, запрос выполняется только на 3 или 4 компьютерах одновременно (что отражает количество одновременно зарегистрированных администраторов).

  $(document).ready(function(){
    setInterval("activity()", 30000);
  });

  function activity() {
    $("#recent_activity").load("../home/login #recent_activity .data");
  }

Производит следующее (или подобное - только с 10 строками) с каждым запросом.

<table>
  <tbody>
    <tr>
      <td><p>jsampson</p></td>
      <td><p>logged out</p></td>
      <td><p>28 minutes 27 seconds ago</p></td>
    </tr>
    <tr>
      <td><p>jdoe</p></td>
      <td><p>logged in</p></td>
      <td><p>29 minutes 45 seconds ago</p></td>
    </tr>
  </tbody>
</table>

Ответы [ 13 ]

0 голосов
/ 22 июня 2009

Как отметил altCognito, веб-трафик вряд ли будет проблемой.

Единственное, что я проверю, это проблема загрузки базы данных, необходимая для этого. То есть. если это подается запросом, выполнение которого занимает некоторое время, это вызовет проблемы. Однако в этом случае я бы рекомендовал добавить к данным некоторое кэширование или сохранить данные для этого в памяти, а не в БД (загрузка только из БД при запуске и добавление элементов в этот список в памяти сервера как они случаются).

0 голосов
/ 22 июня 2009

Я бы сказал, что это в первую очередь будет зависеть от того, насколько дорог этот запрос.

Хотя сейчас это небольшое количество пользователей, так будет всегда?

0 голосов
/ 22 июня 2009

Не думаю, что это создаст проблему.

...