Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 2864 Просмотров
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Всем привет, интересует вопрос: как наиболее корректно проверять посредством php поддержку браузерами расширения webp у картинок?
я проверяю так

Код
<?php
if( strpos( $_SERVER['HTTP_ACCEPT'], 'image/webp' )!== false || strpos( $_SERVER['HTTP_USER_AGENT'], ' Chrome/' )!== false ) {
   $webp_support = true; // webp поддерживается
} else {
$webp_support = false; // webp не поддерживается
}
?>

проверял в Chrome, FF, Ябраузер, ИЕ10, в андроиде и в IOS. В принципе работает, но хочется быть уверенным в надежности конструкции. Не проверял в Opera.
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

SeBun

  • BanMaster
  • 4015
  • 259 / 5
  • @SeBun48
Не знаю, зачем вам это. Я сделал так (код не мой, подсмотрел):
Код
<picture>
<source type="image/webp" srcset="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-srcset="img/icons/info-icon20.webp">
<img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="img/icons/info-icon20.png" alt="domain">
</picture>
Таким образом, если браузер поддерживает webp, он его выводит. Если нет - выводит png. Не знаю, насколько такое решение грамотное, спецы, поправьте.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
SeBun, нужно для того, что для PageSpeed Insights это дает от 10 до 20 пунктов в плюс (в зависимости от количества картинок на странице), а это реально важно для ранжирования сейчас. Ваш код естественно рабочий, но во первых: не подходит для фоновых изображений, а во вторых зачем громоздить? В моем случае, если браузер поддерживает webp то ему отдается картинка picture.webp, а если нет то picture.jpg, вот рабочий пример http://h911254039.nichost.ru/tilda/
Попробуйте открыть в Chrome или лисе, и попробуйте в ИЕ. Функция проверки элементарная,
Код
<?
if($webp_support === true){
// отдадим webp
} else {
// отдадим другой любой формат, в примере jpg
}
Вопрос был в надежности проверки для всех браузеров
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

SeBun

  • BanMaster
  • 4015
  • 259 / 5
  • @SeBun48
Ваш код естественно рабочий, но во первых: не подходит для фоновых изображений, а во вторых зачем громоздить?
Я к тому, что у нас одно и то же действие выполняется разными способами. Сколько у вас будет IF в коде? Столько же, сколько и строк в случае, если подход будет как у меня. Хотя соглашусь, итоговый HTML получится у вас гораздо легче, чем мой.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

zikkuratvk

  • Глобальный модератор
  • 4818
  • 344 / 2
  • Обслуживаем проекты - дорого.
Используйте тег picture и не занимайтесь ерундой с определением браузера.
И гнаться за пейдспидом )) такое себе удовольствие ) сколько вам надо от него 100 баллов в мобильной версии?
Нормально настроенное кэширование статики угоняет пейдспид обычно в 80 баллов куда больше?
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Цитировать
Сколько у вас будет IF в коде?
Не обязательно каждый раз делать проверку, пишем один раз функцию

Код
<?
if( strpos( $_SERVER['HTTP_ACCEPT'], 'image/webp' )!== false || strpos( $_SERVER['HTTP_USER_AGENT'], ' Chrome/' )!== false )
 {
   $webp_support = true; // webp поддерживается
    } else {
$webp_support = false; // webp  не поддерживается
 }
 
   function alternateImg ($value,$webp_support)
     {
   $info = pathinfo($value);
           $src =  $info['filename'];
   $ext = ($webp_support === true)?  '.webp' : '.jpg';
   $img =  $src.$ext;
   return $img;
     }

?>

а в коде вызываем так:
Код
<?
 $img = '/path/to/images/picture-1.webp'; // путь к картинке берем из БД, пляшем от .webp, альтернативная картинка должна быть с таким же именем
?>

<div class="slide" style="background-image: url(/path/to/images/<? echo alternateImg ($img,$webp_support); ?>);">
</div>

В div class="slide" как раз пример верстки, где <picture></picture> ну никак не вставишь, либо переверстывать

Цитировать
И гнаться за пейдспидом )) такое себе удовольствие ) сколько вам надо от него 100 баллов в мобильной версии?
Нормально настроенное кэширование статики угоняет пейдспид обычно в 80 баллов куда больше?

Вот как раз сейчас такой проект, где в ТЗ есть четкий пункт: "Показатели Google Page Speed должны быть в зеленой зоне", а на одной только главной странице 5 картинок в слайдере (полноэкранном, размер картинок 1920*800, даже в очень сжатом виде весят от 120Кб (webp примерно 60Кб), и на самой странице где то 20-25 картинок, в том числе и фоновые. Кэш и LazyLoad не втащат полюбому такую страницу в зеленую зону. Сжатие JS и CSS тоже. Вот приходится плясать с бубнами))
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
zikkuratvk, если подскажете механизмы кэширования статики буду очень благодарен, свои варианты конечно есть, но лишнего ничего не бывает)) единственный момент, данный конкретный сайт не на Joomla, то есть джумловские "фишки" будут не актуальны.
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
UP, коллеги, неужели тема неинтересна или нечего ответить?
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Многие хостинг предлагают кеширование независимо от cms
Правда экспериментировать не приходилось, но на том же рег ру я джумловское кеширование отключаю и использую хостинговское
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Цитировать
Многие хостинг предлагают кеширование независимо от cms
штатный кэш хостингов работает только для замены jpg на webp в тегах src, для фоновых картинок не сработает. Могу ошибаться, пока только изучаю этот момент, но пока это вроде точная инфа. Если бы все было так просто, можно было бы в .htaccess просто прописать

Код
<IfModule mod_rewrite.c>
  RewriteEngine On

  # serves a .webp image instead of jpg/png
  RewriteCond %{HTTP_ACCEPT} image/webp
  RewriteCond %{REQUEST_FILENAME} ^(.+)\.(jpe?g|png)$
  RewriteCond %1\.webp -f
  RewriteRule ^(.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1]
</IfModule>

<IfModule mod_headers.c>
  Header append Vary Accept env=REDIRECT_accept
</IfModule>

AddType image/webp .webp

но айфоны не отображают в этом случае jpg
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

zikkuratvk

  • Глобальный модератор
  • 4818
  • 344 / 2
  • Обслуживаем проекты - дорого.
zikkuratvk, если подскажете механизмы кэширования статики буду очень благодарен, свои варианты конечно есть, но лишнего ничего не бывает)) единственный момент, данный конкретный сайт не на Joomla, то есть джумловские "фишки" будут не актуальны.
Если мы говорим про апач, то это mod_expires.c, какие расширения файлов укажите такие и будут кешироваться к пользователю.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Если мы говорим про апач, то это mod_expires.c, какие расширения файлов укажите такие и будут кешироваться к пользователю.
Тема немного устарела, но все таки
Цитировать
Если мы говорим про апач, то это mod_expires.c,
не работает для фоновых изображений, кэшируется только то, что в <img src="" />
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проверка авторизации отдельным php скриптом

Автор smls

Ответов: 4
Просмотров: 1356
Последний ответ 29.08.2016, 09:55:18
от smls