Как один из разработчиков «медленной» библиотеки позволю себе прокомментировать результаты:
Самописной, не протестированной, не возвращающих статистически значимых результатов «библиотеке» перфоманс тестов, во всяком случае, мы, доверять не смогли бы.
Многие тесты как jQuery так и остальных библиотек написаны довольно спорно, это видно как и по результатам: ванильный джаваскрипт не может быть медленнее библиотечных аналогов; так и по самим тестам: как пример тесты селекторов нужно выполнять в отдельном фрейме, для того что бы обеспечить изолированность выполнения каждого теста, например как сделано у нас – github.com/jquery/sizzle/blob/master/speed/
Скорость имеет значение, но мы так же обязаны балансировать между размером гзипованного кода и стабильностью АПИ библиотеки, как пример: мы думали использовать Element Traversing API и новые ДОМ-методы типа insertAdjacentHTML, в некоторых браузерах прирост был до 80-90%, но в некоторых случаях размер, в других, опасность возникновения появления эджевых багов нас остановили.
Иными словами даже если результаты нового кода хороши, в абсолютных числах производительность будет все еще высока и в старом коде, сравнительная скорость может быть хуже, но это всего лишь детали.
Тем не менее, сейчас, мы разрабатываем возможность автоматического тестирования скорости после каждого коммита, это позволит нам видеть регрессии сразу после их возникновения, надеюсь мы успеем это сделать ко времени выхода 2.1/1.11.
Это не так, вы можете использовать jQuery 2.0 при этом поддерживая пользователей IE6–8. API 1.9 и будущей версии 1.10 никак не отличаются от 2.0, вы можете использовать condition comments для IE, давая пользователю старого браузера загрузить только 1.x, а для современных только 2.0.
В оригинальном посте все это есть, опущение упоминания этой возможности в этом посте довольно прискорбно.
Вы ударяетесь в крайности, отсутствие поддержки css и js? Сколько у вас таких пользователей? Сколько у вас пользователей с «бортовыми компьютерами»?
Определение модного слова 2003 года, не значит что у вас должна быть поддержка таких пользователей, если у вас их нет, для стартапа, такой конъектуры пользователей не существует.
Кстати грейсфул деградатион, не так что бы противоположна прогрессив энчатменту,
у вас может быть два разных сайта с одним контентом (или почти одним), для пользователей с ограниченными возможностями (как вы сделали для ie6) и пользователей с расширенными — это прогрессив, при этом в расширенной версии может использоваться концепция грейсфулла.
Вы не поняли, это правда, если картинке выставить дисплей нон, то запрос на нее все равно пойдет. Но пожалуйста, прочитайте второй абзац моего прошлого комментария, я же не просто так про врапперы вам написал. Воспользовавшись описанным мною способом, для скрытой картинки запроса не будет, но при условии, если вы задаете картинку через бэкраунд. Это одна из особенностей работы с медиа куиррисами. Поэтому в скрипте будет достаточно строчки с new Image.
Цикл, сейчас, вам не нужен, об этом стоит задуматься только когда вероятность нескольких логотипов станет реальностью. Из-за того что у вас используется цикл, стили у элемента спрашиваются дважды, когда достаточно и одного раза.
Вставляйте картинки сразу, без джаваскрипта, но не через img, а через тэг с бэкраундом,
оберните эти тэги во врапперы, у этих врапперов, для нужного логотипа, в медиа куиррисах поставьте дисплей нон, в этом случае браузеры не будут подгружать не нужную картинку. В том же скрипте, что смотрит на скрытый/показанный логотип, делайте просто new Image().src = «путь до картинки». Если большой/маленький логотип будет показан, то он будет взят из кеша.
В некоторых браузерах бэкраунд будет рендериться медленнее, чем img, но в данном случае разница минимальна.
Цикл вам не нужен, как и getElementsByTagName, firstChild, lastChild будет быстрее. В ифе на проверку показаности логотипа не используйте currentStyle, только getComputedStyle, в ie8 нет поддержки медиа куиррисов. А если и была бы, то нужно было бы использовать грейсфул деградйшен. То есть сначала
должен был бы идти стандартизованный метод – getComputedStyle и только после него уже альтернатива – currentStyle. Из-за невнимания к этой технике вы используете устаревший интерфейс получения стилей в ie9.
noscript вам будет не нужен, для определения того какую картинку показать используйте ваш jsHtml, у тэга html, камел кейс кстати, для классов – плохой тон, так же как это и противоречит концепции бэма, вообще концепцию эту, вы как-то странно используете.
В сравнении с кем? С Фейсбоком или с Cамсунгом? Относительно Самсунга — не много, в сравнении с Фейсбуком — на порядоки больше.
> Поэтому они купили Моторолу Мобилити. Как только антимонопольный комитет разрешил слияние, Моторола Мобилити тут же подала в суд на Apple
Все верно, только не после одобрения, а до.
> (а делать так она по условиям контракт может только с разрешения Гугла).
Спекулятивное утверждение, все издания дающее такую оценку, базируют это мнение на трактовке контракта все одного аналитика, когда Гугл заявлял о полной независимости MMI от него. Желтый цвет иногда бывает крайне неприятен.
Я фигею от этого комментария, но более сильньные и ужасные впечатления у меня вызывают положительная реакция сообщества на него.
Есть два бегуна на дорожке, первый, каждый раз проигрывает второму и вы в качестве решение предлагаете ему не тратить свое время, не тренироваться, не пытаться и не учиться, а вообще не прилагать никаких усилий, а в следующий раз на соревнование принести пистолет и после убийства второго, не спеша дойти до финишной прямой.
Вы знаете что у Гугла огромное количество патентов и целая армия патентных юристов… и не одного патентного иска? Вы знаете что Гугл постарался привнести новые концепции и идеи в социальные сети? Он попытался создать что-то новое и улучшить старое, он не пытался сделать своего соперника хуже него, он попытался стать лучше него.
Патентные войны, копирастия – пример предлагаемой вами политики. Я вас презираю и ненавижу, и всех тех кто с вами согласен, хотя при этом, я даже не зная вашего имени.
На мой взгляд у вас получилась не очень хорошая статья.
Вы излишне многословны, большинство метафор витиеваты и туманы, некоторые же и вовсе не верны, при этом у вас сохраняется зависимость определения одних метафор от других.
И это не фантастический роман, в произведение которого многое можно оставить на откуп фантазии читателя, в таких статьях как эта, иллюстрации ваших слов совсем бы не помешали.
Вы ошибаетесь, поддержка webkit-touch-callout в iOS заявлена начания со второй версии
Я же проверял до версии 3.2, все работает исправно.
На адройдах это свойство не может работать в принципе, это расширение функционала вебкита для Safari и только для iOS.
Включаем и настраиваем легенду (по умолчанию она выключена). Вывел наверх, так как вывод под графиком пока работает коряво
Поиграйтесь со значением «spacingBottom» в свойстве «chart», выставите его в 40 например, должно помочь, про это был вопрос на форуме хайчарта, ссылку сейчас не найду.
А графики глючные, даже очень, но пока это, кажется, лучшее решение на джаваскрипте.
Вы не могли бы дать ссылку на определение Аббревиатуры «Ajax», в которой говориться что «Ajax» это только XHR (Как я понимаю вы только этот способ назвали айяксом).
В самой аббревиатуре про объект XHR нет ни слова, английская википедия называет айяксом группу асинхронных методов обмена с сервером, из которых самым частым транспортом выступает XHR, при этом про эксклюзивность этого объекта на аббревиатуру ничего не говориться. Кстати определение JSONP, находиться в категории айякса.
Русская же википедия называет три «технологии динамического обращения к серверу „на лету“», называя их одним из принципов аяйкса.
Jesse James Garrett впервые использовав эту аббревиатуру называл ею целую группу технологий. Тип данных, например, исходя из той статьи, всегда должен был быть XML, а XML всегда должен обрабатываться через XSLT
Цитата Nicholas C. Zakas
By now, nearly everyone who works in web development has heard of the term Ajax, which is simply a term to describe client-server communication achieved without reloading the current page. Most articles on Ajax have focused on using XMLHttp as the means to achieving such communication, but Ajax techniques aren't limited to just XMLHttp. There are several other methods.
В большинстве случаев их хватает, но (sic!) в IE7 getElementByClass() поломана и использование селектора по классу приведёт к польному перебору элементов в этом браузере.
getElementsByClassName, был добавлен только в девятом ie (sic!).
Контекст, не дает выигрыша в производительности с qSA, но он есть без его использования.
$('.divs', document.getElementById('wrapper'));
document.getElementById('wrapper').querySelectorAll('.divs'); // при наличии возможности использовать querySelectorAll()
В дела компаний подобного масштаба должно вмешиваться государство, как это происходит с любой компанией-гигантом, оказывающей сопоставимое влияние на общество.
Выбор браузера — не маразм, но поддержание конкуренции против монополии, ведь не важно насколько лучше браузер конкурента, никакая рекламная компания или супер-клевые возможности альтернативного продукта не могут тягаться с «выбором по дефаулту». Какой процент браузеров занимал бы сейчас IE, без этого выбора? В 2002-2003 доля IE6 составляла 80 процентов, а все версии IE брали 95 процентов рынка. Вряд ли потому что он был лучше или хуже чем его конкуренты, но он был по дефаулту. Этот старикан до сих про популярен, а ему уже 11 лет.
Насколько сильно разработчики IE7-9 прислушивались бы к консорциуму w3c, если бы сейчас цифры были бы такими же?
Появлялись бы вообще новые версии этого браузера, ведь зачем что-то менять, если «пипал хавает»? Было бы еще больше ужасных несовместимостей всего и вся и костыли для того что бы реализовать, казалось бы, простые вещи. Никаких HTML5 или CSS3, было бы только то, что придумали и навязали нам разработчики Майкрософт.
Но все это — предположения, сейчас же доля IE, по разным подсчетам, только 50 процентов и для того что бы соревноваться, они обязаны создавать и улучшать возможности их детища, если хотят сохранить доминирующее положение на рынке.
Я сожалею о том, что требование возможности выбора браузера не было выдвинуто еще 12 лет назад. И я рад этим выкрикам конкурентов, что звучат сейчас. С антивирусами должно быть так же, у нас должен быть выбор. Явный и очевидный выбор. И судя по тексту статьи — у нас он есть.
Сразу видно в насколько типизированном языке вы программируете.
А разве белый цвет белый? Например #f0ecec, это какой цвет? Вы скажете белый, я скажу серый. Кто-то третий скажет что это ни то ни другое.
Любой цвет вы можете получить смешав красный, зеленый и синий. Так может быть белый цвет это и синий, красный и зеленый вместе? А для собаки или быка насколько белым является красная тряпка?
Язык Руби, к примеру, родился только потому что его автор, Юкихиро Мацумото считал что не существует настоящего объектно-ориентированого языка. Поэтому решил сделать свой — настоящий. Тем не менее если мы посмотрим на список ооп-языков в википедии, разве мы найдем там один лишь Руби?
Самописной, не протестированной, не возвращающих статистически значимых результатов «библиотеке» перфоманс тестов, во всяком случае, мы, доверять не смогли бы.
Многие тесты как jQuery так и остальных библиотек написаны довольно спорно, это видно как и по результатам: ванильный джаваскрипт не может быть медленнее библиотечных аналогов; так и по самим тестам: как пример тесты селекторов нужно выполнять в отдельном фрейме, для того что бы обеспечить изолированность выполнения каждого теста, например как сделано у нас – github.com/jquery/sizzle/blob/master/speed/
Скорость имеет значение, но мы так же обязаны балансировать между размером гзипованного кода и стабильностью АПИ библиотеки, как пример: мы думали использовать Element Traversing API и новые ДОМ-методы типа insertAdjacentHTML, в некоторых браузерах прирост был до 80-90%, но в некоторых случаях размер, в других, опасность возникновения появления эджевых багов нас остановили.
Иными словами даже если результаты нового кода хороши, в абсолютных числах производительность будет все еще высока и в старом коде, сравнительная скорость может быть хуже, но это всего лишь детали.
Тем не менее, сейчас, мы разрабатываем возможность автоматического тестирования скорости после каждого коммита, это позволит нам видеть регрессии сразу после их возникновения, надеюсь мы успеем это сделать ко времени выхода 2.1/1.11.
В оригинальном посте все это есть, опущение упоминания этой возможности в этом посте довольно прискорбно.
Определение модного слова 2003 года, не значит что у вас должна быть поддержка таких пользователей, если у вас их нет, для стартапа, такой конъектуры пользователей не существует.
Кстати грейсфул деградатион, не так что бы противоположна прогрессив энчатменту,
у вас может быть два разных сайта с одним контентом (или почти одним), для пользователей с ограниченными возможностями (как вы сделали для ie6) и пользователей с расширенными — это прогрессив, при этом в расширенной версии может использоваться концепция грейсфулла.
Цикл, сейчас, вам не нужен, об этом стоит задуматься только когда вероятность нескольких логотипов станет реальностью. Из-за того что у вас используется цикл, стили у элемента спрашиваются дважды, когда достаточно и одного раза.
Вставляйте картинки сразу, без джаваскрипта, но не через img, а через тэг с бэкраундом,
оберните эти тэги во врапперы, у этих врапперов, для нужного логотипа, в медиа куиррисах поставьте дисплей нон, в этом случае браузеры не будут подгружать не нужную картинку. В том же скрипте, что смотрит на скрытый/показанный логотип, делайте просто new Image().src = «путь до картинки». Если большой/маленький логотип будет показан, то он будет взят из кеша.
В некоторых браузерах бэкраунд будет рендериться медленнее, чем img, но в данном случае разница минимальна.
Цикл вам не нужен, как и getElementsByTagName, firstChild, lastChild будет быстрее. В ифе на проверку показаности логотипа не используйте currentStyle, только getComputedStyle, в ie8 нет поддержки медиа куиррисов. А если и была бы, то нужно было бы использовать грейсфул деградйшен. То есть сначала
должен был бы идти стандартизованный метод – getComputedStyle и только после него уже альтернатива – currentStyle. Из-за невнимания к этой технике вы используете устаревший интерфейс получения стилей в ie9.
noscript вам будет не нужен, для определения того какую картинку показать используйте ваш jsHtml, у тэга html, камел кейс кстати, для классов – плохой тон, так же как это и противоречит концепции бэма, вообще концепцию эту, вы как-то странно используете.
Удачи! Но маил.ру все равно говно.
В сравнении с кем? С Фейсбоком или с Cамсунгом? Относительно Самсунга — не много, в сравнении с Фейсбуком — на порядоки больше.
> Поэтому они купили Моторолу Мобилити. Как только антимонопольный комитет разрешил слияние, Моторола Мобилити тут же подала в суд на Apple
Все верно, только не после одобрения, а до.
> (а делать так она по условиям контракт может только с разрешения Гугла).
Спекулятивное утверждение, все издания дающее такую оценку, базируют это мнение на трактовке контракта все одного аналитика, когда Гугл заявлял о полной независимости MMI от него. Желтый цвет иногда бывает крайне неприятен.
Есть два бегуна на дорожке, первый, каждый раз проигрывает второму и вы в качестве решение предлагаете ему не тратить свое время, не тренироваться, не пытаться и не учиться, а вообще не прилагать никаких усилий, а в следующий раз на соревнование принести пистолет и после убийства второго, не спеша дойти до финишной прямой.
Вы знаете что у Гугла огромное количество патентов и целая армия патентных юристов… и не одного патентного иска? Вы знаете что Гугл постарался привнести новые концепции и идеи в социальные сети? Он попытался создать что-то новое и улучшить старое, он не пытался сделать своего соперника хуже него, он попытался стать лучше него.
Патентные войны, копирастия – пример предлагаемой вами политики. Я вас презираю и ненавижу, и всех тех кто с вами согласен, хотя при этом, я даже не зная вашего имени.
Вы излишне многословны, большинство метафор витиеваты и туманы, некоторые же и вовсе не верны, при этом у вас сохраняется зависимость определения одних метафор от других.
И это не фантастический роман, в произведение которого многое можно оставить на откуп фантазии читателя, в таких статьях как эта, иллюстрации ваших слов совсем бы не помешали.
Помимо упомянутой в комментариях выше книге, есть так же статья 1997 года — www.cours.polymtl.ca/inf3700/divers/nonSoftwareExample/patexamples.html, рекомендую.
@rsboarder прежде чем публиковать обновление статьи на основе комментариев, советую вам сначала проверять сказанное в них.
Я же проверял до версии 3.2, все работает исправно.
На адройдах это свойство не может работать в принципе, это расширение функционала вебкита для Safari и только для iOS.
Поиграйтесь со значением «spacingBottom» в свойстве «chart», выставите его в 40 например, должно помочь, про это был вопрос на форуме хайчарта, ссылку сейчас не найду.
А графики глючные, даже очень, но пока это, кажется, лучшее решение на джаваскрипте.
В самой аббревиатуре про объект XHR нет ни слова, английская википедия называет айяксом группу асинхронных методов обмена с сервером, из которых самым частым транспортом выступает XHR, при этом про эксклюзивность этого объекта на аббревиатуру ничего не говориться. Кстати определение JSONP, находиться в категории айякса.
Русская же википедия называет три «технологии динамического обращения к серверу „на лету“», называя их одним из принципов аяйкса.
Jesse James Garrett впервые использовав эту аббревиатуру называл ею целую группу технологий. Тип данных, например, исходя из той статьи, всегда должен был быть XML, а XML всегда должен обрабатываться через XSLT
Цитата Nicholas C. Zakas
Вывод «not one» будет только в первом случае
Наверное имелось ввиду что-то подобное:
Тогда в обоих случаях будет вывод «not one»
Если экономите на спичках или искать нужно в большой строке indexOf использовать правильней.
Исправьте опечатки (фунционально, селетор и т.д.).
Оба селектора будут использовать qSA, во втором случае sizzle перепишет
не валидное в валидное.
getElementByTagName -> getElementsByTagName
getElementByClass -> getElementsByClassName
getElementsByClassName, был добавлен только в девятом ie (sic!).
Контекст, не дает выигрыша в производительности с qSA, но он есть без его использования.
В спецификации querySelectorAll есть своеобразный баг —
ejohn.org/blog/thoughts-on-queryselectorall/, поэтому, ваше выражение в jquery, будет выглядить так —
Облегчит.
Это не самый правильный вариант, это единственно правильный вариант.
Только оно эквивалентно выражению —
Выбор браузера — не маразм, но поддержание конкуренции против монополии, ведь не важно насколько лучше браузер конкурента, никакая рекламная компания или супер-клевые возможности альтернативного продукта не могут тягаться с «выбором по дефаулту». Какой процент браузеров занимал бы сейчас IE, без этого выбора? В 2002-2003 доля IE6 составляла 80 процентов, а все версии IE брали 95 процентов рынка. Вряд ли потому что он был лучше или хуже чем его конкуренты, но он был по дефаулту. Этот старикан до сих про популярен, а ему уже 11 лет.
Насколько сильно разработчики IE7-9 прислушивались бы к консорциуму w3c, если бы сейчас цифры были бы такими же?
Появлялись бы вообще новые версии этого браузера, ведь зачем что-то менять, если «пипал хавает»? Было бы еще больше ужасных несовместимостей всего и вся и костыли для того что бы реализовать, казалось бы, простые вещи. Никаких HTML5 или CSS3, было бы только то, что придумали и навязали нам разработчики Майкрософт.
Но все это — предположения, сейчас же доля IE, по разным подсчетам, только 50 процентов и для того что бы соревноваться, они обязаны создавать и улучшать возможности их детища, если хотят сохранить доминирующее положение на рынке.
Я сожалею о том, что требование возможности выбора браузера не было выдвинуто еще 12 лет назад. И я рад этим выкрикам конкурентов, что звучат сейчас. С антивирусами должно быть так же, у нас должен быть выбор. Явный и очевидный выбор. И судя по тексту статьи — у нас он есть.
Ага, я тоже далеко не являюсь фанатом MS :-)
А разве белый цвет белый? Например #f0ecec, это какой цвет? Вы скажете белый, я скажу серый. Кто-то третий скажет что это ни то ни другое.
Любой цвет вы можете получить смешав красный, зеленый и синий. Так может быть белый цвет это и синий, красный и зеленый вместе? А для собаки или быка насколько белым является красная тряпка?
Язык Руби, к примеру, родился только потому что его автор, Юкихиро Мацумото считал что не существует настоящего объектно-ориентированого языка. Поэтому решил сделать свой — настоящий. Тем не менее если мы посмотрим на список ооп-языков в википедии, разве мы найдем там один лишь Руби?