Доступ к переменным не локальной области видимости требует больших затрат… не увлекайтесь замыканиями без надобности… хотя на простеньких задачах, коих большинство это неважно.
Кстати прятать код с локальными переменными и обьектами можно не только в анонимной функции
(function(){
//ваш спрятанный код
}();
но и в анонимном конструкторе обьекта два байта короче :-) и читается легче
new function(){
//ваш спрятанный код
};
точку с запятой не забывайте иначе при сжатии кода могут быть проблемы.
получение тегов встречающихся в цепочке выбранных тегов весьма сложна для базы данных, я не видел реализации которая достоверно фильтровала бы цепочки длиннее двух - трех тегов. Для маленьких объемов записи можно сделать. Для больших башковитые дядьки говорят база умрет под приличным напором.
eval выполняется учитывая контекст в котором его вызывают, видя локальные переменные и переменный в замыкании, лучше создававть через конструктор анонимную функцию. Она быстрее работает:
var ret = (new Function('return '+reg.responseText))();
Удобнее былобы включать режим с сеткой не через query-srting, а якорем.
Чоб страница не перезагружалась. Ну и для такой бодяги совсем не нужно заводить не анонимную функцию в глобальной видимости.
можно еще проще
Еще проще.
window.App = new function(){
...
};
так можно присваивать внутри функции, чтоб глобально видать было, в том числе анонимных - не пачкающих глобальное пространство имен
>и JavaScript
>
>var $f = function($a, $b)
>{
>return $a * $b;
>};
>
>
> Небольшое отличие: при такой форме определения функции в JavaScript после закрывающей фигурной скобки точка с запятой не обязательна.
---
Обязательна точка с запятой, потому что тут переменной присваивается объект-функция, точказапятая не нужна когда создаешь именованую функцию.
Еще перловики удивляются что хеши в js сохраняют последовательность значений, т.е. в цикле for(key in obj) порядок будет тотже что и в присваивании.
>(доступен оператор проверки наличия ключа 'b' in a)
---
в IE5 недоступен. но можно проверить на undefined а еще в нутри условия if(a.b) если это свойство не может быть пустой строкой, null, 0 или false
хотите ссылку http://clubs.ya.ru/4611686018427388103/
это клуб в котором должны писать по интересующей вас теме, во всяком случае я пишу. И можно людей в нем состоящих прочесать, у каждого блог есть.
FireFox - склонна к полноте, никогда не кормите ее вспышками, у нее от них со временем чудовищное ожирение наступает. Так что даже в окошках свободного воздуха не остается остальным домашним.
да не умеет носить любое тряпье так чоб выглядеть как конфетка, зато умеет делать такие штуки о которых другие даже не слыхали. У нее научились модной технике адджакс, экспершенсы бехейворсы и много всего прочего, короче взрослая женщина которую незаслуженно презирают всякие юнцы. Не знают что Аллах сотворил не зря ее он как и зрелые мужчины любит разнообразие.
могу выложить код как я это сделал, один раз сделал, несколько раз правил, и везде использую.. куда выложить только? я щас переосмысливаю свои наработки и выкладывать в свой гуглкод не хочется, чтобы не запутать.
В сущности такая байда нужна только для проверки вводимых в форму полей.. вот я и забацал валидатор, ну он еще кое чо может делать во время проверки
Можно смотреть за всплывающими событиями: keyup','mousedown','activate'.
Если обработчик сработает на элементе form или у которой есть предок form, подключаем к этой form нужный нам обработчик. Конечно надо следить чоб на одну и туже форму не навесить несколько обработчиков.
в jsx другая идея, там вся фишка в произвольных событиях на произвольных объектах, а обработку всплывающих обектов я у него не видел, внимательнее чтоли посмотреть.. да он сам на конференции говорил что его движок использует джиквари или бейс2, в этих движках обработчики событий навешиваются на каждый элемент. Если в последнее время ничто не поменялось. У них все шикарно работает до тех пор пока элементы вставлять не начнешь.
После подключения обработчика события на элементы определенной категории вставленные элементы с такой же категорией небудут обработаны, их снова нужно будет подключать.
Насчет проработанности, я еще не дорос до создания супер пупер библиотеки, я только предлагаю компактные решения конкретной проблемы.
Посмотрите еще одно решение по отслеживанию событий на странице.
Вообще свойство "всплывать" у некоторых событий удобно использовать во многих задачах.
web.archive.org/web/20071206145017/http://www.jorendorff.com/articles/javascript/speed-test.html
Кстати прятать код с локальными переменными и обьектами можно не только в анонимной функции
(function(){
//ваш спрятанный код
}();
но и в анонимном конструкторе обьекта два байта короче :-) и читается легче
new function(){
//ваш спрятанный код
};
точку с запятой не забывайте иначе при сжатии кода могут быть проблемы.
var ret = (new Function('return '+reg.responseText))();
Чоб страница не перезагружалась. Ну и для такой бодяги совсем не нужно заводить не анонимную функцию в глобальной видимости.
Еще проще.
window.App = new function(){
...
};
так можно присваивать внутри функции, чтоб глобально видать было, в том числе анонимных - не пачкающих глобальное пространство имен
>
>var $f = function($a, $b)
>{
>return $a * $b;
>};
>
>
> Небольшое отличие: при такой форме определения функции в JavaScript после закрывающей фигурной скобки точка с запятой не обязательна.
---
Обязательна точка с запятой, потому что тут переменной присваивается объект-функция, точказапятая не нужна когда создаешь именованую функцию.
Еще перловики удивляются что хеши в js сохраняют последовательность значений, т.е. в цикле for(key in obj) порядок будет тотже что и в присваивании.
>(доступен оператор проверки наличия ключа 'b' in a)
---
в IE5 недоступен. но можно проверить на undefined а еще в нутри условия if(a.b) если это свойство не может быть пустой строкой, null, 0 или false
это клуб в котором должны писать по интересующей вас теме, во всяком случае я пишу. И можно людей в нем состоящих прочесать, у каждого блог есть.
В сущности такая байда нужна только для проверки вводимых в форму полей.. вот я и забацал валидатор, ну он еще кое чо может делать во время проверки
Если обработчик сработает на элементе form или у которой есть предок form, подключаем к этой form нужный нам обработчик. Конечно надо следить чоб на одну и туже форму не навесить несколько обработчиков.
После подключения обработчика события на элементы определенной категории вставленные элементы с такой же категорией небудут обработаны, их снова нужно будет подключать.
Насчет проработанности, я еще не дорос до создания супер пупер библиотеки, я только предлагаю компактные решения конкретной проблемы.
Вообще свойство "всплывать" у некоторых событий удобно использовать во многих задачах.