Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Костыль или фича


ArtemPitov

Recommended Posts

Доброго времени суток господа, давно я ничего не писал =) 

 

Вот сегодня вдохновения пришло оптимизировать загрузку OC по гугловки все скрипты, аналитику и сss перенес в футер, даже думаю туда jquery пихнуть но это потом... так вот после этого пришла такая идею, почему бы мелкие картинки которые добавляются через модули (иконки соц сетей и прочая мелочь) сразу не кодить в base64 

 

Так вот, получилась у меня такая штука 

<?php 
class imageBase64 
{
	public static function getDataURI ($imagePath) {
		$file_to_string = file_get_contents($imagePath);

		$info = new finfo(FILEINFO_MIME_TYPE);
    	$type = $info->buffer($file_to_string);

    	return 'data:'.$type.';base64,'.base64_encode($file_to_string);
	}
}

imageBase64::getDataURI(img);

 

На выходе получаем base64 в нормальном для вставки формате 

 

Если много всякой мелочи которую которую не пихнуть в спрайт получаем минус 10 - 20 запросов на сервер и минус 1 - 2 секунды для загрузки

 

Что скажете, что посоветуете ? Спасибо ! 

Надіслати
Поділитися на інших сайтах

Шило на мыло я вам скажу, теперь пых будет всю эту шнягу обрабатывать.

 

Есть же правильные инструменты для спрайтов и для басе64, выбирайте на свой вкус.

Надіслати
Поділитися на інших сайтах

получаем минус 10 - 20 запросов на сервер и минус 1 - 2 секунды для загрузки

 

HTTP2 решает эту проблему. Если уж в магазине настолько остро возникла задача оптимизации загрузки по количеству запросов, что приходится пыхом на лету иконки обрабатывать, то начинать стоит с перехода на HTTP2.

 

А такая оптимизация будет иметь обратную сторону - увеличение времени загрузки страницы. Чтение файла с диска не самая быстрая операция и в таком варианте это время будет прибавляться к времени ожидания ответа сервера. При чём, это будет ещё медленней, чем при обычной загрузки изображения в браузер через HTTP, ибо nginx кеширует популярные файлы (на стороне сервера).

Надіслати
Поділитися на інших сайтах


всем спасибо за умные мысли, есть над чем подумать 

Надіслати
Поділитися на інших сайтах

HTTP2 решает эту проблему. Если уж в магазине настолько остро возникла задача оптимизации загрузки по количеству запросов, что приходится пыхом на лету иконки обрабатывать, то начинать стоит с перехода на HTTP2.

 

А такая оптимизация будет иметь обратную сторону - увеличение времени загрузки страницы. Чтение файла с диска не самая быстрая операция и в таком варианте это время будет прибавляться к времени ожидания ответа сервера. При чём, это будет ещё медленней, чем при обычной загрузки изображения в браузер через HTTP, ибо nginx кеширует популярные файлы (на стороне сервера).

SPDY и HTTP/2 только при наличии SSL/TLS вот за это обидно, SSL это такая муть для меня и еще нужно постоянно раз в 1-2-3 года обновлять 

Надіслати
Поділитися на інших сайтах

SPDY и HTTP/2 только при наличии SSL/TLS вот за это обидно, SSL это такая муть для меня и еще нужно постоянно раз в 1-2-3 года обновлять 

 

Есть бесплатные сертификаты с автопродлением - https://letsencrypt.org/

  • +1 1
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.