Shedko Denis

Shedko Denis

С нами с 23 декабря 2020; Место в рейтинге пользователей: #167
Shedko Denis
14 июня 2022, 22:15
0


marketplace.datastrg.ру

Не отдает ничего, нет даже 200 ответа по этим ссылкам, надо с ним разбираться. Может запрещен hot-linking.
Тогда phumb в помощь, на некоторых хостингах сам скачает рисунок и к себе положит.
Shedko Denis
09 июня 2022, 22:04
0
Эм…
Ширина 320 — старые телефоны, но да надо принимать в расчет (это и просто дешевые телефоны, но это клиенты).
400, 470 — это что?

Зачем себе так усложнять жизнь?
Делаем 700 px (если в мобиле в один ряд, а на планшете в 2 ряда картинки) и забываем про все. Ширина 700 была выбрана путем создания многих сайтов и анализом ошибок конкурентов, когда те выбирали что-то вроде 500px и бутстрап калечил картинку (не на всю ширину показывал) на телефонах.

<img src="image.jpg" loading="lazy" alt="..." />
Решит все проблемы, и PageSpeed и реальную загрузку по тому же PageSpeed, результаты в «полях» — все равно пока картинка не видна — не грузится. А сервис webpagetest поможет понять как оно на мобиле все грузится.

ИМХО, не раз видел реализацию через picture, но не разу не понимал чем она лучше loading=«lazy» (да давно понял что удобство для пауков и пользователей разные вещи. В этом случае пауки важнее)
Shedko Denis
09 июня 2022, 20:40
0
<base href="https://site.by/"
Содержит ли закрывающий "/"?

или прописан ли в ссылке на
«template/js/lazysizes.min.js»
открывающий "/"
"/template/js/lazysizes.min.js"
без него «агенту» надо искать в «папке» документа, а не с корня.
Shedko Denis
08 июня 2022, 22:35
0
дурацкий вариант, но или дату+время добавлять с секундами в URI (чтоб меньше была вероятность попасть на тот же URI, НО это если не важен URI и добавлять в конец )

$today = date("Y-m-d");
$time = date("H:i");
Но, может не совсем понимаю, что вам нужно.
Shedko Denis
08 июня 2022, 22:11
0
Может не совсем понял, НО зачем это делать при загрузке?
НЕ проще в tpl поменять вывод на с watermark при помощи pthumb?

[[pthumb? &input=`[[+image_absolute]]` &options=`w=800&h=600&zc=1&fltr[]=wmi|/img/wm.png|C|30|0|0|0`]]
где "/img/wm.png" это WM.

Т.е. при отдаче страницы будут отдаваться рисунки с ватермаркой. Плюс ее всегда можно поменять и MODX сам все поменяет.
Shedko Denis
28 декабря 2021, 19:24
0
Способ хороший, но только от начинающих «конкурентов».

Хватает утилит, которые обойдут эту проверку, т.к. содержат скрытое окно хрома и там «елозят» мышкой. Но от простых атак — да пройдет. Даже капчу можно за копейки в автоматическом режиме разбирать.

От «не простых» помогало только псевдослучайная смена разметки формы, смена классов в псевдослучайном порядке, смена текста и т.п.

С reCAPTCHA не имел дело, может это решение для небольших проектов лучшее.
Shedko Denis
28 декабря 2021, 19:08
+1
Да в head
<style>
тут css
</style>
Пробывали и критичный css и весь вставлять. По итогу — на одном сайте в теле только критичный, на другом весь. Почему так — PageSpeed показал что одному лучше так, а другому не так )

Preload
<link rel="preload" href="/css/minifyx-cache/styles_9898e3980c.min.css" as="style" type="text/css" >
<link rel="preload" as="image" href="/webp/img/top-bg.jpg.webp" />
<link rel="preload" as="image" href="/webp/img/action-novo2.jpg.webp" />
На сайте грузится не критичный css и две картинки, которые будут на первом экране, чтобы первая отрисовка по PageSpeed была лучше. Да и «waterfall» загрузки получается более равномерным, т.е. эти 3 ресурса начинают грузиться в процессе загрузки html-страницы, а не после ее полного разбора, а это у нас давало ускорение на 300 мс.

preload
говорит браузеру как можно скорее загрузить и кэшировать ресурс (например, скрипт или таблицу стилей). Это полезно, когда ресурс понадобится через несколько секунд после загрузки страницы — и вы хотите ускорить процесс.
Браузер ничего не делает с ресурсом после загрузки. Скрипты не выполняются, таблицы стилей не применяются. Ресурс просто кэшируется и немедленно предоставляется по запросу.
Shedko Denis
28 декабря 2021, 01:38
0


Еще один сайт как пример
Shedko Denis
28 декабря 2021, 01:23
0
Забейте на логику, понимаю что JS должен быть общим для сайта + включения.

Давно стали включать CSS + JS в код страницы. PageSpeed доволен, показывает хорошие результаты в поле, а не в Lighthouse в мобилке:


+ Автозамена JGP/PNG на wepb
+ минификация html
+ preload
+ lazy loading (по гуглу, а не плагин)

