Цитата (MiksIr @ 16.08.2013 - 05:37) |
и всякие $_SESSION['x']++ могут начать... вести себя не так, как ожидаемо |
Не так как ожидаемо, может повести себя неверно построенная асинхронность, но никак не $_SESSION['x']++. Вероятно у вас пробел в данной области знаний.
Мой вам совет: поковыряйте на досуге этот механизм и пока сами фундаментально не разберетесь - не учите других.
Если же вы со мной не согласны, приведите мне пример который будет глючить и я исправлю его специально для вас. Только пожалуйста без фреймворков и библиотек, процедурный стиль сэкономит кучу моего времени.
Цитата (MiksIr @ 18.08.2013 - 05:55) |
Ну исправляйте $_SESSION['x']++ в случае хранения сессий в мемкеше. |
Оператор ++ работает корректно, как и было задуманно разработчиками языка, а своей фразой "исправляйте", вы бросаете вызов не мне, а им, обвиняя их в некорректной работе спроектированных вами алгоритмов.
Цитата (MiksIr @ 18.08.2013 - 05:55) |
И постарайтесь перечитывать то, что вы написали. Пока такое впечатление, что вы просто умных слов нахватались, а связать в мысль - не получается. |
Ну тогда дорогой мой подучите русский язык, раз вам непонятны мои изречения. Ну или перечитайте несколько раз, не всегда пишу как того требует морфология, согласен.
Я никогда не принимаю участие в дисскуссиях, в которых не соображаю. А если и принимаю, то пишу вопросительные комментарии а не утвердительные.
И что вы все время сетуете на непонимание? При чем уже не в первой теме. Давайте тогда общаться кодом, это самый верный способ выяснить истину. Мы же программисты. Или вы так, потрепаться зашли?
Заморочки с сессией у вас, не у меня. Я лишь хотел помочь разобраться в проблемном месте, безо всяких подвохов. Если вам это не нужно, то мне тем более.
И я имею полное право оставаться анонимом, пока это позволяет функциональность данного ресурса. Ваши претензии, пожелания и предложения касательно данной функциональности просьба направлять администрации форума.
sergeiss
24.08.2013 - 16:52
Прочитал "статью", прочитал тему...
Вот объясните, хоть у кого-нибудь появился вопрос о том, что изначально у автора статьи был написан неправильный код?
Зачем там делаются подряд 2 аякс-запроса? Почему их не объединили в один? Должно же быть "и ежу понятно", что даже без сессий один запрос быстрее будет об
работан, чем два. Потому что кроме передачи собственно информации (объем котором будем считать одинаковым) существует еще и передача всяких заголовков + время на передачу всего этого безобразия тоже не нулевое. Поэтому в случае одного запроса накладные расходы будут меньше.
И судя по этому коду, можно предположить, что и в других частях проекта также неоптимальное что-нибудь имеется. Но вместо оптимизации кода ищутся костыли
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (MiksIr @ 19.08.2013 - 17:17) |
У меня нет никаких заморочек с $_SESSION - я ей вообще не пользуюсь и считаю предназначенной лишь для начинающих программистов и для простых скриптов.
Если вы не осилили прочитать одну страницу форума, то специально для вас: в первой теме было предложено как вариант использовать неблокирующие хендлеры*. В этом случае мы потенциально получаем race condition, так как сессия читается при старте, и пишется в хранилище при остановке сессии (а так как этого никто не делает - то при остановке скрипта). $_SESSION['xxx']++ не приводит к записи в хранилище в момент выполнения.
Пример: два скрипта запущенные одновременно получат значение 5, сделают ++ и оба запишут 6. При том, что должно быть 7. Именно это - проблема работы с неблокирующим стораджем. |
А ведь
Guest прав на мой взгляд. Тут проблема не в блокировке сессий а в неверной архитектуре. Два
скрипта не могут одновременно
работать с одной сессией. Это возможно только при ассинхронных запросах, но тогда этим каатаклизмам подвержены данные в любых хранилищах. Допустм дв
скрипта одновременно получают данные из БД, производят вычисления и пишут обратно. Результаты одного не будут учтены другим, как не блокируй хранилище.
Если все же существует потребность запустить два
скрипта, стоит блокировать и ставить в очередь их, а вовсе не хранилище.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
sergeiss
24.08.2013 - 19:44
Цитата (MiksIr @ 24.08.2013 - 18:01) |
Причин на одновременные запросы могут быть сотни. Например, генерация картинок и JS файлов на сервере, когда браузер будет запрашивать их пачками........... |
Много слов, много эмоций по всем абзацам. Но что я сказал не было понято. Как минимум тобой.
Я не разглагольствовал о том, чтобы все запросы объединять вместе. Но делать подряд два запроса внутри одной функции? Ясно дело, что оба они будут обращаться к сессии, при ее наличии. Это аналогично тому, что делать в цикле запросы к БД и потом удивляться, что всё долго обрабатывается.
Цитата (MiksIr @ 24.08.2013 - 18:01) |
Не нужно проецировать свой 8-битный мир на всех остальных. |
Уважаю самокритичных людей
Цитата (MiksIr @ 24.08.2013 - 18:01) |
По крайней мере человек открыл для себя то, что многие "профессиональные программисты php" и не знали. |
Ты себя называешь таким программистом, который это и не знал, да?
Вообще-то, профессионалы обычно отличаются от нубов тем, что уж походили по многим граблям. И просто не делают ошибок, которые могут сделать новички.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
sergeiss
24.08.2013 - 20:41
Предупреждение устное, первое и оно же последнее.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
sergeiss
24.08.2013 - 20:52
Цитата (MiksIr @ 24.08.2013 - 20:47) |
По делу то что будет? |
По делу я написал ранее в этой теме.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.