Ich beabsichtige ein FabricJS-Canvas zu haben, das potentiell Dutzende verschiedener Grafiken anzeigt, die entweder als einzelne Bilddateien oder als Sprite angezeigt werden können. Für jede Grafik ist es möglich, dass eine bestimmte Grafik auf der Leinwand 0 bis dutzendfach angezeigt wird. Ich weiß, dass FabricJS die Fähigkeit clipping hat, die die Verwendung von Sprites ermöglichen würde, und ich weiß, dass Sprites im Web den einzelnen Bildern, wie etwa für CSS, in der Regel den Vorzug geben.Fabric.js Effizienz von Clipped Sprite im Vergleich zu Einzelbildern
Allerdings habe ich auch von Browserverhalten/Macken in der Umgebung von Canvas gehört, wo einige Optimierungen, die Sie erwarten könnten, nicht stattfinden - ich kann den Link im Moment nicht finden, aber einen, an den ich mich erinnere war, dass große Canvas-Content-Elemente, die in Chrome nicht sichtbar sind, immer noch eine beträchtliche Zeit benötigen, um berechnet/"gerendert" zu werden, obwohl sie für das Erscheinungsbild auf dem Bildschirm nicht relevant sind.
So sind es bekannte Erwartungen, ob n einzelne nicht-beschnittenen Bilder vorzuziehen/unvorteilhaft auf ein Sprite sein würde, die n mal für eine FabricJS Leinwand abgeschnitten wird? Falls es darauf ankommt, wäre dies keine stark animierte FabricJS-Leinwand; Dinge können sich bewegen, wenn sie zum Beispiel gezogen werden, aber konstante Animation ist in diesem Fall nicht involviert.
Nach http://caniuse.com/#feat=canvas gibt es keine Clipping-Fragen (siehe bekannte Probleme Tab). Das heißt, ich denke, Sie sollten Ihre Top-3-Plattformen (Chrome, iOS und .... Android, sagen Sie ...) und einige grundlegende Leistungstests durchführen. – dsummersl
@dsummersl Interessanterweise erwähnt caniuse.com ein Clipping-Problem in Android; Der Fehlerbericht, zu dem er verlinkt ist, wird als obsolet ohne klare Auflösung geschlossen. – jmq
oh ja, true ... das ticket zu lesen klingt wie es ist wahrscheinlich ein problem für 1/3 von android-browsern (insgesamt grobe guatemate von http://developer.android.com/about/dashboards/index.html). – dsummersl