Нагрузка и оптимизация PNG to base64
на странице 50 картинок по 300 килобайт
буду юзать конвертацию
function getDataURI($imagePath) { $path = $imagePath; $type = pathinfo($path, PATHINFO_EXTENSION); $data = file_get_contents($path); $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data); return $base64; } <?php echo '<img src="'.getDataURI( get_the_post_thumbnail_url( $post->ID, 'medium') ).'" alt="">'; ?>
Будет ли легче сайту ? или игра не стоит свеч?
в результате проверки решил миксовать
1 если все через base64 (50 картинок) - страница ждет обработки и грузится ступенчато + я не знаю как с кешированием работать - и все долго обрабатывается
2 для постов отлично подходит - через тест браузера, выставил в хромиуме 2g интернет - пользователю есть возможность быстро посмотреть миниатюру и не ждать подгрузку всей галерее, и определится тот пост или нет .
Вывод:
Только для постов и небольшого количества картинок и (не более 3), с png работает плохо - долго
Минус картинок в формате base64 - они не кешируются браузером. А в чем выигрыш то? Ну так человек страницу грузит размером 20кб html кода, то есть достаточно быстро, потом грузится png картинка (300кб). А если картинка в base64, то человек грузит страницу с Html кодом в 320кб. Не вижу профита. Да и преобразование в base64 увеличивает объем на таких картинках. К примеру у меня картинка png в 48 KB, при конвертации в base64 становится 64KB. В общем, эта фишка была придумана не для того...
с меня кончно еще тот тестировщик - но Вы попробуйте сами - сделайте страничку с фотками база64 и пнг и выставте на браузере интернет 2жи - у меря картинки база64 появились в разы раньше, изучая тайминг. Хотя я повторюсь, что еще тот тестировщик и многого не знаю.
Думаю, хуже может стать...