Частично пропустить разделы с помощью Google Closure Compiler
Я генерирую javascript на сервере, как и хотел бы запустить Google Clousure Compiler для запуска на исходном коде php скрипта.
var jsvar = <?=$var ? true : false ?>;
Просто бродить, есть ли способ сказать компилятору пропустить оптимизацию? Как регулярное выражение пропустить:
/<\?=.*?\?>/
С наилучшими пожеланиями,
Никлас
2 ответа
Решение
Я обнаружил, что мой код гораздо проще поддерживать, когда я отделяю свой клиентский JavaScript от моей серверной логики. Теперь я пишу свои сценарии так, что моя обработка на стороне сервера генерирует переменные инициализации.
Пример - сторона сервера:
<?php echo 'var mynamespace = {}; mynamespace.jsvar = "' . $var . '";'; ?>
И в моем клиентском JavaScript:
var mynamespace = window['mynamespace'] || {};
function MyFunction() {
alert(mynamespace['jsvar']);
}
MyFunction();
Используя этот стиль, мой клиентский JavaScript легко компилируется с помощью Closure-compiler.
Вы можете сделать это:
var jsvar = eval("<?=$var ? true : false ?>");
Компилятор не будет касаться содержимого строки.