Показать сообщение отдельно
  #4 (permalink)  
Старый 30.11.2009, 22:19
Аватар для Shasoft
Профессор
Отправить личное сообщение для Shasoft Посмотреть профиль Найти все сообщения от Shasoft
 
Регистрация: 03.03.2009
Сообщений: 156

Провел небольшой эксперимент по скорости. Может кому будет интересно. Запускал следующий код:
window.onload = function () {
        var maxRect = 50;
        var maxS = maxRect * 10;
        var maxR = maxS;
        var div = document.getElementById("svg");
//        window.console.dir(div);
        div.style.width = maxR+"px";
        div.style.height = maxR+"px";
        var paper = Raphael(div,maxS,maxS);
        //
        var dR = maxR / maxRect;
        var colors = ["red","blue"];
        var tStart = new Date();
        for(var x=0;x<maxR;x+=dR)
         for(var y=0;y<maxR;y+=dR)
         {
          (function() {
            var color = colors[ ((x+y)/dR)%2 ];
            var r = paper.rect(x,y,dR,dR);
            r.attr({
             fill : color
            });
            //*
            r.node.onmouseover = function() {
             r.attr({fill: "#ff0"});
            };
            r.node.onmouseout = function() {
             r.attr({fill: color});
            };
          })();
          //*/
         }
        var tEnd = new Date();
        alert((tEnd-tStart)/1000);

При количестве прямоугольников = 100x100 = 10.000
  • FF 3.5.1: 6 секунд
  • IE8: 116 секунд
  • Opera Portable 9.52: 4 секунды
При количестве прямоугольников = 50x50 = 2500
  • FF 3.5.1: 1 секунда
  • IE8: 10 секунд
  • Opera Portable 9.52: 1 секунда
В опере при выводе сообщения о времени исполнения сами прямоугольники ещё не отрисовываются. Отрисовка происходит через 2-3 секунды после закрытия окна со временем исполнения.

После отрисовки для определения скорости работы водил мышкой по прямоугольникам. Как можно заметить из кода, прямоугольник, на котором находится курсор мыши окрашивается в зеленый цвет.
По этому тесту результаты следующие:
  1. FF - активный прямоугольник (АП) во время движения почти всегда находится под курсором
  2. Opera - АК отстает от курсора. Однако всё-таки повторяет его движения
  3. IE - АК периодически останавливается на месте, пропуская часть траектории
Выводы: Не пользуйтесь IE
Ответить с цитированием