из изначальных 50 запросов осталось около 10 ( www.webpagetest.org/ ) и то 2 на статистику (отложенную по клику, скроллингу и т.д.)
Shedko Denis
20 декабря 2021, 20:01
0
ИМХО, для начала откройте в другом браузере. И если там не будет такой ошибки — что почти 99,99%, то загрузите сайт без кэша.

Чтобы просто перезагрузить страницу без использования старого кэша необходимо нажать на клавиатуре CTRL+F5 или CTRL+SHIFT+R.
Бывало такое на одном из пк, почему именно на нем — не выяснили.
Shedko Denis
06 декабря 2021, 18:54
1
+1
Да.

Но когда страниц уже более 2 тыс., чанков и снипеттов за 300 именно этот плагин решение как «Поставил и забыл — оно все работает само» и ничего не надо переписывать и следить за слетевшим css.
picture не устроил тем, то надо было очень много чего переписать. А у нас работают «ленивые» люди, которые ищут простые пути, а не работу на многие человеко-часы.
Shedko Denis
03 декабря 2021, 19:50
1
0
Тут дело в том, что плагин САМ смотрит ответы и принимает решение, что можно отдать страницу с webp или отдать с обычными форматами (той же iOS).

И ничего придумывать не надо.
Shedko Denis
15 августа 2021, 14:33
0
плохая идея держать лог ошибок в открытом доступе.
Эм… не понял где ошибка. Видимо не все понимаю.

А встроенный «лог» слишком куцый — не видно в каком документе ошибка, особенно если их за 2K
Shedko Denis
14 августа 2021, 17:38
0
Видимо плохо пояснил. Искал причины ошибок «Чанк не найден» — поправил один файл ядра, чтоб понимать в каком документе-ID эта ошибка находится (да нельзя яро менять, но когда сильно нужно — придется — \core\model\modx\error\moderrorhandler.class.php) иначе бы не нашел среди более 2тыс. документов в каких допущены ошибки.

А там были ошибки 2 видов:
1. вместо кавычек MODx ` были '
2. SEO-шники забили текст в *longtite — [_[что-то там]] — срабатывал парсер (разумеется между [ небыло _(подчеркивания)

А связь в том, что подправив moderrorhandler.class.php — minishop перестал работать, т.к. пытался как обычно выдать свой PHP warning, а стопорился на строке в обработке ошибок — как понимаю не отрабатывало
$modx->resource->get('id')
Shedko Denis
14 августа 2021, 17:25
0
по пути: /assets/components/minishop2/error_log
у miniShop2 лежит свой лог ошибок.
Указал на лог-файл, в котором нашел ошибки. Ничего специально не менял. Видимо что-то так отработало.
Тогда что это? )
Shedko Denis
13 августа 2021, 21:15
0
про «Контакты»

<input required="" data-required="true" type="checkbox" placeholder="Телефон" name="" id="" class="mod_tm_ajax_contact_form_text hasTooltip error" title="" data-original-title="Необходимо согласиться" aria-required="true">
Добавим required="" data-required=«true» и без отмеченного чек-бокса форма не уйдет.

И не мешало бы не просто выводитьThis field is required., а описывать какое поле не заполнено.
А там это все легко — у каждого инпута есть свой mark — просто замените текст.
<mark><label id="-error" class="error" style="display: block;" for="">This field is required.</label></mark>
Поиск
Так тамм же какой-то скрипт с чужого сайта не подтягивается и отдает 404 ошибку.
Shedko Denis
12 августа 2021, 15:42
1
+1
docs.modx.pro/komponentyi/pdotools/snippetyi/pdopage
По умолчанию pdoPage принимает все параметры pdoTools
т.е.
[[pdoPage?
    &element=`msProducts` 
    &parents=`50` 
    &tpl=`tpl.msProducts.row.Дилеры` 
    &tplOdd=`tpl.msProducts.row.БезЦены` 
    &limit=`250`
    &sortby=`{"menuindex":"asc"}
` ]]
tplOdd + tpl — работает.

Т.е. смотрим документацию

Нас интересуют эти шаблоны:
&tplFirst Имя чанка для первого ресурса в результатах.
&tplLast Имя чанка для последнего ресурса в результатах.
&tplOdd Имя чанка для каждого чётного ресурса (хоть «odd» значит «нечётный», работает для чётных ресурсов).
&tpl_N Имя чанка для N-го ресурса, например, &tpl_4=`tpl4th` установит шаблон для 4-го ресурса.
&tpl_nN Имя чанка для каждого N-го ресурса, например, &tpl_n4=`tplEvery4th` будет применено к каждому 4-му ресурсу.
Вроде как на все Ваши потребности хватает встроенных условий.
Shedko Denis
03 августа 2021, 18:37
0
По сайту (кроме чанков) феном выключен (о чем не писал в вопросе).
В выше приведенном примере вызов через сниппет.

Или я чего не понимаю?
Shedko Denis
03 августа 2021, 18:04
0
)) да. Такое очевидно решение.
Спасибо.

Изменил сниппет на

<?php
$js  = file_get_contents($file, FILE_USE_INCLUDE_PATH); 
$js2 = str_ireplace ("[[", "[ [ " , $js); 
return  $js2;
все. код вставляется без изменений.
Осталось только с JS разобраться.