Получается, поиск происходит при каждом обращении или обновлении DOM, и для сохранения производительности в принципе нужно каждый раз перегружать результат в массив.
YakushinIlya, ну можно попробовать ->orderBy('max(updated_at'), 'desc') и перенести его после группировки, но я что-то не пойму, выводится список аккаунтов или заявок? название модели support что-то неоднозначное какое-то. Если аккаунтов - то как раз через join, если заявок - то непонятен смысл группировки.
Это что, тестовое задание такое? В реальной жизни без двух колонок числового типа будет больно. Ну а вообще - комбинация POSITION(substr IN str) LEFT(str,len) RIGHT(str,len) LENGTH(str) и CONVERT(expression,type)
Дима Турков, как будто бы директивы как-то по другому работают. Ну и опять же - задержка между появлением разных элементов списка без общей очереди не реализуется, даже если её завернуть во что-то.
Павел Клешнин, это ж совсем другое. Тут нужно привязать класс элемента к флагу в данных. В событии, определяющем положение элемента во вьюпорте - устанавливать этот флаг. Для задержки - можно не напрямую устанавливать флаг, а заполнять массив-очередь и запускать обработчик (если он еще не запущен, т.е. если очередь до этого была пустая), который устанавливает флаг у самого старого элемента, ждет пол секунды, устанавливает флаг у следующего, пока очередь не опустеет. После чего он завершает свою работу.
DOMDocument::saveHTML
а неDOMDocument::save
. А htmlspecialchars там не нужен.