Jump to content

Сжатие HTML кода


Recommended Posts

Класс для сжатия HTML кода который выводится в выводится в браузере.

 

ДО:

 

 

ПОСЛЕ:

 

1. Ставим файл в корневую папку.

 

2. Меняем на любую папку кеша, создаем ее и ставим права 777.

$cacheDir = dirname(__FILE__) . '/dwccache';

 

3.В index.php в самом верху подключаем компрессор

include_once('compressor.php');

 

Готово!

 

P.S. Что не надо компрессить, оборачиваем в тег в своем .tpl файле

<dwcescape>
Сжиматься<br/>
не будет
</dwcescape>

P.S. Сжатие ~10-15% получается, что хорошо, но не много в килобайтовом эквиваленте (10-15 кб), но это часть оптимизации

compressor.php

Edited by xavior
Link to post
Share on other sites

Класс для сжатия HTML кода который выводится в выводится в браузере.

 

ДО:

 

 

ПОСЛЕ:

 

1. Ставим файл в корневую папку.

 

2. Меняем на любую папку кеша, создаем ее и ставим права 777.

$cacheDir = dirname(__FILE__) . '/dwccache';

 

3.В index.php в самом верху подключаем компрессор

include_once('compressor.php');

 

Готово!

 

P.S. Что не надо компрессить, оборачиваем в тег в своем .tpl файле

<dwcescape>
Сжиматься<br/>
не будет
</dwcescape>

P.S. Сжатие ~10-15% получается, что хорошо, но не много в килобайтовом эквиваленте (10-15 кб), но это часть оптимизации

Не знаю как у всех, но у меня после этого отключилась всплывающие подсказки для администратора.

Link to post
Share on other sites

Не знаю как у всех, но у меня после этого отключилась всплывающие подсказки для администратора.

 

Работает замечательно, ничего не отваливается. Спасибо Xavior, нужная вещь!  :)

Link to post
Share on other sites

А для чего это нужно? Могу предположить две причины:

1. Чтобы посетители не смогли код HTML скопировать в удобочитаемом виде? Кому надо, тот без особого труда получить удобочитаемый код...

2. Чтобы время передачи с сервера уменьшить? Так для этого есть gzip - куда эффективнее ...

Link to post
Share on other sites

А для чего это нужно? Могу предположить две причины:

1. Чтобы посетители не смогли код HTML скопировать в удобочитаемом виде? Кому надо, тот без особого труда получить удобочитаемый код...

2. Чтобы время передачи с сервера уменьшить? Так для этого есть gzip - куда эффективнее ...

 

Включение Gzip увеличивает нагрузку ресурса на сервер, поправьте если я ошибаюсь...

Link to post
Share on other sites

Конечно, увеличивает. Но и уменьшает объем передаваемой информации, иногда в 5-10 раз.

Но включение предлагаемого сжатия тоже увеличивает нагрузку, однако Вас это не смущает и Вы говорите -  средство это очень хорошее.

Вряд ли Вы проводили сравнительные тесты - что насколько увеличивает...

 

И основной вопрос - чем хорошо предлагаемое средство и какие имеет плюсы - Вы проигнорировали...

Link to post
Share on other sites

И основной вопрос - чем хорошо предлагаемое средство и какие имеет плюсы - Вы проигнорировали...

 

Сравнительные тесты не проводились. Полагался на то, что Xavior знает о существовании Gzip, и подозреваю, что он не стал бы изобретать велосипед (к тому же у него в профиле программирование), если бы были преимущества Gzip. Могу ошибаться, но лучше если ответ даст сам автор.  :)

Link to post
Share on other sites

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

 

Я убирал только всякие отступы и пустые строки, просто добавив строку

$this->smarty->loadFilter( 'output', 'trimwhitespace' );

в файле api/Design.php

Link to post
Share on other sites

А для чего это нужно? 

 

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

 

А вообще, я гнался за PageSpeed оценкой, не сложными манипуляциями (помимо сжатия html) поднял оценку с 48/100 до 92/100

 

