Этот сайт не наркоманов. Это сайт программистов. Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 25 Май, 2012, 07:32:42

Страниц: [1] 2
Печать
Автор Тема: Обновление данных на странице, если есть обновление в бд  (Прочитано 313 раз)
0 Пользователей и 1 Гость смотрят эту тему.
iphine5g    ↓ 
04 Декабрь, 2011, 08:24:30
НЕ ХУЕТА! ХУЕТА!


Карма: -2
Сообщений: 224
Сила слова: -0.89

Допусти есть у нас страница, на которую данные подгружаются динамично по средствам ajax. Но вся соль в том что изменения вносятся не текущим пользователем, а другими.
 
То есть пользователь должен зайти на страницу и получать без перезагрузки страницы данные которые внес другой пользователь. К примеру кто знаком с социальной сетью вконтакте видело как там приходят сообщения - как в айсикью.
Я конечно к примеру могу задать получения данных на какое либо событие, к примеру (образно) движение мыши) но это будет нехило нагружать. Слишком много будет запросов. Так вот, как такое делается вообще? Как мне сделать запрос если данные были внесены новые ?
Записан
Ivan    ↓ 
04 Декабрь, 2011, 08:35:30 , спустя 11 минут
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 27
Сообщений: 1366
Сила слова: 1.98

Long polling
Спустя 19 секунд добавил
Только сразу говорю - на пхп это не реализовать
Записан

Абырвалг    ↓ 
04 Декабрь, 2011, 09:24:02 , спустя 48 минут 32 секунды
НЕ ХУЕТА! ХУЕТА!

PHP Infected, симфоеб, маконенавистник
Группа: Джедаи

Карма: 80
Сообщений: 6096
Сила слова: 1.31

на пхп это не реализовать
phpdaemon.net, не?
Записан

PHP does the job since 1995
Пожалуйста, не надо делать двойные клики по ссылкам. Это создает избыточную нагрузку на сервер
Faster    ↓ 
04 Декабрь, 2011, 10:22:42 , спустя 58 минут 40 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 10
Сообщений: 954
Сила слова: 1.05

setTimeOut()
и функция которая чекает обновления
раз в 5 секунд к примеру
Записан

воспитываю дочь. С домами и деревьями  - не приставать.
iphine5g    ↓ 
04 Декабрь, 2011, 11:09:18 , спустя 46 минут 36 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: -2
Сообщений: 224
Сила слова: -0.89


setTimeOut()
и функция которая чекает обновления
раз в 5 секунд к примеру
не жирно?
Записан
Ivan    ↓ 
04 Декабрь, 2011, 11:14:10 , спустя 4 минуты 52 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 27
Сообщений: 1366
Сила слова: 1.98

phpdaemon.net
Не, php так устроен, что не может в асинхронность, а что за лонг запросы без асинхронности?
Спустя 1 минуту 21 секунду добавил

setTimeOut()
и функция которая чекает обновления
раз в 5 секунд к примеру

Ну во первых тогда setInterval, во вторых это плохо для сервера
Записан

Абырвалг    ↓ 
05 Декабрь, 2011, 12:11:42 , спустя 57 минут 32 секунды
НЕ ХУЕТА! ХУЕТА!

PHP Infected, симфоеб, маконенавистник
Группа: Джедаи

Карма: 80
Сообщений: 6096
Сила слова: 1.31

phpDaemon — asynchronous server-side framework of network applications implemented in PHP using famous libevent which makes possible to handle hundreds and thousands of simultaneous connections.
Спустя 2 минуты 48 секунд добавил
даже так
 
Its master process spawns a bunch of worker-processes (workers) that run your applications. Each worker doesn't block (sleep) at all, and has event-driven architecture.
Designed for highload.
Спустя 36 секунд добавил
но лично я использую nodejs
Записан

PHP does the job since 1995
Пожалуйста, не надо делать двойные клики по ссылкам. Это создает избыточную нагрузку на сервер
Ivan    ↓ 
05 Декабрь, 2011, 02:51:25 , спустя 2 часа 39 минут 43 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 27
Сообщений: 1366
Сила слова: 1.98

