Sto costruendo un'applicazione web che si basa molto su svg. Per riferimento, sto usando la libreria raphael js per occuparsi di tutto ciò.SVG text element speed
In questo caso particolare ho implementato qualcosa che simula una barra di scorrimento e sposta grappolo di funzioni svg (~ 500 elementi) sullo schermo. Una parte di queste funzioni sono gli elementi <text>
(~ 100). Altri elementi includono gli elementi <rect>
, <image>
e <path>
.
Così, ho notato che la mia applicazione non è davvero molto scattante sul mio portatile, ed è giù proprio fastidiosa per affrontare un iPad, a causa della velocità. Tuttavia, ogni volta che gli elementi del testo vengono rimossi o ignorati durante lo scorrimento, si ottiene immediatamente una velocità decente.
Ho provato a fare alcuni test di velocità (quelli molto grezzi, utilizzando new Date().getTime()
) e ha scoperto che ci vogliono circa 10 ms per spostare tutti gli elementi ad eccezione di <text>
elementi, ma ci vuole ~ 120 ms quando <text>
elementi sono inclusi.
Credo che questo accada perché ogni lettera è rappresentata come una forma vettoriale e richiede un sacco di potenza di calcolo per calcolare ciò che è esattamente ostruito da una struttura così complessa.
È possibile incorporare semplicemente il testo, quindi il testo viene visualizzato come grafica raster e non come forme? O migliorare le prestazioni del rendering del testo in altro modo?
Non ho bisogno di trasparenza di sfondo e non utilizzo alcun carattere di fantasia.
stai usando paper.print() 'o' 'paper.text()' per creare i vostri elementi di testo. Anche un violino potrebbe essere buono. – Bruno
Stai mirando a un gruppo specifico di browser? Le prestazioni differiscono notevolmente tra i browser. – Sebastian
@Bruno Sto usando paper.text(), che è ancora piuttosto lento. – gintas