п.с. Мой compressor.php убирал местами "нужный" код на внутр страницах, так что проверяйте перед использованием

Edited by xavior
Link to post
Share on other sites

А вот интересно, если Вы замените собственное сжатие на стандартное с помощью smarty_html_minify, как это скажется на результатах PageSpeed? Может, попробуете?

Link to post
Share on other sites

А вот интересно, если Вы замените собственное сжатие на стандартное с помощью smarty_html_minify, как это скажется на результатах PageSpeed? Может, попробуете?

1. smarty_html_minify = true; прописал, смотрю исходный код страницы, ничего не изменилось, у меня Simpla 2.1.5.

 

2. пробовал подключить в index.tpl кажись  тег в шапке {strip} и в самом низу {/strip} выиграш был 250 байт!

http://www.smarty.net/docsv2/ru/language.function.strip.tpl

Edited by xavior
Link to post
Share on other sites

xavior,

Вот конфиг: https://github.com/pikusov/Simpla/blob/master/config/config.php

строка 50

 

и вот api/Design.php: https://github.com/pikusov/Simpla/blob/master/api/Design.php

строка 54-55

 

Наверно у вас старая симпла, как и у меня была :)

Я просто добавил

$this->smarty->loadFilter('output', 'trimwhitespace'); 

Попробуйте и вы сделать нечто подобное, а потом посмотрите как на это отнесется PageSpeed?

Нам с Kors очень интересно

 

 

Link to post
Share on other sites

Вот почти стандартная Simpla 2.3.7
http://demo.simpla-tuning.com/150801/

1. smarty_html_minify = false;  
PageSpeed показывает:
Для мобильных  67 / 100
Для компьютеров 88 / 100

2. ставлю  smarty_html_minify = true;  
PageSpeed показывает ТО ЖЕ САМОЕ:
Для мобильных  67 / 100
Для компьютеров 88 / 100

Разницы не заметно...

Link to post
Share on other sites

Вот почти стандартная Simpla 2.3.7

http://demo.simpla-tuning.com/150801/

 

1. smarty_html_minify = false;  

PageSpeed показывает:

Для мобильных  67 / 100

Для компьютеров 88 / 100

 

2. ставлю  smarty_html_minify = true;  

PageSpeed показывает ТО ЖЕ САМОЕ:

Для мобильных  67 / 100

Для компьютеров 88 / 100

 

Разницы не заметно...

Тем не менее, PageSpeed показывает что html уже уменьшен

 

Edited by xavior
Link to post
Share on other sites

xavior,

Вот конфиг: https://github.com/pikusov/Simpla/blob/master/config/config.php

строка 50

 

и вот api/Design.php: https://github.com/pikusov/Simpla/blob/master/api/Design.php

строка 54-55

 

Наверно у вас старая симпла, как и у меня была :)

Я просто добавил

$this->smarty->loadFilter('output', 'trimwhitespace'); 

Попробуйте и вы сделать нечто подобное, а потом посмотрите как на это отнесется PageSpeed?

Нам с Kors очень интересно

 

Прописал, все сделал как надо - у меня без изменений

Link to post
Share on other sites

Прописал, все сделал как надо - у меня без изменений

 

Посмотрите у себя в Smarty/libs/plugins есть ли файл outputfilter.trimwhitespace.php?

Если нет, прикрепил. Попробуйте его подсунуть, но я не знаю зависимость от версий шаблонизатора

outputfilter.trimwhitespace.php

Link to post
Share on other sites

Посмотрите у себя в Smarty/libs/plugins есть ли файл outputfilter.trimwhitespace.php?

Если нет, прикрепил. Попробуйте его подсунуть, но я не знаю зависимость от версий шаблонизатора

Проверял до теста, файл присутствовал. У самого запустить удалось ?

Link to post
Share on other sites
  • 1 year later...

Странно, у меня работает!

Он не убирает переноса строк, но убирает пустые строки и лишнюю табуляцию.

Работает, спасибо. Указал в config minify и добавил строку в Design.php. Разница не велика, но для общей оптимизации кода дельная вещь.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...