Raphaël—JavaScript Library
Хочу прикрутить библиотеку Raphaël (SVG(VML)) к Я.Карты(Google Map).
Может кто-то владеет информацией 1. О скорости отрисовки данной библиотеки для различных браузеров? 2. Об скорости работы SVG в различных браузерах? 3. Об скорости работы VML IE? |
Я бы для начала поковырял файлик YMaps.js на наличие функций работы с векторной графикой. Может и не придется грузить еще один немаленький скрипт.
|
Тогда нужно каждый API карт ковырять для выяснения, что там есть. Учитывая, что процесс этот не документирован и может изменяться от версии к версии - дело безнадежное. Я же как раз хочу сделать минимальную обвязку для каждого API карт и отрисовывать своими функциями. В этом случае можно поддерживать сразу несколько API карт.
Просто не совсем ясно, как будет вести себя SVG/VML при отрисовке на нем 2 тыс объектов (или 20 тысяч). Было бы неплохо на ранней стадии проектирования понимать, нужно ли в дальнейшем делать отсечение невидимых объектов самому или SVG/VML сделает это за меня гораздо быстрее и качественнее. |
Провел небольшой эксперимент по скорости. Может кому будет интересно. Запускал следующий код:
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
После отрисовки для определения скорости работы водил мышкой по прямоугольникам. Как можно заметить из кода, прямоугольник, на котором находится курсор мыши окрашивается в зеленый цвет. По этому тесту результаты следующие:
|
в тесте не хватает браузеров на основе web-kit (Chrome/Safari) =)
|
У меня просто нету в наличие этих браузеров, поэтому и тестов на них не делал.
|
А зачем такое большое количество прямоугольников? Это столько на видимой части докуменда ?
|
Да, на видимой.
|
Часовой пояс GMT +3, время: 17:30. |