управление скоростью реакции сайта

составляющие скорости

инициализация

отрисовка html/css

проблемы подключения js

подключение js после контента

инициализация

инициализация скриптов: минимум действий

вредные советы

подключение обработчиков

скорость поиска элементов

глобальные обработчики

потенциал роста

время реакции элементов

ускорение click

время реакции элементов

случайный mouseover/mouseout

выпадающие меню

Новый Открыть… Последние > Выход Презентация Отчёт-март ПРЕВЕД!!! Документ (1)

что делать?

пример «медленного hover»

Element.delayedHover()

Element.Methods.delayedHover = 
    function(element, handler, delay) {
        element = $(element);
        
        var delayed = 
            handler.getDelayedHandlers(delay);
    
        element.observe('mouseover', 
             delayed.handlers.over);
            
        element.observe('mouseout', 
             delayed.handlers.out);
        
        return delayed;
    }

Function.getDelayedHandlers()

var over = function() { 
    if (timeouts.out) {
        clearTimeout(timeouts.out);
        timeouts.out = null;
    }
    timeouts.over = setTimeout(
        function () { __function(true); }, overDelay) 
};
var out = function() { 
    if (timeouts.over) {
        clearTimeout(timeouts.over);
        timeouts.over = null;
    }
    timeouts.out = setTimeout(
        function () { __function(false); }, outDelay) 
};

пример использования

var tooltip = $('helpTooltip'); 

function showTooltip (hover) { 
    if (hover) {
        tooltip.show();
    } else {
        tooltip.hide();
    } 
}

$('helpButton').delayedHover(
    showTooltip, 
    {over: 200, out: 100}
);

Вопросы?