Comments 129
побольше бы хороших статей про zf
а как насчет словить JSMinException?
Хороший топик, спасибо.
Ну а смысл, в чём плюсы? разве не удобнее когда код выглядит понятнее, прозрачнее на выходе?
Часто вам приходится сорцы собственных скриптов на продакшене читать?
собственных нет, а других разработчиков да и я очень злюсь когда вижу подобный изврат.
1) FireBug вам в руки.
2) Ни один уважающий себя разработчик (ну скажем Google или Yahoo) не оставляет js и css в первозданно форматированном виде.
2) Ни один уважающий себя разработчик (ну скажем Google или Yahoo) не оставляет js и css в первозданно форматированном виде.
FireBug — вам в руки, я им пользуюсь и удачно, но люблю прозрачность и нормальный редактор а не FireBug.
«Ни один уважающий себя разработчик » — я себя уважаю, я разработчик, а значит ваше утверждение уже не верно. Google или Yahoo — лично для меня не авторитет, у меня своя голова на плечах и собственные принципы и убеждения. И я не думаю что вы знакомы со всеми разработчиками Yahoo или скажем Google что бы делать выводы все так они делают или нет. Это ваши предположения и не более того.
Это не прозрачный вариант какие бы вы доводы не приводили.
«Ни один уважающий себя разработчик » — я себя уважаю, я разработчик, а значит ваше утверждение уже не верно. Google или Yahoo — лично для меня не авторитет, у меня своя голова на плечах и собственные принципы и убеждения. И я не думаю что вы знакомы со всеми разработчиками Yahoo или скажем Google что бы делать выводы все так они делают или нет. Это ваши предположения и не более того.
Это не прозрачный вариант какие бы вы доводы не приводили.
загружаем скрипт в эклипс и Ctrl+Alf+f — autoformat
не забывайте что мы делаем сайты для людей которые НЕ делают сайты а просто их посещают :)
не забывайте что мы делаем сайты для людей которые НЕ делают сайты а просто их посещают :)
Я делаю сайты для всех и хочу что бы мой код где нибудь, кто нибудь использовал. Без лишних преобразований и головной боли.
я не понимаю, что мешает оставлять сорцы там же на сервере, а подключать minified-версии? раз код нужен разработчикам — ну дайте им фтп-логин, пусть зайдут в папку, скачают script.source.js и колбасят его как им вздумается. скрипт вышеописанный несложно модифицировать под эти нужды
Ох, что бы дойти до туалета вы ритуалы совершаете дома? обряд освещения туалета? или что? наверно нет. Вот тут то же самое, есть же прямой и чистый путь.
вы сайты сложней Hello world делали?
я просто не вижу другой разумной причины отказываться от этого.
уже несколько лет фишку с уменьшением и объединением скриптов используют все крупнейшие сайты интернета, которым важно время загрузки страницы для конечного юзера.
автор топика, более того, дал всем (бесплатно, к тому же) довольно неплохое готовое решение, которое в случае особой надобности можно допилить.
но нет же! все дураки, а я один тут умный в белом пальто.
ну, удачи. может быть, через несколько лет дойдет, «хммм, возможно я и вправду был неправ»
я просто не вижу другой разумной причины отказываться от этого.
уже несколько лет фишку с уменьшением и объединением скриптов используют все крупнейшие сайты интернета, которым важно время загрузки страницы для конечного юзера.
автор топика, более того, дал всем (бесплатно, к тому же) довольно неплохое готовое решение, которое в случае особой надобности можно допилить.
но нет же! все дураки, а я один тут умный в белом пальто.
ну, удачи. может быть, через несколько лет дойдет, «хммм, возможно я и вправду был неправ»
«вы сайты сложней Hello world делали?» — нет.
Время загрузки страницы с текущими мощностями, уровнем пропускной способности канала, уже мало играет роли, а вот путаница нарастает с каждым днём. Если вы скажите про очень высоконагруженные каналы то да, но зачем это для тех, кто не Yahoo и не Google.
Из тех, кто сейчас себе его скачал, 1% всего имеют такую проблему и то наверняка она надуманная.
Время загрузки страницы с текущими мощностями, уровнем пропускной способности канала, уже мало играет роли, а вот путаница нарастает с каждым днём. Если вы скажите про очень высоконагруженные каналы то да, но зачем это для тех, кто не Yahoo и не Google.
Из тех, кто сейчас себе его скачал, 1% всего имеют такую проблему и то наверняка она надуманная.
А я хочу чтобы пользователи не ждали пока загрузятся все js скрипты, со всеми отступами, форматированием и комментариями. А также чтобы сервак не гонял лишний трафик.
Если же у меня есть какой-то полезный код, то лучше я его оформлю в библиотеку и выложу на каком-нибудь code.google.com, sourceforge.net и т.п. Пусть разарботчики смотрят исходники, или просто качают минифицированую версию и используют у себя на сайте, а в дополнение можно получить дополнительный фидбэк и улучшить утилу.
Если же у меня есть какой-то полезный код, то лучше я его оформлю в библиотеку и выложу на каком-нибудь code.google.com, sourceforge.net и т.п. Пусть разарботчики смотрят исходники, или просто качают минифицированую версию и используют у себя на сайте, а в дополнение можно получить дополнительный фидбэк и улучшить утилу.
А покажите ка мне сайт где, я бы я долго ждал и злился.
«code.google.com, sourceforge.net и т.п. Пусть разарботчики» — а ссылочку везде будете оставлять? на всех своих творениях?
«code.google.com, sourceforge.net и т.п. Пусть разарботчики» — а ссылочку везде будете оставлять? на всех своих творениях?
Ну, что вы там? покажите хоть один сайт на котором я бы испытывал описанные вами неудобства, если и будет, то это 1% от основного трафика и не потому что программисты придурки а потому, что жалко денег на оборудование.
Экий оголодавший тролль.
Вы явно не понимаете тему :)
Вот вам страница: download.dojotoolkit.org/release-1.3.2/dojo-release-1.3.2/dijit/tests/form/_autoComplete.html?testWidget=dijit.form.ComboBox
Обычная страница с небольшим количеством Dojo виджетов. На этой странице все подгружается в открытом и не сжатом виде.
Количество запросов к css и js — 84!!!.. Время загрузки у меня 15 секунд !!!..
Если это все минимизировать и сжать свядя до загрузки 2х файлов, то они загрузятся в доли секунды.
Чуете прирост?
Вот вам страница: download.dojotoolkit.org/release-1.3.2/dojo-release-1.3.2/dijit/tests/form/_autoComplete.html?testWidget=dijit.form.ComboBox
Обычная страница с небольшим количеством Dojo виджетов. На этой странице все подгружается в открытом и не сжатом виде.
Количество запросов к css и js — 84!!!.. Время загрузки у меня 15 секунд !!!..
Если это все минимизировать и сжать свядя до загрузки 2х файлов, то они загрузятся в доли секунды.
Чуете прирост?
Извените, изначально спроектировано отстойно, интерфейса никакого, зачем всё то что там загружается непонятно.
Что я увидел:
1) плохой пинг
2) Интерфейс никакой ( наличие такого колличества файлов неоправданно высокое )
Над этим работать надо а не упаковывать проблемы в мемкеши и прочие запперы. Хотя они безусловно необходимы когда по первым двум пунктам хорошо.
Что я увидел:
1) плохой пинг
2) Интерфейс никакой ( наличие такого колличества файлов неоправданно высокое )
Над этим работать надо а не упаковывать проблемы в мемкеши и прочие запперы. Хотя они безусловно необходимы когда по первым двум пунктам хорошо.
Извените, изначально спроектировано отстойно, интерфейса никакого, зачем всё то что там загружается непонятно.
Какой вам нужен интерфейс? :)))))
Это юнит-тесты одного из виджетов фрэймворка Dojo Toolkit
Вы знаете что такое юнит-тесты?
Что я увидел:
1) плохой пинг
2) Интерфейс никакой ( наличие такого колличества файлов неоправданно высокое )
Над этим работать надо а не упаковывать проблемы в мемкеши и прочие запперы. Хотя они безусловно необходимы когда по первым двум пунктам хорошо.
Такое количество файлов просто необходимо для систематизированного хранения множества виджетов, которые необходимы для реализации интерфейсов корпоративного уровня.
Вот к примеру демонстрационный интерфейс download.dojotoolkit.org/release-1.4.1/dojo-release-1.4.1/dijit/themes/themeTester.html
Если вы можете предложить свою схему для таких интерфейсов — с удовольствием выслушаю.
Пока больше я склонен доверять
разработчикам компаний Sitepen, Uxebu, IBM, Sun, Cisco, AOL, которые участвуют в создании этого фрэймворка.
Вы умница. Только вот скажите почему habrahabr ( программисты ) не делают так как тут предложено, не склеивают кучу своих CSS или JS в один? и всё то у них нормально мне кажется.
Я думаю, проблема эта очень подвешена за уши. И решается она уж точно не скриптами.
«Если вы можете предложить свою схему для таких интерфейсов» — моя схема проста, подумать, а есть ли проблема? а так же обратить внимание на приложения которые работают в качестве модулей к серверу подобно мемкешу например, или gzip. Зачем в код выносить всякий мусор?
Я думаю, проблема эта очень подвешена за уши. И решается она уж точно не скриптами.
«Если вы можете предложить свою схему для таких интерфейсов» — моя схема проста, подумать, а есть ли проблема? а так же обратить внимание на приложения которые работают в качестве модулей к серверу подобно мемкешу например, или gzip. Зачем в код выносить всякий мусор?
Мне кажется, вы не совсем понимаете мой вопрос.
1.
По какой схеме/методике можно уменьшить время отклика страницы download.dojotoolkit.org/release-1.4.1/dojo-release-1.4.1/dijit/themes/themeTester.html больше чем с 13 секунд до 1 секунды?
2.
В вашем профиле указана, что вы являетесь сотрудником www.deviantart.com/ (в чем я конечно сомневаюсь, вы просто активный пользователь наверное). Этот ресурс входит в ТОП-100 посещаемых сайтов в мире! Это вам не хабрахабр. И если вы обратите внимание, то весь js-код относящийся непосредственно к сайт упакован и сжат в 3 файла.
1.
По какой схеме/методике можно уменьшить время отклика страницы download.dojotoolkit.org/release-1.4.1/dojo-release-1.4.1/dijit/themes/themeTester.html больше чем с 13 секунд до 1 секунды?
2.
В вашем профиле указана, что вы являетесь сотрудником www.deviantart.com/ (в чем я конечно сомневаюсь, вы просто активный пользователь наверное). Этот ресурс входит в ТОП-100 посещаемых сайтов в мире! Это вам не хабрахабр. И если вы обратите внимание, то весь js-код относящийся непосредственно к сайт упакован и сжат в 3 файла.
Большая просьба, не мучайтесь.
Человек уже отличился и на phpclub.ru и на php.ru
Доказывать что-либо бесполезно. Возможно, со временем, он сам поймет.
Человек уже отличился и на phpclub.ru и на php.ru
Доказывать что-либо бесполезно. Возможно, со временем, он сам поймет.
А, ну понятно кто тут сидит. Мистеры я всё знаю, но использую непонятно почему.
simpliest.co.cc — ты у себя на сайте сделай хоть меню нормально. JQuery попробуй что ли.
Опять же: habrahabr.ru неплохо спроектирован и в один файл ничего не ужимает.
Опять же: habrahabr.ru неплохо спроектирован
:))))))
Обоснуйте. Но основе каких критериев вы сделали вывод о хорошем проектном решении хабрахабр?
А вот я со своей стороны вижу что на загрузку js и css — файлов с хабра мой браузер тратит около 20-ти запросов и 5-ти секунд времени.
Ну и на последок. Что бы не быть голословным — приведить примеры своих проектов, что бы мы могли быть уверены в вашей компетенции
Вы не браузер, лопатой трафик не швыряете, а если вы сидите на этом сайте значит вас он устраивает и его работа соответственно.
«мой браузер тратит около 20-ти запросов и 5-ти секунд времени» — и что? на мой взгяд всё очень быстро открывается и посещать этот ресурс мне например очень приятно, а если вы его посещаете то вам я думаю то же (отклоняем версию что вы мазахист).
«Ну и на последок.» — я компетентен потому, что Я так сказал. Мы тут вопрос обсуждаем о оптимизации или длину писек?
«мой браузер тратит около 20-ти запросов и 5-ти секунд времени» — и что? на мой взгяд всё очень быстро открывается и посещать этот ресурс мне например очень приятно, а если вы его посещаете то вам я думаю то же (отклоняем версию что вы мазахист).
«Ну и на последок.» — я компетентен потому, что Я так сказал. Мы тут вопрос обсуждаем о оптимизации или длину писек?
«на основе каких критериев» — на основе теоремы доктора Шверденна, который ещё в 45-ом под Сталенградом предложил правильный семантический подход к системной интрогермодуляции живых и неживых объеков в информационном вакуме. Вы разве не читали его труды? и какой вы после этого программист.
Он не приведет. Не рассчитывайте.
А я хочу чтобы пользователи не ждали — пользователь не ждёт или ждёт 1 раз. и то доли секунд, если иначе, то это вопрос к архитектуре сервера и установленного на нём программного обеспечения, который и должен отвечать за кеширование подобного дела.
А также чтобы сервак не гонял лишний трафик. — и на сколько лишний? 10-100 кб? хорошо умножим:
100 кб ( и то много ) * 50 одновременных запросов = почти 5 мегабайта. И за сколько отдаст 5 мб сервер который рассчитан на высокую нагрузку? и какова вероятность того, что будет 50 одновременных запросов. Я думаю решение как минимум не оправданное, а такого рода оптимизацией должны заниматься не скрипты а ПО сервера.
А также чтобы сервак не гонял лишний трафик. — и на сколько лишний? 10-100 кб? хорошо умножим:
100 кб ( и то много ) * 50 одновременных запросов = почти 5 мегабайта. И за сколько отдаст 5 мб сервер который рассчитан на высокую нагрузку? и какова вероятность того, что будет 50 одновременных запросов. Я думаю решение как минимум не оправданное, а такого рода оптимизацией должны заниматься не скрипты а ПО сервера.
У меня не эклипc, не понимаю, такое ощущение, что все должны делать так же как и вы и теми же методами. С чего вы взяли что я использую эклиптс?
«мы делаем сайты для людей» — а кто это мы если сайты для людей?
«мы делаем сайты для людей» — а кто это мы если сайты для людей?
как не странно — у меня тоже не эклипс :)
но у него на самом деле хороший автоформатер.
не хотите эклипс — две регуглярки и один реплейс сделают сжатые исходники хоть как-то читаемыми.
А МЫ это люди которые делают сайты для людей. Еще есть создатели говносайтов или не умеющие( и не любящие!) разбираться в чужом коде, но желающие чтобы копались в их.
Простите за личности, но это так. Только признав себя лохом и посмотрев как и что делают «гуру» можно создать свое собственное восприятие, которое, возможно, будет правильным.
Я с огромным удовольствим раз в месяц громогласно заявляю на весь офис что я лох когда нахожу очередной интересный или грамотный подход.
Попробуйте и вы, быть может лишние 100мсек при загрузки страницы это все же очень и очень хорошо?
но у него на самом деле хороший автоформатер.
не хотите эклипс — две регуглярки и один реплейс сделают сжатые исходники хоть как-то читаемыми.
А МЫ это люди которые делают сайты для людей. Еще есть создатели говносайтов или не умеющие( и не любящие!) разбираться в чужом коде, но желающие чтобы копались в их.
Простите за личности, но это так. Только признав себя лохом и посмотрев как и что делают «гуру» можно создать свое собственное восприятие, которое, возможно, будет правильным.
Я с огромным удовольствим раз в месяц громогласно заявляю на весь офис что я лох когда нахожу очередной интересный или грамотный подход.
Попробуйте и вы, быть может лишние 100мсек при загрузки страницы это все же очень и очень хорошо?
«на самом деле хороший автоформатер» — хорошо, это ваше мнение.
«сделают сжатые исходники хоть как-то читаемыми» — зачем мне их вообще делать сжатыми? вот в чём вопрос? учитывая сегодняшний уровень интернета и скоростей. А так же учитывая что у пользователя скрипты и CSS то же кешируеться.
«Еще есть создатели говносайтов или не умеющие( и не любящие!) разбираться в чужом коде, но желающие чтобы копались в их.» — это вы к чему? вы про тех людей которые любят свой код прятать и делать его запутанным? про тех которые познали жизнь, написали большие толстые труды и создали потрясающие творения?
«посмотрев как и что делают «гуру» можно создать свое собственное восприятие» — собственное ли оно будет если вы учитесь у людей а не у их знаний?
«Я с огромным удовольствим раз в месяц громогласно заявляю на весь офис что я лох» — ну что ж, поздравляю, но хочу заметить Я не ВЫ. пути у нас разные и это хорошо.
«100мсек при загрузки» — покажите примеры, я на своих приложениях такой проблемы не испытываю, не видел что бы так делали и другие. Что же программисты habrahabr так же не делают о великий гуру-мастер? И вроде работает как то и скрипты мне их читать очень удобно, сразу вижу какой скрипт за что отвечает.
«сделают сжатые исходники хоть как-то читаемыми» — зачем мне их вообще делать сжатыми? вот в чём вопрос? учитывая сегодняшний уровень интернета и скоростей. А так же учитывая что у пользователя скрипты и CSS то же кешируеться.
«Еще есть создатели говносайтов или не умеющие( и не любящие!) разбираться в чужом коде, но желающие чтобы копались в их.» — это вы к чему? вы про тех людей которые любят свой код прятать и делать его запутанным? про тех которые познали жизнь, написали большие толстые труды и создали потрясающие творения?
«посмотрев как и что делают «гуру» можно создать свое собственное восприятие» — собственное ли оно будет если вы учитесь у людей а не у их знаний?
«Я с огромным удовольствим раз в месяц громогласно заявляю на весь офис что я лох» — ну что ж, поздравляю, но хочу заметить Я не ВЫ. пути у нас разные и это хорошо.
«100мсек при загрузки» — покажите примеры, я на своих приложениях такой проблемы не испытываю, не видел что бы так делали и другие. Что же программисты habrahabr так же не делают о великий гуру-мастер? И вроде работает как то и скрипты мне их читать очень удобно, сразу вижу какой скрипт за что отвечает.
отправляйтесь, уважаемый диджер, в Брянкс
или запитывайтесь йотой и в район плохо сигнала
там таакие интернетные интернеты
да, за Москвой жизни нет
или запитывайтесь йотой и в район плохо сигнала
там таакие интернетные интернеты
да, за Москвой жизни нет
! о — Брянкс, у меня деревня там. Отличная природа и люди. и интернет там есть нормальный.
«за Москвой жизни нет » — да ну заблуждение. за Москвой самая жизнь настоящая. Москва на биржу больше похожа.
«за Москвой жизни нет » — да ну заблуждение. за Москвой самая жизнь настоящая. Москва на биржу больше похожа.
если не Yahoo и Google, то кто же тогда для вас авторитет? :) эти две уже доказали, что у них в командах работают настоящие джедаи веб-разработки, [irony]назовите кого-нибудь круче[/irony] :)
Для меня нет ни авторитетов, ни гуру, а любое мнение ограничено знанием, а знание имеет свойство устаревать.
«уже доказали, что у них в командах работают настоящие джедаи веб-разработки» — кому доказали? мне не надо, я не просил. Повторюсь у меня своя голова на плечах, отсутствие авторитетов и гуру. Если они так делают это не значит что так надо делать всем, что за стадное чувство.
«назовите кого-нибудь круче» — Я. ( «потому что Я так сказал» )
«уже доказали, что у них в командах работают настоящие джедаи веб-разработки» — кому доказали? мне не надо, я не просил. Повторюсь у меня своя голова на плечах, отсутствие авторитетов и гуру. Если они так делают это не значит что так надо делать всем, что за стадное чувство.
«назовите кого-нибудь круче» — Я. ( «потому что Я так сказал» )
ну и дурак, в таком случае :D
26 февраля 2010 г. ( Запись в дневнике )
Наверно зря мы пытаемся жить как друзья, обсуждать вопросы, а не ссылаться на авторитетное мнение или слово гуру. Наверно всегда будут политики, которые точно знают как лучше жить, наверно всегда будут люди чьё мнение превыше истины. Наверно лишние вопросы приравниваются к оскорблению, а автор становится непременно дураком. Наверно…
Наверно зря мы пытаемся жить как друзья, обсуждать вопросы, а не ссылаться на авторитетное мнение или слово гуру. Наверно всегда будут политики, которые точно знают как лучше жить, наверно всегда будут люди чьё мнение превыше истины. Наверно лишние вопросы приравниваются к оскорблению, а автор становится непременно дураком. Наверно…
Парниша, сначала начни делать то, что делают в Гугле, а потом так разговаривай. Period.
«Мне 20 лет и я бородат» (с)
Apple отдаёт красиво отформатированный код.
Подобный изврат делается для того, чтобы улучшить скорость загрузки страницы…
Да уж. Хорошо примеру пример:
Есть два сайта первый использует это, а второй нет. Оба они загружаются хорошо для конечного потребителя. Зачем применять то, без чего можно обойтись?
Есть два сайта первый использует это, а второй нет. Оба они загружаются хорошо для конечного потребителя. Зачем применять то, без чего можно обойтись?
с такой точки зрения обойтись можно от всего…
— зачем использовать кеширование — если можно сервак по мощнее прикупить…
— зачем использовать кеширование — если можно сервак по мощнее прикупить…
Нет нет нет, не надо меня коверкать, я определённо сказал — «Оба они загружаются хорошо для конечного потребителя», а сервак купить это значит, что проблема имеет место быть.
Дело в том, что программисты часто делают, что то на будущее, излишняя оптимизация, решение проблемы которой ещё нет. Вот скажите мне сколько из прочитанных этот топик поставили этот хелпер на свои проекты ( которые ещё разрабатываются )? я думаю достаточно, что бы сказать — а зачем?
Меня тут так и не услышали, люди очень не хотят ставить мнение другого рядом с авторитетом и опытом, это печально.
Дело в том, что программисты часто делают, что то на будущее, излишняя оптимизация, решение проблемы которой ещё нет. Вот скажите мне сколько из прочитанных этот топик поставили этот хелпер на свои проекты ( которые ещё разрабатываются )? я думаю достаточно, что бы сказать — а зачем?
Меня тут так и не услышали, люди очень не хотят ставить мнение другого рядом с авторитетом и опытом, это печально.
это как вроде… нужно оставлять всю дебаг инфу в откомпилированм файле, чтоб если что дебажить легче было…
ну это помоему бред %)
ну это помоему бред %)
на сколько я понял этот скрипт берет js файлы и сжимает их перед показом в отдельный файл, оригиналы остаются не тронутыми, или вы кеш тоже не используете? там ведь непонятно ничего, сериализация
Отлично. Только недавно задался такой целью. А тут Вы.
Благодарствую.
Пойду переписывать под себя
Благодарствую.
Пойду переписывать под себя
Спасибо, не хватало! Совсем шикарно было бы заточить под YIU-compressor, чтобы и css заодно оптимизировать.
Спасибо, только надумал писать )
Забавно конечно, но это должно делаться во время билда и деплоймента, а не в реалтайме.
Согласен с вами. Гораздо дешевле отдавать статитку, чем какждый раз генерить файл (пусть даже с учетом кеша)
А можете какую ни будь софтину что которая бы помогла это? понятно что можно написать скрипт который делал бы это при деплои. Но может быть есть уже чтото готовое, что могло бы облегчить этот нудный труд?
А можете какую ни будь софтину что которая бы помогла это? понятно что можно написать скрипт который делал бы это при деплои. Но может быть есть уже чтото готовое, что могло бы облегчить этот нудный труд?
YUI compressor или любой другая утилита + простейший батник/bash-скрипт/perl-скрипт, написанный за 15 минут.
Я не совсем об этом — склеить и пожать файлы это не проблема. Когда известно какие именно надо клеить и жать. А вот отследить все зависимости в большом проекте, значительно сложнее. Для разных частей сайта нужно делать разные «пакеты» JS.
Или делайте просто один большой универсальный JS файл?
Или делайте просто один большой универсальный JS файл?
Не очень понимаю, что вы имеет в виду под «пакетами». Делать разные пакеты из одних и тех же файлов в разных комбинациях еще менее выгодно, чем отдавать эти файлы по одиночке. Имеет смысл либо отдавать все в куче, либо по одному.
А вообще, от прикладной задачи зависит.
А вообще, от прикладной задачи зависит.
> Делать разные пакеты из одних и тех же файлов в разных комбинациях еще менее выгодно, чем
> отдавать эти файлы по одиночке. Имеет смысл либо отдавать все в куче, либо по одному.
Утверждение которое может быть верным или не верным, только в рамках конкретного приложения. Отдать 1 файл, всегда дешевле чем отдать 2. Вопрос КПД с учетом затрат на получения этого 1 файла.
Ну например у нас есть:
— 5 js которые нужны всегда и всем
— 5 js которые нужны только залогиневшимся юзерам
— 5 js которые пригодятся анонимам и только им
и на сладкое — навороченные интерфейс который требует еще 5 js файлов, но куда забредают только 30% юзеров.
Думаю было удобно сделать 4 больших файла и отдавать их исходя из того залогинен ли юзер и на какой странице. Тогда мы будем раздавать, в среднем, не 10 файлов а только 2.
Все это можно было бы конечно делать руками, но большом проекте отслеживать все добавления JS не так просто, так что я надеялся прогрессивное сообщество могло чтото придумать для решения этой задачи…
> отдавать эти файлы по одиночке. Имеет смысл либо отдавать все в куче, либо по одному.
Утверждение которое может быть верным или не верным, только в рамках конкретного приложения. Отдать 1 файл, всегда дешевле чем отдать 2. Вопрос КПД с учетом затрат на получения этого 1 файла.
Ну например у нас есть:
— 5 js которые нужны всегда и всем
— 5 js которые нужны только залогиневшимся юзерам
— 5 js которые пригодятся анонимам и только им
и на сладкое — навороченные интерфейс который требует еще 5 js файлов, но куда забредают только 30% юзеров.
Думаю было удобно сделать 4 больших файла и отдавать их исходя из того залогинен ли юзер и на какой странице. Тогда мы будем раздавать, в среднем, не 10 файлов а только 2.
Все это можно было бы конечно делать руками, но большом проекте отслеживать все добавления JS не так просто, так что я надеялся прогрессивное сообщество могло чтото придумать для решения этой задачи…
Ну да, потому и говорю, что от прикладной задачи зависит. А тут уже вряд ли кто-то за вас что-то решит, легче сесть и потратить день-два на продуманную схему деплоймента.
Ну тут палка о двух концах. Преимущество одного файла — он загрузился и лег в кэш. Теперь на какую бы страницу не пошел пользователь, он подгрузит только HTML и контент (js и css фалик лежат в кэше). Но это кажется неэффективным (типа зачем загружать лишний код), а также как доп геморой, нужно внимательно следить за кодом, чтобы код одной страницы не конфликтовал с другой (типа ...$(".list a").live('click', function(){....})...).
Пакеты же, имеют свои преимущества. Вы правильно сказали, у залогиненых один набор js, у гостей — свой, у админов — третий. В итоге не один громадный js, а несколько более мелких, а каждый пользователь скорее всего будет использовать только один. Но сомневаюсь что можно как-то автоматизировать определение зависимостей, только ручками в конфиге, а на основе конфига генерить «пакеты».
Пакеты же, имеют свои преимущества. Вы правильно сказали, у залогиненых один набор js, у гостей — свой, у админов — третий. В итоге не один громадный js, а несколько более мелких, а каждый пользователь скорее всего будет использовать только один. Но сомневаюсь что можно как-то автоматизировать определение зависимостей, только ручками в конфиге, а на основе конфига генерить «пакеты».
Я думаю, Вам стоит посмотреть в сторону Ant + CruiseControl (phpUnderControl)
Спасибо Андрей. Без подобной связки сложно :) Правда я предпочитаю capistrano + rake (знаю что немного разные вещи)
Но это опять же инструмент не того уровня. Все это хорошо что бы в нужный момент, запустить некий инструмент для сборки единого JS.
Так что у нас есть уже ЧЕМ запустить, хитрый скрипт. Есть утилиты типа YUI compressor которым можно скормить список файлов и на выходе получить один файл.
Но вот нет средства что бы получить этот список файлов (желательно по неким правилам) из проекта — нет.
Я понимаю что это не банальная задача. но если использовать в коде вызов какого то хелпера для подключения JS или специальные комментарии — вполне реально.
GetText успешно использует этот принцип, выдирая необходимые строковые ресурсы из кода приложения.
Я подумал — может быть для JS есть чтото? Хотя бы аналог make…
Хотя я уже понял, что видимо хочу слишком облегчить себе жизнь и проще написать руками сборку JS
Но это опять же инструмент не того уровня. Все это хорошо что бы в нужный момент, запустить некий инструмент для сборки единого JS.
Так что у нас есть уже ЧЕМ запустить, хитрый скрипт. Есть утилиты типа YUI compressor которым можно скормить список файлов и на выходе получить один файл.
Но вот нет средства что бы получить этот список файлов (желательно по неким правилам) из проекта — нет.
Я понимаю что это не банальная задача. но если использовать в коде вызов какого то хелпера для подключения JS или специальные комментарии — вполне реально.
GetText успешно использует этот принцип, выдирая необходимые строковые ресурсы из кода приложения.
Я подумал — может быть для JS есть чтото? Хотя бы аналог make…
Хотя я уже понял, что видимо хочу слишком облегчить себе жизнь и проще написать руками сборку JS
Я когда-то решал похожую задачу, но я пошел по простому пути — все зависимости были жестко указаны в билд скрипте
Очень характерная задача, удивлен что какой то фреймворк для описания групп файлов и связей еще не сделали.
Боюсь вы правы и проще всего будет прописывать руками
Боюсь вы правы и проще всего будет прописывать руками
Очень характерная задача, удивлен что какой то фреймворк для описания групп файлов и связей еще не сделали.
Боюсь вы правы и проще всего будет прописывать руками
Боюсь вы правы и проще всего будет прописывать руками
Еще можно покопать в сторону расширений для IDE.
А лучше Ant заменить phing'ом, ИМХО. Написан на PHP, а значит можно использовать куски платформы. Нам приходилось использовать. Для Ant'a мы оформляли ввиде отдельно cli скрипта и пускали через exec. В phing это офрмляется task'ом (что сродни отдельному cli скрипту), а использовать куда удобнее. Также имеет интерфейсы для phpDocumentor, phpCodeStyle, что тоже удобнее чем через exec.
Лучше — смотря для чего. Мой проект был только на javascript. К тому же как для YUICompressor, так и для jsdoc-toolkit есть jar-файлы для Ant, так что я обходился без вызовов exec для документации и билда.
Если не сложно, подскажите, удобно ли использовать phing совместно с Eclipse?
Сам выбрал ant только потому, что в Eclipse позволяет удобно запускать нужные действия. Для запуска PHP скриптов используется отдельный скрипт, которому передается название команды (по сути, имя класса) и её аргументы. В ant-е запускается через макрос. Единственная сложность была с кодировкой ввода/вывода, но и её удалось решить.
Сам выбрал ant только потому, что в Eclipse позволяет удобно запускать нужные действия. Для запуска PHP скриптов используется отдельный скрипт, которому передается название команды (по сути, имя класса) и её аргументы. В ant-е запускается через макрос. Единственная сложность была с кодировкой ввода/вывода, но и её удалось решить.
Честно, не пробовал. Поверхностное гугление сказало что нативных решений нет, но в клипсе легко можно создать запуск внешних приложений. Не так удобно, как в случае с антом, но вполне решаемо. А возможно это сподвигнет вас к написанию экстеншена для эклипс для удобной работы с phing'ом :)
> в клипсе легко можно создать запуск внешних приложений.
Я лучше на ant-е останусь — уже привык что любое действие можно запустить очень быстро. + к автокомлиту при написании тасков уже привык.
> А возможно это сподвигнет вас к написанию экстеншена для эклипс для удобной работы с phing'ом
Нет — java я настолько хорошо не знаю.
Я лучше на ant-е останусь — уже привык что любое действие можно запустить очень быстро. + к автокомлиту при написании тасков уже привык.
> А возможно это сподвигнет вас к написанию экстеншена для эклипс для удобной работы с phing'ом
Нет — java я настолько хорошо не знаю.
это совершенно не годится для сторонних библиотек типа jQuery и т.п.
они уже сжаты и не меняются. более того, должны быть закэшированы на стороне клиента.
Google предлагает качать такие библиотеки с него, чтобы у пользователя было по одному экземпляру библиотеки, используемой многими сайтами
они уже сжаты и не меняются. более того, должны быть закэшированы на стороне клиента.
Google предлагает качать такие библиотеки с него, чтобы у пользователя было по одному экземпляру библиотеки, используемой многими сайтами
Идея супер, можно создать хелпер для вывода сжатого и не сжатого кода, как css, так и javascript.
Точно возьму на вооружение.
Точно возьму на вооружение.
Погодите, а как же инклуд вашей библиотеки? а подсчитывание хеша для проверки, разве это не нагружает сервер?
Думаю нагружает ровно столкьо, сколько вы экономите, так как при первом же запросе у пользователя JS, CSS кешируються.
Думаю нагружает ровно столкьо, сколько вы экономите, так как при первом же запросе у пользователя JS, CSS кешируються.
Не соглашусь с вами, если скрипт большой, то минимизировав его вес будет меньше, это раз.
И два, его можно закешировать на часик на серверной стороне, что не вызовет нагрузок лишний раз.
И два, его можно закешировать на часик на серверной стороне, что не вызовет нагрузок лишний раз.
вес будет меньше — таак, и что? если у меня мегабит скорость и пусть вес был 100 кб а стал ну пусть 10 кб. И что?
«его можно закешировать» — этим скрипты заниматься должны?
Думаю если покапатся в настройках сервера админу, этого можно избежать.
Пример: habrahabr — посмотрите в исходный код страницы. И скажите что программисты там критины не эффективно всё делают.
«его можно закешировать» — этим скрипты заниматься должны?
Думаю если покапатся в настройках сервера админу, этого можно избежать.
Пример: habrahabr — посмотрите в исходный код страницы. И скажите что программисты там критины не эффективно всё делают.
Изыди, изыди из топика, тролль! Здесь сидят только фанатики оптимизации, еды здесь нет!
Я за оптимизацию, и хватит уже шоу устраивать, пока только этим вы и занимаетесь. Здесь сидят все кто хотят здесь сидеть, уважать других что ли надо уметь.
Оптимизация должна быть оправдана.
Оптимизация должна быть оправдана.
Хочешь говорить серьезно, говори по теме, а не пытайся спровоцировать флуд дилетантскими аргументами и пафосом. А чтобы уметь говорить по теме, почитай для начала что умные дяди пишут, например тут webo.in/articles/habrahabr/03-presentation-layer-performance-tuning/
JS-программистам Хабра кстати руки оторвать надо за такое количество комментариев в скриптах на продакшене.
JS-программистам Хабра кстати руки оторвать надо за такое количество комментариев в скриптах на продакшене.
Ды что пишут, они для своего случая написали, для своего оборудования. Сколько вот читал про тестирование нагрузки или быстрадействие методом, сколько мнений ( например ) что php говно, сколько мнений что ZF говно, а сколько что он идеален. Если одни где то что то сказали, это стало только ещё одинм мнением не больше того.
Молодой человек, если вы действительно такой самостоятельный, как здесь нам рассказываете, то проведите собственное тестирование нагрузки и быстродействия, и докажите нам всем, что мы лохи, а вы — авторитет и гуру не только для себя самого. А то сейчас картина обратно противоположная.
Эмммм, идите на хуй.
Мне проще и короче вас послать, уж извините. Это экономически дешевле и время драгоценное не трачу. На то, что бы убедить тег с текстом «Nimnul».
Противоречите сами себе, вы уже потратили кучу времени на написание большого количества комментариев с информационной ценностью, стремящейся к нулю, в этом топике.
Я про конкретно вас говорил.
А какая для вас разница на убеждение какого «тега», как вы выразились, тратить своё драгоценное время?
Вы тут пытаетесь всем доказать, что чёрное — это белое, используя в качестве аргумента «этого не может быть, потому что этого не может быть никогда».
Удачи. Из вас получится хороший говнокодер.
Вы тут пытаетесь всем доказать, что чёрное — это белое, используя в качестве аргумента «этого не может быть, потому что этого не может быть никогда».
Удачи. Из вас получится хороший говнокодер.
А из вас хороший корм для толстых и неопытных троллей. Школьник пытается повысить своё ЧСВ, постя унылые вбросы, а вы ведётесь и провоцируете его продолжать эту беседу слепого с глухим. Такое впечатление что вы первый день в интернете, нельзя же так легко вестись на неумелые провокации…
Спасибо, кэп ;)
Я в курсе происходящего.
Просто стало интересно, какие ещё аргументы сможет привести молодой человек.
Я в курсе происходящего.
Просто стало интересно, какие ещё аргументы сможет привести молодой человек.
А ведь со стороны не похоже. Ну да ваше дело, и ваше потраченное время…
Вы меня не знаете, а раз так ваше мнение поверхностное и ошибочное ( насчёт меня ).
Вы все проявили такую слабость в общении называя меня тут тролем, прося что то доказать, указывая мне на мой возраст, хотя к теме это не относится. Не пойму, кто вас научил так реагировать на различные спорные ситуации. Переходить на личности и оценивать по возрастным категориям.
Проявляете своё ЧСВ тут вы, я всего лишь хочу получить ответ, зачем использовать то, что не требуется использовать в 80% приложений.
Вы все проявили такую слабость в общении называя меня тут тролем, прося что то доказать, указывая мне на мой возраст, хотя к теме это не относится. Не пойму, кто вас научил так реагировать на различные спорные ситуации. Переходить на личности и оценивать по возрастным категориям.
Проявляете своё ЧСВ тут вы, я всего лишь хочу получить ответ, зачем использовать то, что не требуется использовать в 80% приложений.
К сожалению, ваша некомпетентность не позволяет вам вести эту дискуссию, а возраст только подтверждает отсутствие опыта. Вы не смогли привести ни одного аргумента в пользу своих высказываний.
Но вы не переживайте, у меня есть для вас выход. Let me show you:
lh4.ggpht.com/_5P-0biIVVFs/S3_YB7AZ7DI/AAAAAAAAAMM/Rg1MYjKNJm8/
Но вы не переживайте, у меня есть для вас выход. Let me show you:
lh4.ggpht.com/_5P-0biIVVFs/S3_YB7AZ7DI/AAAAAAAAAMM/Rg1MYjKNJm8/
Ааахахахахаха.
Или вот еще: radar.oreilly.com/2009/06/bing-and-google-agree-slow-pag.html
«Увеличение времени загрузки страницы на 2 секунды уменьшает посещаемость на 4,4%».
А твой пример «100 кб вместо 10 кб» это 3 лишних секунды на 256 кбит/с. Это очень</b много.
«Увеличение времени загрузки страницы на 2 секунды уменьшает посещаемость на 4,4%».
А твой пример «100 кб вместо 10 кб» это 3 лишних секунды на 256 кбит/с. Это очень</b много.
Дело в том, что на каждый запрос тратиться время не в зависимости от размеров, если у вас будет 1000 картинок, или одна картинка 1 на которой нарисованы 1000, то второй вариант будет грузиться нааааамного быстрее. Также и с js и css файлами.
Так, а если картинки как и CSS, JS и тд хранятся в памяти? сколько из памяти будет занимать данная процедура? и какова нагрузка в этом случае?
Абсолютно неважно где они хранятся.
Имеются вполне конкретные накладные расходы на соединение, которые и стараются минимизировать.
Более того у браузеров есть ограничение на число параллельных соединений в старых это было 2, в новых 4,6,8.
Имеются вполне конкретные накладные расходы на соединение, которые и стараются минимизировать.
Более того у браузеров есть ограничение на число параллельных соединений в старых это было 2, в новых 4,6,8.
Очень большая разница где они хранятся. Одно дело идёт операция файловой системы, другое дело из памяти, а что соединение? на него много процессорного времени используется когда файл напрямую запрашивается?
Уфффф… Вы унылы.
Для способа хранения — разница есть.
Но для разрезанных скриптов или объединенных в один файл — нет никакой разницы где они храняться в файле или в памяти на сервере.
А наличие 20 коннектов, вместо 1го, таки имеет разницу и для сервера и для пользователя.
Причины были описаны.
Выучите хоть что-нибудь из того с чем работаете.
Для способа хранения — разница есть.
Но для разрезанных скриптов или объединенных в один файл — нет никакой разницы где они храняться в файле или в памяти на сервере.
А наличие 20 коннектов, вместо 1го, таки имеет разницу и для сервера и для пользователя.
Причины были описаны.
Выучите хоть что-нибудь из того с чем работаете.
Да уж. ещё один любитель переходить на личности.
Вам я советую думать и почитать про минимализм, про пошаговый подход, про альтернативные решения. Не стоит скриптами и кашу варить и ковёр выбивать.
Там где 20 коннектов на страницу — большие вопросы к архитектуре и коду. ( это хоть вы можете понять? )
Вам я советую думать и почитать про минимализм, про пошаговый подход, про альтернативные решения. Не стоит скриптами и кашу варить и ковёр выбивать.
Там где 20 коннектов на страницу — большие вопросы к архитектуре и коду. ( это хоть вы можете понять? )
Буратино был тупой. Тупой как дрова.
Над твоими сайтами мы уже посмеялись на античате. Твоё дело тут извини.
Буратино вообще не было, это выдуманный персонаж. Прочти хоть золотой ключик, ну я не знаю прям.
Это всё что ты можешь? минусы ставить? да что ты вообще можешь? ты жалкая кучка испражнений, да бог тебя вообще не хотетл. Обезьяна космонавт куда полезнее тебя.
Sign up to leave a comment.
Фокус с HeadScript (сборка в один файл)