Как можно реализовать АСИНХРОННОСТЬ на php, если её там НЕТУ? Только ФОРКАМИ, а ты представь себе на КАЖДОГО пользователя свой ПРОЦЕСС, и еще хуже если запущу я рекурсивно опрос и задержку коннектов с твоего сервера и в итоге у тебя всё зависнет и накроется медным тазом от нехватки оперативы за одну секунду (ну может две)
Спустя 59 секунд добавил
Это я даже еще слабо сказал - по несколько процессов на каждого пользователя, ведь он может несколько вкладок открыть
Спустя 3 минуты 33 секунды добавил
Dynamic spawning workers
что и требовалось доказать - он на каждый коннект вешает воркер (т.е. делает fork() или pctnl_fork не помню как в пхп)
Спустя 2 минуты 25 секунд добавил
http://php.net/manual/en/function.pcntl-fork.php
Записан

Faster    ↓ 
05 Декабрь, 2011, 02:59:39 , спустя 8 минут 14 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 10
Сообщений: 954
Сила слова: 1.05


phpdaemon.net
Не, php так устроен, что не может в асинхронность, а что за лонг запросы без асинхронности?
Спустя 1 минуту 21 секунду добавил

setTimeOut()
и функция которая чекает обновления
раз в 5 секунд к примеру

Ну во первых тогда setInterval, во вторых это плохо для сервера
нельзя быть таким пессимистичным, или это роль гуру разлагает сознание?
Javascript

function CheckNewMessages() {
    $.post(
        'http://bla.net/action/mail',
        {
        'op' : 'new_messages'
        },
    function(data) {
        if (data.result == 'error') {
            UIAlert(data.error);
        } else {
            if (data.new_messages > 0) {
                $('#span_new_messages').html('('+data.new_messages+')');
            } else $('#span_new_messages').html(' ');
            if (data.trade_requests > 0) {
                $('#span_trade_requests').html('('+data.trade_requests+')');
            } else $('#span_trade_requests').html(' ');
        }
    },
    'json'
    );
 

    setTimeout('CheckNewMessages()', 10000);
 
}
 
CheckNewMessages() ;
 
вызов никто не мешает закешировать, тем же мемкешем, и обновлять кроном скажем для активных юзеров. да кто собрался это мутить не будет надеюсь юзать пятибаксовый виртуал
Записан

воспитываю дочь. С домами и деревьями  - не приставать.
phpdude    ↓ 
05 Декабрь, 2011, 03:00:51 , спустя 1 минуту 12 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20790
Сила слова: 1.66

Faster, и где тут у тебя Long-Pooling?)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Faster    ↓ 
05 Декабрь, 2011, 03:02:28 , спустя 1 минуту 37 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 10
Сообщений: 954
Сила слова: 1.05

я жалкий неудачник, не достойный целовать твои ноги :)
Записан

воспитываю дочь. С домами и деревьями  - не приставать.
phpdude    ↓ 
05 Декабрь, 2011, 03:13:46 , спустя 11 минут 18 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20790
Сила слова: 1.66


я жалкий неудачник, не достойный целовать твои ноги :)
тото же
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Ivan    ↓ 
05 Декабрь, 2011, 04:23:52 , спустя 1 час 10 минут 6 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 27
Сообщений: 1366
Сила слова: 1.98

вызов никто не мешает закешировать, тем же мемкешем
Что? Кого закешировать? Смысл технологии тогда? Да и как ты его собрался "кешировать мемкешем" - вызов то к серверу будет. Суть то понимаешь вообще? Или для тебя всё что сложно пониманию есть гуру-технологии?) Для твоих полтора посетителей в месяц твоя сет интервал вполне ничего так. Сет таймаут один раз срабатывает только, я тебе выше написал используй сет интервал, а то у тебя вообще бессмысленный код получается
« Последнее редактирование: 05 Декабрь, 2011, 04:23:52 от Ivan » Записан

Faster    ↓ 
05 Декабрь, 2011, 05:05:59 , спустя 42 минуты 7 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 10
Сообщений: 954
Сила слова: 1.05

ага, ты прав
Записан

воспитываю дочь. С домами и деревьями  - не приставать.
Stasovsky    ↓ 
05 Декабрь, 2011, 08:06:50 , спустя 3 часа 51 секунду
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3654
Сила слова: 1.48

мона pusher потыркать, особо не вникал, но ссылка с примером есть - http://net.tutsplus.com/tutorials/javascript-ajax/getting-real-time-with-pusher/
Записан
Страниц: [1] 2
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, artoodetoo