Антон Шаманов: не знал :)
и понятно почему не знал
WebKit doesn't support DOMAttrModified
ie8 does not support
и уже deprecated. зачем это использовать?
Neocaridina: ок если разобраться и погуглить
эта штука устанавливается веб сервером до php
например апачем
RewriteEngine on
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
я ж говорю, почему бы просто не юзать заголовки и не морочить себе голову хренью с левых сайтов? :)
Max Gulturyan: как же не решают. Вы можете любой хендлер скормить poll и делать что-нибудь ещё, но в целом это мало когда нужно.
Promise в пхп используется для ветвления вашей логики. Реализация, так сказать state-machine.
Но и в js промисы нужны только там, где у вас куча несвязанных событий (тобишь в интерфейсе). А в случае с backend js та же фигня выходит. Вам всё равно надо ждать ответ базы, например.
С просимами ещё можно подготовить шаблоны и потом после положительного решения делать вставку. Небольшая экономия.
Иногда это просто меинстрим, иногда необходимость. Зависит от решений, используемых внутри сайта.
Max Gulturyan: а вы путаете асинхронность с многопоточностью?
какие есть события, которые надо ждать:
- ответ базы
- получение данных в потоке
больше в пхп нет таких вещей, которые можно не ждать
1. вы можете сделать тяжёлый запрос и не ждать ответа. используя mysqli и poll. пхп изначально не был заточен под события, с помощью которых реализовывается асинхронность.
мне кажется, вы не совсем понимаете как работает асинхронность в js и как она внутри себя ведёт. что такое блокирующие блоки и т.д.
В js, в отличие от пхп, выполняется всего один поток на все (!) соединения. В пхп на каждое соединение свой поток (грубо говоря) и ему нет смысла переключаться на другой контекст.
2. Асинхронность — это способ, при котором время ожидания тратиться на выполнение задач из стека задач, но при возникновении события, текущая задача прерывается и поток возвращается к предыдущей, которое стояло в ожидании. И так работает js. Вроде бы асинхронно, но задачи всё равно выполняются одним потоком, а значит одна за другой, а не параллельно. В пхп же можно сделать трушную асинхронность с параллельным выполнением задач, всё как вы сказали использую pthread, fork и epoll.
В пхп да, сложнее релизовать, потому что не нативно, хотя к этому двигается, хоть и очень медленно (я про появление pthread и poll — это нативные системные инструмены для параллельности и асинхронности).
Mike Ro: type juggling очень опасная штука.
alertParams['type'].match(/\bsystem\b/) не может не возвращать массив, потому что по документации оно возвращает массив. прочитайте внимательней
а сравнение массива со строкой ["system"] == "system" здесь работает, а там не работет.
сейчас у вас ["system"] а будет ["system","1234"] и уже всё