вторник, 22 апреля 2008 г.

Оптимизируем getElementById

Данный метод пригодится для ajax приложений, где часто приходится обращаться к элементам по айди, оптимизировать можно кэшируя элементы, что приводит к серьезному приросту.


// Всё очень просто.
// В результате приблизительно +300% производительности.
var cache = [];
function $(id){
return !cache[id]?cache[id] =
document.getElementById(id):cache[id];
}

// немного модифицировал.
// ибо глобальные переменные часто приносят неприятности.
function $(id){
return !$.cache[id]?$.cache[id] =
document.getElementById(id):$.cache[id];
}
$.cache = [];

3 комментария:

Анонимный комментирует...

$.cache

А что это за синтаксис? Определение переменной функции вне самой функции?

Sun_ua комментирует...

Согласен, синтаксис не особо красив, но, я хотел показать идею, а реализовать можно как вам угодно. например
(function(){
var cache = [];
window.$ = function(){...}
})()

Анонимный комментирует...

Обсалютно Бесплатный контент наслождайтесь http://www.soki.tv ато эти смс замаяли :) и Анекдот Отец шлет сыну телеграмму:
-Как прошел экзамен? Доложи немедленно.
-Экзамен прошел блестяще, профессора в восторге. Просят повторит осенью.