Рафаэль JS: масштаб / getBBox сложного пути НАМНОГО медленнее в IE, чем в Chrome / Firefox? - PullRequest
2 голосов
/ 16 июня 2011

У меня довольно сложный путь в Рафаэле (500 координат).

Когда я использую scale () в Chrome или Firefox, он масштабируется почти мгновенно (0,05 с), но в IE это может занять до 2 секунд!

Я думаю, что это связано со сложностью пути, потому что простой путь с 10 координатами действительно быстро масштабируется.

Но почему ТАКАЯ разница между браузерами? Я знаю, что Chrome / Firefox использует SVG, а IE использует VML, но функция scale () является частью самой библиотеки Raphael, не так ли?

Что также странно, так это то, что когда я масштабирую (), а затем выполняю getBBox (), иногда scale () занимает много времени, а иногда getBBox () .... случайно ...

Есть ли способ получить IE немного быстрее со сложными путями?

Ответы [ 2 ]

0 голосов
/ 21 июля 2011

Я обнаружил, что сложные пути, то есть пути с большим количеством координат, рендерится быстрее, если вы будете выполнять масштабирование внутри собственного кода javascript перед построением строки, передаваемой в Raphael, вместо масштабирования ее по scale * 1002.* функция.Это также верно для функции перевода.

0 голосов
/ 26 июня 2011

IE намного медленнее, чем Chrome / Firefox, для всей работы JS, а не только для сложных.

Нет способа ускорить IE с помощью только кода JS (кроме случаев, когда вы можете оптимизировать саму функцию scale ()).

Я думаю, что лучший способ - использовать более простой путь для пользователей IE, если вы можете.

...