while ($data[1] <= $id) { }
Без icms при чистом выполнении кода сервер спокойно ждет своего момента. В рамках icms сервер виснет.
while ($data[1] <= $id) { }
Видимо запрос выполняется не асинхронный. Попробуйте в $.post параметром указать async:true. Или я просто не понял чего вы хотите и что не получается)через js отправляю post запрос к экшену. И пока ответ не получен, другие функции не выполняются, страницы не перезагружаются, и т.д. в итоге получаем 500 т.к. не дождались.
while (1 <= 2) { $n++; if($n==20) break; }
так и должно быть. в рамках сессии именно так и будет.Пока время не пройдет не получится.
если нажмете стоп в браузере то перейдете.А в это время попробуйте перейти на другую страницу.
Значит запросы происходят в разных сессиях.Далее либо получаю ответ, либо так и дождавшись ответа через 40 сек снова отправляю через этот же js новый запрос чтобы не получить ответ что превышено ожидание ответа сервера. Причем в ожидании ответа можно снова и снова делать новые запросы.
не в смысле что это за конструкция, а в смысле зачем так делаете?$data = unpack('I', shmop_read($memory, 0, 4));
соединение так отвалится по таймауту в любом случае — не php, так apache. Хотите реалтайм, используйте сокеты или классический периодический опрос сервера. Или вовсе node.jsБез icms при чистом выполнении кода сервер спокойно ждет своего момента. В рамках icms сервер виснет.
вот и вопрос, ведь без icms если чистый скрипт запустить, то ничего не виснет и никто никого не ждет. это обусловлено icms?так и должно быть. в рамках сессии именно так и будет.
нет, так сразу и не перейдет. висит.если нажмете стоп в браузере то перейдете.
На эту тему есть директива php — ignore_user_abort
пытаюсь сократить количество запросов к БД заменив на long pollingа в смысле зачем так делаете?
поэтому не дожидаясь таймаута, скрипт перезапускается. (что невозможно в описанном случае) и снова ждет.соединение так отвалится по таймауту в любом случае — не php, так apache
так что же все так производительнее на ваш взгляд? запросы каждые 3 секунды от каждого пользователя? или long polling?классический периодический опрос сервера
а вы в своем скрипте сессию стартуете? значит работает прерывание запроса.вот и вопрос, ведь без icms если чистый скрипт запустить, то ничего не виснет и никто никого не ждет. это обусловлено icms?
обновите зависшую страницу, нажмите стоп и все "отвиснет". После этого перейдете по ссылкам спокойно.нет, так сразу и не перейдет. висит.
выполняется новый запрос из js, а тот продолжает висеть. И, вероятно, тот предыдущий так и остается висеть, дожидаясь таймаута. Т.е.поэтому не дожидаясь таймаута, скрипт перезапускается. (что невозможно в описанном случае) и снова ждет.
В вашем случае разницы нет имхо. Только у вас не каждые 3, а каждые 40 секунд обращения.запросы каждые 3 секунды от каждого пользователя?
node.jsтак что же все так производительнее на ваш взгляд?
if (window.stop !== undefined) { window.stop(); } else if (document.execCommand !== undefined) { document.execCommand("Stop", false); }