Как вы минимизируете и / или сжимаете JavaScript, который находится в php-файле? - PullRequest
4 голосов
/ 27 сентября 2011

Я смотрю на варианты оптимизации, и после проверки SO вопросов, я не вижу ответа на то, что я пытаюсь сделать. Надеюсь, это не означает, что то, что я делаю, - плохая практика!

У меня есть приложение для внутренней сети, которое загружает содержимое страницы с помощью ajax-вызовов в php-файлы. Многие файлы php содержат смесь php, JavaScript и даже некоторого HTML, специфичную для функциональных возможностей интерфейса, которые они загружают в основной интерфейс. Мне было интересно, как уменьшить или сжать эти файлы. Есть ли способ сделать это, или я застрял, потому что у меня смешанные языки?

Обновление: относительно принятого ответа:

Я принял ответ wildpeaks, потому что я думаю, что он наиболее точно отвечает на мой первоначальный вопрос. Тем не менее, это один из тех случаев, когда мне хотелось бы принять два ответа, потому что я думаю, что ответ, предоставленный Игорем Зиновьевым, дал мне, возможно, более важное дизайнерское решение для размышления. По этой причине я дал +1 к его ответу, так как я думаю, что другие тоже. Надеюсь, что это имеет смысл и находится в рамках правил SO.

Ответы [ 2 ]

4 голосов
/ 27 сентября 2011

Ваш PHP-скрипт генерирует код Javascript, поэтому он может минимизировать код перед его выводом: сгенерировать код в переменной, затем передать эту переменную в минификатор и только затем вывести в браузер.

Вот PHP-библиотека для этого .

2 голосов
/ 27 сентября 2011

Вы начинаете оптимизацию не с того конца. Очевидно, что если у вас есть жестко запрограммированный JavaScript, HTML и все остальное в ваших PHP-файлах, вам нужно серьезно реорганизовать код. Но даже если вы этого не сделаете, вы не должны минимизировать код на месте, потому что его будет еще сложнее поддерживать.

Вытащите его оттуда, начните с маленьких шагов, и вы в конце концов доберетесь до него.

ОБНОВЛЕНИЕ: я подумал об ответе с комментарием, но вместо этого решил уточнить, почему я ответил на ваш вопрос таким образом здесь.

Я говорю здесь о разделении интересов . В ваших файлах кода на стороне сервера нет места для кода на стороне клиента. Все решения, которые делают это, которые я видел до сих пор, рано или поздно превращаются в неразрешимый беспорядок.

Если вы хотите вернуть кусок HTML-кода, поместите его в шаблон и предоставьте шаблону переменные, специфичные для данной текущей ситуации. Вы можете сделать это с помощью Smarty . Таким образом, вы получаете следующие преимущества:

  • Нет повторяющихся частей разметки снова и снова - для этого есть циклы шаблонов
  • Возможность повторного использования существующих шаблонов в нескольких местах
  • Разработчикам, работающим с шаблонами, не нужно вводить код на стороне сервера
  • И ваш код на стороне сервера становится чище, пахнет тоже приятно!

Позже, когда вы отделите логику от представления, возможно, вы обнаружите, что вам не нужно отправлять код JavaScript с фрагментами HTML. Возможно, вы создадите один JS-движок (который вы уменьшите при сборке), и вам нужно будет запускать только определенные события при загрузке.

...