Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
27 марта 2019, 11:26
+2
Рефакторинг от Джейсона
Судя по его комментариям, он пришёл ровно к тем же решениям, что и я год назад. Но теперь, зато, сам — и не нужно разбирать большой непонятный PR. Ну, хоть так.

P.S. Из дайджеста вырезаны ссылки на платные компоненты, чтобы не нарушать правила сайтов, где публикуется дайджест. Где их найти, вы сами прекрасно знаете.
Ага, справа вверху от заметки =)
Василий Наумкин
26 марта 2019, 17:38
0
Конечно, старичкам трудно осваивать что-то новое, им бы внуков понянчить.

На мой взгляд и вопрос с кешированием файлов стилей и скриптов также чрезмерно раздут. Прочел и ужаснулся, люди целые программы разрабатывают для этого.
Внезапно, программисты любят писать программы и автоматизировать свой труд!

Во время разработки сайта это кеширование вообще не имеет смысла, достаточно нажать в браузере ctrl+f5 и весь кеш браузера слетел.
А еще лучше использовать webpack-dev-server, которому ничего и нажимать не надо, он в реальном времени отображает все изменения из IDE.

На продакшине даже если и пришлось вносить какие то доработку в верстку или стили
То просто выгрузил все изменения из IDE и запустил npm run build. Чтобы не ошибиться и не забыть что-то нажать в админке.

Еще недавно я так же вручную менял версию, но всё время выходило вот так:

И теперь это уже автоматизировано.

В 95 процентов случаев веб разработчики делают довольно простые проекты
Но бывает и наоборот, когда разработчик продолжает развиваться и делает всё более сложные проекты.
Василий Наумкин
26 марта 2019, 17:20
+1
Просто обнови pdoTools еще раз
Василий Наумкин
26 марта 2019, 06:19
+2
Насколько я понимаю, посмотреть время изменения всегда будет быстрее, так как оно пишется в inode файловой системы, для этого даже не нужно читать сам файл.

Но и у файла можно читать не всё содержимое, а первые 100 байт, например. В любом случае, речь идёт о микросекундах.
Василий Наумкин
25 марта 2019, 12:25
+4
Так можно, конечно, но сниппет будет дёргаться и проверять файл на каждой странице — нафига это надо? Вариант с системной настройкой как-бы кэширует эту работу.

В принципе, можно вызывать и сниппет кэшированным
<link rel="stylesheet" href="[[version?input=`public/template/css/styles.css`]]" type="text/css"/>
<script src="[[version?input=`public/template/js/scripts.min.js`]]" type="text/javascript"></script>
Систаксис MODX пропишет результат работы прямо в кэш страницы, и удалит при общем сбросе кэша.

Всё работает, все довольны.
Василий Наумкин
25 марта 2019, 11:35
+3
Только сейчас увидел
$today = date("d-m-Y");
$today = trim(preg_replace('/[^0-9]+/', ' ', $today));
$today = str_replace(' ', '', $today);

Замени на
$today = date("dmY");

Это ж как нужно не читать документацию, чтобы такие велосипеды городить?!
Василий Наумкин
25 марта 2019, 11:05
+1
Клиенты кэш редко сбрасывают, если вообще сбрасывают.
Ты же вроде для всех пишешь, а не только для себя.
Решение должно быть универсальным.

Плюс, в моем варианте дата указывается в формате день/месяц/год.
Это, как раз-таки, минус. Потому что посетитель сможет увидеть только одну правку файлов в день.
Василий Наумкин
25 марта 2019, 10:56
0
Еще один любитель обновляться, не читая анонсы и changelog. Зачем вы это вообще делаете, если вас не интересует, что именно изменилось?
&noPreciseMSFilters=`1`
modx.pro/news/17738
Василий Наумкин
25 марта 2019, 10:53
0
То есть, даже если ничего не поменялось, а просто сбросили кэш — то юзер перекачивает файлы заново? Как-то это не очень логично.
Лучше уж тогда своим PHP скриптом вставлять в настройку не текущую дату, а дату изменения файлов, или считать их хэш. Чтобы все файлы качались только когда хоть один из них изменился.

Ну а совсем уж идеальный вариант — собирать скрипты и стили через npm и уже там добавлять хэш каждому файлу, автоматически. Чтобы юзер качал только изменённые, а не все.
Василий Наумкин
25 марта 2019, 07:12
0
Вроде да, только оно.

Но мне это решение показалось тяжеловатым.
Василий Наумкин
25 марта 2019, 07:09
0
Вот зачем ты вообще обновляешься, если не читаешь ни анонсов, ни changelog? Просто, чтобы желтая кнопочка в админке не горела?

modx.pro/news/17738
Василий Наумкин
25 марта 2019, 06:31
-1
По всей видимости, элитный браузер Safari не может прожевать печенек суммой более 4 килобайт.


Увы, это решение пользователям Safari подойдёт только при строжайшем контроле, сколько именно данных пишется в сессию.
Василий Наумкин
24 марта 2019, 17:01
0
Ну а MODX юзера всё равно будет из БД грузить, не важно, как сессии работают.

Так что, тут можно не переживать.
Василий Наумкин
24 марта 2019, 16:25
0
У него же есть время выдачи. Просто считаешь невалидными все токены юзера, выданные до такой-то даты. Саму дату можно в профиль юзера прописать, который на сервере.

Банится юзер так же на сервере. Office, например, автоматически проверяет, не заблокирован ли юзер, и если что выкидывает его через logout процессор.
Василий Наумкин
24 марта 2019, 15:59
0
Только если ты называешь ошибкой систему кэширования ресурсов MODX.
Василий Наумкин
23 марта 2019, 17:15
0
Добавь в начало страницы
{$_modx->lexicon->load('core:default')}
Василий Наумкин
22 марта 2019, 11:32
+1
Одинарные же не причинят никакого вреда?
Евгений уже не раз доказывал, что при должной фантазии — причинят. Типа напихать пробелов там между ними, или еще чего, чтобы парсер на последней итерации всё соединил и запустил.

В общем, я лучше перестрахуюсь, чем буду выводить красивые скобочки.
Василий Наумкин
22 марта 2019, 11:09
+3
Правильно, всё-таки, проблемы решать — а не просто удалять сообщения о них.
Василий Наумкин
22 марта 2019, 09:46
0
Значит, помочь тебе не получится.