www.gcmsite.ru

Новости Программы PHP-скрипты Статьи Числа
Услуги Резюме Игры Автомобили Поиск

СИСТЕМНОЕ И ВЕБ-ПРОГРАММИРОВАНИЕ
компьютерная техника, игры

PHP: Анти-волновая защита чата

Очень многие чаты содержат фреймы, в которых отображаемые страницы обновляются с определенным интервалом времени. Каждое такое обноврение нагружает процессор сервера.

          /=\                1 запрос
         /   \
________/     \_____
Это пример запроса на обновление от одной страницы. Когда страниц много (в чате, например) то можно наблюдать следующую картину:
          /=\                1 запрос
         /   \
________/     \_____

          /=\                2 запрос
         /   \
________/     \_____
            /====\
           /      \
          /        \         суммарная загрузка сервера
         /          \
________/            \_____
Не трудно заметить, что одновременное обращение к серверным ресурсам заставляет сервер сильнее напрягаться, что приводит к более долгой обработке каждого скрипта в отдельности (всем по чуть-чуть).

Этот эффект нагрузки на сервер можно назвать волновым эффектом. С ним нужно бороться. Один из способов - стараться не создавать волн. Постороим анти-волновую защиту чата, написанную на php.

Обновление страниц осуществляется с помощью META тега REFRESH:

<META HTTP-EQUIV='Refresh' Content='число; URL=страница'>

Наша задача, варьировать число при каждой перезагрузке страницы.

Оптимально пользоваться формулой x = x + rand(0, x div 5); т.е. обновление страницы происходит через x, ..., x + (x div 5) секунд. Для х=10 секундам, обновление возможно через 10, 11, 12 секунд. Для х=100 секундам, обновление возможно через 100, 101, ..., 120 секунд.

Код анти-волновой защиты на php будет выглядеть так (для 100 секунд):

<?php $x=100+rand(0,20); ?>
<META HTTP-EQUIV='Refresh' Content='<?php echo x; ?>; URL=страница'>
Приятных часов программирования.


PHP — это язык программирования, основанный на использовании скриптов. Данный язык широко применяется для создания различных front-end и back-end веб-приложений. Поддерживается по-умолчанию большинством хостеров, являясь одним из лидеров среди языков программирования, предназначенных для создания динамических интерактивных сайтов.

Интересные материалы на сайте:

Автор, разработчик: Шаров Евгений   (gcmsite@yandex.ru)
(c) 2000-2020 GCM-Site - системное и веб-программирование
Цитирование материалов сайта возможно только при наличии гиперссылки