Если поиск идет через Selectors API, используется встроенный метод querySelectorAll, и Sizzle тут не играет никакой роли...
И try {} catch(e) {} еще используется, чтобы в случае нестандартного селектора, продолжить поиск средствами Sizzle, т.е. поддержка браузером Selectors API тоже не будет играть никакой роли.
В браузерах, поддерживающих Selectors API используется встроенный метод querySelectorAll, и Sizzle тут не играет никакой роли, даже снижает производительность конструкцией:
try {
return makeArray( context.querySelectorAll(query), extra );
} catch(e){}
Которую пришлось ввести из-за того, что Internet Explorer 8 RC1 выдает сообщение об ошибке, при попытке использовать CSS3-селекторы, только непонятно для чего еще StaticDOMNodeList приводить к Array.
Вечно программисты, пришедшие с PHP, начинают подобие статической классовой модели лепить в Javascript. Потом еще и идеи MVC в элементы интерфейса будете внедрять наверное :-)
Зачем лепить из одного языка, другой, ну удобно вам наследование организовывать, как в классах, так сделайте простенький конструктор, зачем эти всякие singleton, static и private в Javascript, где вы их будете применять? Да и вообще в большинстве случаев достаточно одной, максимум двух, функции-конструкторов с наследованием по прототипу для создания любого интерфейса в Javascript. Все остальное лишь добавляет в фреймворк лишний код, неоправданные межкомпонентные связи и, как следствие, снижает производительность, которой Javascript и так похвастаться не может, особенно в старых браузерах.
Это полноценная поддержка Skype в Symbian, на телефонах Nokia нормальный Skype есть уже давно, например, предустановлен в модели W800, но там не Symbian…
Мне кажется статьи для habrahabr.ru должны быть проработаны до мелочей :-)
Вот, например, верстальщики обычно группируют CSS-свойства, относящиеся к размерам элемента, оформлению шрифта, цвету и т.д., у вас же этого абсолютно не прослеживается:
И форматирование кода хромает, то есть пробел между значением свойства и двоеточием, то все слитно. Вы же научить чему-то людей хотите, так преподносите материал соответственно уровню преподавателя :-)
Что за название «contentdiv»? В остальные имена классов тоже названия тегов, к которым они привязаны, добавлять?
А «empty_inner» зачем так называть, если я туда что-нибудь добавлю потом, это уже не empty будет и придется переименовывать класс? Да и без пустых блоков можно обойтись…
В общем, однозначно продолжать писать подобные статьи нужно, даже не важно, что такого материала везде полно, но чтобы он не стал еще одним обычным примером, а был грамотным и профессиональным материалом для изучения, стоит преподносить его в соответствующем виде.
Да, совершенно верно, начинать обучать нужно именно с компилируемых языков. Без базовых понятий системного программирования, совершенно неправильно начинать изучать интерпретируемые языки.
Ага со скобочками там кашмар просто, если не форматировать код нормально, то нереально что-то разобрать :) Но сам язык очень интересный, позволяет работать как с обычными функциями и переменными, так и с предикатами, списками, картежами или как там это все в прологе называется %)
Вот, например, программа для нахождения чисел Фибоначчи:
(defun fib (n) (cond ((> n 2) (+ (fib (- n 1)) (fib (- n 2)))) (t 1)))
Кстати да, заметил, что те, кто не особенно разбирался во всяких C++ и Object Pascal, в Prolog'е начинают ориентироваться быстрее, потому что остальным поменять способ мышления довольно сложно. Еще LISP интересный язык, тоже заставляет по другому думать :)
И try {} catch(e) {} еще используется, чтобы в случае нестандартного селектора, продолжить поиск средствами Sizzle, т.е. поддержка браузером Selectors API тоже не будет играть никакой роли.
Которую пришлось ввести из-за того, что Internet Explorer 8 RC1 выдает сообщение об ошибке, при попытке использовать CSS3-селекторы, только непонятно для чего еще StaticDOMNodeList приводить к Array.
Зачем лепить из одного языка, другой, ну удобно вам наследование организовывать, как в классах, так сделайте простенький конструктор, зачем эти всякие singleton, static и private в Javascript, где вы их будете применять? Да и вообще в большинстве случаев достаточно одной, максимум двух, функции-конструкторов с наследованием по прототипу для создания любого интерфейса в Javascript. Все остальное лишь добавляет в фреймворк лишний код, неоправданные межкомпонентные связи и, как следствие, снижает производительность, которой Javascript и так похвастаться не может, особенно в старых браузерах.
• Gears
• FlashStorage
• userData Behavior (Internet Explorer)
• globalStorage (только Gecko браузеры)
• SQLigth (Safari)
В качестве основы можно взять решение Ильи Кантора.
Такая штука сэкономит много нервов пользователям :-)
Во всех браузерах, потому что visibility не влияет на offsetWidth/offsetHeight
разве это нормально?
Что-то они перемудрили… производительность конечно хорошо, но функция то работает не правильно.
Нету этого атрибута, например в «XHTML Strict 1.0»:
Сообщение об ошибке:
Вместо жирного шрифта на главной отображаются •
Сообщение об ошибке:
Возникает на 14-й странице. Страница не видна.
В новом Adobe Reader все нормально.
Вот, например, верстальщики обычно группируют CSS-свойства, относящиеся к размерам элемента, оформлению шрифта, цвету и т.д., у вас же этого абсолютно не прослеживается:
можно бы было сгруппировать:
И форматирование кода хромает, то есть пробел между значением свойства и двоеточием, то все слитно. Вы же научить чему-то людей хотите, так преподносите материал соответственно уровню преподавателя :-)
Что за название «contentdiv»? В остальные имена классов тоже названия тегов, к которым они привязаны, добавлять?
А «empty_inner» зачем так называть, если я туда что-нибудь добавлю потом, это уже не empty будет и придется переименовывать класс? Да и без пустых блоков можно обойтись…
А вот еще:
субъективно конечно, но я бы сделал так:
В общем, однозначно продолжать писать подобные статьи нужно, даже не важно, что такого материала везде полно, но чтобы он не стал еще одним обычным примером, а был грамотным и профессиональным материалом для изучения, стоит преподносить его в соответствующем виде.
Так вроде еще быстрее в Фаерфоксе:
Да и короче :-)
И повторю, сказанное markshevchenko, что интерпретируемые языки не дают понять, как выполняются некоторые операции на уровне системы.
Вот, например, программа для нахождения чисел Фибоначчи: