![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Сisa |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
В асме есть такая "особенность" - ненужные (неиспользуемые ) строки попросту не попадают в "продакшн",
и как такое получить в javascript ?
Например dean.edwards.name/packer пакует все подряд:
но ведь b не использована в скрипте. b не мешает выполнению скрипта, но это мусор. И как этот мусор чистить, если скрипт короткий, как в примере, то это сразу бросается в глаза, а если Mb и скриптов на странице несколько ? Это сообщение отредактировал(а) Сisa - 27.5.2015, 12:16 |
||||
|
|||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
||||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
Ну что ?!!
http://www.javascriptlint.com/online_lint.php написал мне, по поводу выше приведенного скрипта: Paste your JavaScript, HTML, or URL into the box below другими словами он не то что сам не почистил мой скрипт, но он даже не предложил это сделать мне. Зато конечно он хорош! По другому скрипту предложил заменить серию запятых на точку с запятой, и еще пришлось добавить серию фигурных скобок, хотя и без них, даже в одну строку записанный скрипт нормально выполнялся. sQu1rr - Ваш рецепт мне не помог. За совет спасибо. После closure-compiler мой другой скрипт также поимел нарекания от lint, но опять же они были по скобочкам и запятым. Но и closure-compiler не справился мой задачей по приведенному выше скрипту, он просто выстроил все в одну строку, и лишнее не удалил. Вот я и спрашивал, как почистить скрипт от не нужных, не используемых строк, переменных, комментариев. Комментарии можно почистить регуляркой, но вот как удалить не использованные (ставшие лишними) переменные без изменения структуры скрипта? А closure-compiler часто пользуюсь, отличная штука! (но не то что в спрашивается в вопросе) Это сообщение отредактировал(а) Сisa - 27.5.2015, 12:17 |
|||
|
||||
sQu1rr |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
Вы будете моим героем если сможете ![]() Вы понимаете что javascript не компилируется как C или асм? линт поможет найти ошибки, но никто из за вас исправлять не будет, так как никто не может быть уверен в таких языках как жабаскрипт, где инпут может поступить от юзера, пройти через eval() или просто вызвать переменную из словаря, и не понятно используется она или нет на этапе "компиляции" Из-за того что ваш пост неправильно содержит таги, он растягивается на полтора экрана, и мне нужно прокручивать экран, что бы нажать на кнопку цитаты или "отправить", к сожалению только вы можете исправить свой пост.
А "асме" нет такой особенности. Это оптимизация компилятора. Она может быть а может не быть. А "асма" бывает разная: intel, gas, a&t. О кстати, еще и разные компиляторы: nasm, masm, tasm, Xasm you name it.
|
||||
|
|||||
Сisa |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
Пост отредактировал
![]() Используя "особенность" closure-compiler все же справился с моей задачей:
но по своему, он изменил структуру и наименования:
к тому же для подобного решения приходится обычно что то предварительно менять и в самом скрипте еще до начала обработки compilerом. По поводу регулярки - da.toString() ... replace(.../*коменты*/..."//.*"...,"") и дальше напечатать на странице свой новый скрипт и использовать его уже в "продакшн". Это сообщение отредактировал(а) Сisa - 27.5.2015, 12:54 |
||||
|
|||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
|
|||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
sQu1rr - ну такой код!!!
Вот это и я понимаю! т.е. даже я теперь вижу Вашу правду о герое, но такие коменты ни разу не приходилось ![]() поэтому такое наверно даже и не придумать для очистки, хотя все может быть, и Вы наверняка знаете как даже такой экстрим "почистить". Возвращаясь к вопросу, вот если бы был такой онлайн сервис чистки..., что то подобное compiler, только чуточку по другому правил бы. |
|||
|
||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
||||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
java ???
Mapping.java, ant.jar ... Спасибушки, я уж лучше ручками, ручками ![]() ![]() |
|||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
|
|||
|
||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
Извините, а в чем смысл вышепреведенного кода?
![]() |
|||
|
||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
Ну как же, мне вчерашний Ваш lol так понравился, что и сегодня о нем вспомнил
![]() а что, у Вас разве не сработала чистка экстрима? Конечно же, у Вас найдется лучшее решение, но вот представьте, когда пишешь скрипт, и надо в и нем поэкспериментировать, т.е. сделать что то чуточку по другому, и Вы не хотите потерять уже имеющийся вариант функции например, то можно скопировать в этом же скрипте функцию, а к ее имени добавить "_", или "__", или "__________123654" и делайте все что хотите дальше, а в чистовик этот мусор с _ попасть не должен, вот такие функции можно бы и почистить? Хотя опять же это не решение, когда удаляется кусок какого то кода, а некоторые используемые ранее данные вдруг остаются беспризорными. Их все же искать надо. Инструмент это главное, (не пальцем же огород копают) в итоге сегодня - compiler рулит. А может в каком нибудь умном редакторе - "компиляторе"- интерпретаторе для javascript что то такое есть встроенное? |
|||
|
||||
sQu1rr |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
Сработала, с минимальными изменениями (function ()) - у меня с пробелом браузер выводит, но не важно. Важнее то что комментарий - часть строки и удаляться НЕ ДОЛЖЕН какраз таки ![]()
![]()
Гугловский V8 компилирует и оптимизирует код практический в машинный когда это возможно. Если функция вызывает больше N раз, то это практически гарантировано в зависимости от того как функция написана (не вызывает всякие дебагеры и тд и тп). Интересная статья тут: https://github.com/petkaantonov/bluebird/wi...ization-killers
Как компилятор поймет убирать ли здесь b или нет? Javascript на этапе компиляции очень сложно и часто невозможно оптимизировать так как вы хотите. |
||||||
|
|||||||
Сisa |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 18.1.2013 Репутация: нет Всего: нет |
Как то сделал я себе "библиотеку решений" с набором всевозможных js функций которые можно менять и пополнять их перечень,
работает так - для создания нового скрипта открываем в браузере свой html с текстовым окошком в котором пишем новый код js, и зная имена функций в библиотеке просто напросто сразу используем их, без какого либо переписывания в этот новый скрипт, и они сразу могут выполняться. А чтобы получить рабочий скрипт для работы без библиотеки, жмем кнопочку, и весь код пересобирается автоматически в новый, без тех сотен функций что в библиотеке имеются, используя только тот скрипт что записывал сейчас и только те функции из библиотеки что были задействованы и в той последовательности что и те и эти функции вызывались, путаницы никакой, все работало. Такое вариант в принципе отличается от jquery подобных универсалов, где столько умных мыслей заложено, а используется как правило лишь малая часть возможностей. К тому же написание нового кода ускоряется за счет того что не надо ничего перепроверять, искать, переписывать или копировать, функции прежде чем вносятся в библиотеку тестируются же. Когда делал думал что буду пользоваться, но потом как то любой новый скрипт все же писал с нуля ![]() git - а что это такое ? Не, ну конечно, версии и все такое, командный стиль (групповой), особенно раздражает наличие такой записи о номере версии имеющейся непосредственно в тексте в определенных скриптах, вместо того чтобы данный момент находил отражение в наименовании, например так ЗАПОРОЖЕЦ 968, МЕРСЕДЕС 600-й ![]() Вот как например в Chrome, есть такая фишка в style - vertical-align: middle; т.е. текст есть но он зачеркнут, это о чем то должно говорить, вот и совсем отлично было бы иметь точно такой встроенный анализатор javascript, где неиспользуемые буковки зачеркивались бы и хотя бы визуально можно было бы как ориентироваться по скрипту. Добавлено через 11 минут и 45 секунд
Анализатор попросту обязан посмотреть использовалась ли данная буковка b (исходя хотя бы из ее глобальности) где нибудь в коде, до этой строки или после нее, и сделать какие то выводы... Или выполнить код, записав при этом себе в копилку, какие имена были в ходу, и их оставить в итоге. Причем это касается не только одного скрипта, но всех тех что в странице. |
|||
|
||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 1 Всего: 13 |
![]() ![]()
посмотрите мой пример на коммент выше. В данном случае b будет зачеркнут или нет? А если это рантайм анализатор, то мы и так знаем что V8 и фури очень хорошо оптимизирует, и зачем нам об этом вообще думать. Ваша идея в библиотекой понятна и не нова, но большинство людей предпочтают систему модулей. И если честно, скачивать даже на 200кб больше (они же кешируются) в наше время не составляет никакой проблемы. Посморите на исходный размер ember.js - а ведь летает. А дальше мы уже можем положиться на V8 и фурифокс и что ба там не было у ослика. Добавлено @ 14:18 Ну вот предположим это весь код скрипта а вы анализатор. сделайте выводы. (единственный скрипт) Это сообщение отредактировал(а) sQu1rr - 29.5.2015, 14:19 |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |