Результаты поиска
Введите запрос, по завершению нажмите Enter.
  • Страница 1 из 1
  • 1
Мгновенное обновление на php + JS
Отправлено 11.05.2012 - 12:591
Бывалый
321 сообщениий
Мужчина
Вот выкладываю скрипт, как сделать мгн. обновление на UCOZ. Потребление трафика минимальное, UCOZ не банит, мгн. запрос\ответ
В папке php создаём папку evstream и в файле index.php пишем:
Code
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

function sendMsg($id, $msg) {
    echo "id: $id" . PHP_EOL;
    echo "data: $msg" . PHP_EOL;
    echo PHP_EOL;
    ob_flush();
    flush();
}

$serverTime = time();
$count_user = 12; // Сколько пользователей online.   
sendMsg($serverTime, 'online_count: '. $count_user);


Заходим на любую страницу модуля (Например: Главная страница каталога файлов), туда вставляем JS скрипт:
Code
    setTimeout(function () {   
     
   var source = new EventSource('/php/evstream/index.php');
source.addEventListener('message', function(e) {
    // Пришли какие-то данные
    var feds = e.data;
    var feds = feds.split(':');
   $('#usersCount').html(feds[1]);
}, false);

source.addEventListener('open', function(e) {
    // Соединение было открыто
}, false);

source.addEventListener('error', function(e) {
    if (e.eventPhase == EventSource.CLOSED) {
      // Соединение закрыто
    }
}, false);

      }, 100);


и в любое место вставляем: <span id="usersCount"></span>

Этот пример можно переделать под любые нужды, к примеру мгн. обновление новых ЛС.
Этот скрипт может подойти для не высоко нагруженных сайтов, для высоко нагруженных систем потребуется Memcache!

Данный подход к мгн. обновлению не единственный, существует много разных способов сделать мгн. обновление: dklab realplexor, long polling, node js и мн.др.

Добавлено (11.05.2012, 12:59)
---------------------------------------------
У кого возникли вопросы, пишите)

Профиль Личное сообщение Дом. страница icq Skype
24
Отправлено 11.05.2012 - 14:042
Нет аватара
uSite Team
535 сообщений
Мужчина
Скрипт-то не банит, но во-первых: сам пхп скрипт отвечает не мгновенно, во-вторых: сами данные надо так же мгновенно получать скриптом, т.е ~ каждую секунду получать страницу онлайн юзеров, чтобы узнать есть ли новые и потом делать событие, и вот тут уже будут проблемы с банами, ну и в-третьих: я думаю что данная технология не поддерживается в ИЕ(что-то интуиция подсказывает)

Впрочем весьма похвально, можешь несколько скриптов написать с использованием данной технологии или других - получишь группу Coder.
Профиль Личное сообщение Дом. страница icq Skype
114
Отправлено 11.05.2012 - 14:533
Нет аватара
uSite Team
535 сообщений
Мужчина
И да, есть ещё socket io
Профиль Личное сообщение Дом. страница icq Skype
114
Отправлено 11.05.2012 - 14:534
Нет аватара
Бывалый
1828 сообщений
Мужчина
Quote (jQuery)
я думаю что данная технология не поддерживается в ИЕ

С чего ты взял? Для IE php и js другие?
Профиль Личное сообщение Дом. страница icq Skype
78
Отправлено 11.05.2012 - 16:235
Бывалый
321 сообщениий
Мужчина
jQuery, ok , что-нибудь напишу

Добавлено (11.05.2012, 16:23)
---------------------------------------------
Moool13, данная технология только для WebKit браузеров

Профиль Личное сообщение Дом. страница icq Skype
24
Отправлено 11.05.2012 - 17:146
Нет аватара
Бывалый
1828 сообщений
Мужчина
Quote (faforty)
Moool13, данная технология только для WebKit браузеров

В js - мб, но php для всех един
Профиль Личное сообщение Дом. страница icq Skype
78
Отправлено 11.05.2012 - 18:227
Нет аватара
Coder
627 сообщений
Мужчина
faforty, знакомая статья уже где-то видел...
-----
тут
Профиль Личное сообщение Дом. страница icq Skype
66
Отправлено 11.05.2012 - 20:398
Нет аватара
Coder
701 сообщениий
Мужчина
Moool13, Тут речь не о php, а о технологии передачи запросов
Профиль Личное сообщение Дом. страница icq Skype
66
  • Страница 1 из 1
  • 1
Поиск:
uSite.su © 2010-2024
Все права защищены.
Многогранность и сверхспособности сообщества uCoz заставляют задуматься даже самые стойкие умы веб-программирования, ведь лишь uSite способен предоставить ответы на самые сложные вопросы uCoz.
01RSS
Хостинг от uCozПользовательское соглашение и прочая информация