2011-06-16 22 views
2

我在拉斐爾(500座標)有一個相當複雜的路徑。Raphael JS:複雜路徑的scale/getBBox在IE中比Chrome/Firefox慢得多?

當我在Chrome或Firefox中使用scale()時,它幾乎可以即時縮放(0.05秒),但在IE中最多可能需要2秒!

我認爲它與路徑的複雜性有關,因爲具有10個座標的簡單路徑確實可以快速縮放。

但爲什麼有這樣的瀏覽器之間的差異。我知道Chrome/Firefox使用SVG,而IE使用VML,但scale()函數是Raphael庫本身的東西,不是嗎? (),然後做一個getBBox(),有時scale()需要很長時間,有時候getBBox()....隨機....

任何方式讓IE的複雜路徑更快一點?

回答

0

對於所有的JS工作,IE比Chrome/Firefox慢得多,不僅是複雜的。

沒有辦法用JS代碼加速IE(除非你可以優化scale()函數本身)。

我認爲更好的方法是如果可以的話,爲IE用戶使用更簡單的路徑。

0

我發現如果在構建傳遞給Raphael的字符串之前在自己的JavaScript代碼中進行任何縮放,而不是通過Raphael的scale函數縮放它,那麼複雜路徑(即具有許多座標的路徑)渲染速度會更快。翻譯功能也是如此。

+1

我不是自己構建路徑,而是從SVG文件(d屬性)獲取它們... – Dylan 2011-07-23 09:44:06