webentwicklung-frage-antwort-db.com.de

D3.JS Browser-Unterstützung

Könnte ein Entwickler mit Erfahrung mit D3.JS angeben, welche spezifischen Browser und Browserversionen in der Praxis die D3.JS-Bibliothek am ehesten unterstützen?

Gibt es eine Liste von D3.JS-Komponenten, von denen bekannt ist, dass sie nicht mit bestimmten Browsern und Browserversionen kompatibel sind?

Die D3.JS-Website schlägt vor:

Browser-Unterstützung

D3 unterstützt sogenannte "moderne" Browser, was im Allgemeinen alles außer IE8 und darunter bedeutet. D3 wurde gegen Firefox, Chrome (Chromium), Safari (WebKit), Opera und IE9) getestet. Teile von D3 funktionieren möglicherweise in älteren Browsern als Kern Für die D3-Bibliothek gelten Mindestanforderungen: JavaScript und die W3C-DOM-API. Für IE8 wird die Kompatibilitätsbibliothek Aight empfohlen. D3 verwendet die Selectors API Level 1, Sie können Sizzle jedoch aus Kompatibilitätsgründen vorab laden. Sie benötigen einen modernen Browser, um SVG und SVG zu verwenden CSS3 Transitions. D3 ist keine Kompatibilitätsebene. Wenn Ihr Browser keine Standards unterstützt, haben Sie leider kein Glück. "

Ich hatte jedoch auf eine spezifischere Antwort gehofft.

39
user1836288

Ich werde hier auf die Sprünge gehen und SVG-Unterstützung mit D3-Unterstützung gleichsetzen, da dies (meiner Meinung nach) der nützlichste Teil der Bibliothek ist.

In diesem Sinne sollten Sie über diesen Link die genauen Browserversionen finden, die dies unterstützen: http://caniuse.com/svg

Und dies entspricht dem, was Sie von der D3-Site eingefügt haben: Mit Ausnahme von IE) hat praktisch jeder große Browser-Anbieter SVG-Unterstützung für viele, viele Versionen.

Deine Frage lautet "in der Praxis" und das bedeutet SVG. Ja, ich weiß, dass es einige Beispiele für die Verwendung von D3 mit Nicht-SVG-Teilen des DOM gibt, aber die überwiegende Mehrheit der Beispiele in der Galerie sind SVG-basiert.

25
explunit

D3 ist eine Bibliothek für Datenmanipulationen mit vielen Hilfswerkzeugen für die Datenvisualisierung mit SVG und Canvas.

Mit D3 erhalten Sie direkten Zugriff auf alle grundlegenden Funktionen von HTML und SVG. Dies bedeutet, dass die browserübergreifende Kompatibilität durch die Elemente und Attribute eingeschränkt ist, die Ihr Code anstelle von D3 selbst verwendet.

Hier einige Beispiele für HTML5 und CSS :

// Requires HTML5
d3.select('body').append('nav');

// Requires CSS3 transformations
d3.select('div').style('transform', 'matrix(1, -0.3, 0, 1, 0, 0)');

und eine für SVG und SMIL :

// Requires SMIL
d3.select('rect').append('animate')
   .attr('attributeName', 'x')
   .attr('from', 10)
   .attr('to', 50);

und eine für Canvas :

// Requires Canvas
d3.select('body').append('canvas');

Wenn wir nur das D3-Framework selbst betrachten (zum Beispiel, um nur die Geoprojektionsfunktionen, aber keine DOM-Elemente usw. zu verwenden), ist die browserübergreifende Kompatibilität durch die Browserunterstützung von ECMAScript 5 aufgrund des eingeschränkt intensiver Gebrauch von map, forEach usw.

6