2013-01-10 7 views
5

Wie behandeln d3.js Entwickler mit Browsern nicht in der Lage, Svg zu rendern? Ich bin sehr neugierig, weil Internet Explorer 9, 8, 7 usw. in großen Schlüsselbereichen der Welt einen beachtlichen Mehrheitsmarktanteil haben, doch scheint es eine so aktive d3.js-Gemeinschaft zu geben, als ob Internet Explorer nicht existieren würde.d3.js Umgang mit nicht-Svg-Browsern

Der Zweck von D3 ist für flexible datengesteuerte Diagramme, so dass komplexe Themen auf intuitive Weise visualisiert werden können. Also die trendigste Tech-Szene anzusprechen und so zu tun, dass alle anderen auch von ihrem Standard-Browser upgraden, ist irgendwie nachlässig.

Ich habe die New York Time Infografiken alternative jpg bietet gesehen, wenn bestimmte Browser erkannt werden

Ich habe auch einige Dinge gesehen, die ein dynamisch erzeugte Bild mit einer D3 svg Server-Seite machen, und zeigen soll.

aber was sind die anerkannten Praktiken und Optionen? Ich denke, das sollte an der Spitze der D3-Homepage sein.

Wie gehen Sie damit um?

+0

Die Optionen und anerkannten Praktiken hängen von Ihrem speziellen Szenario ab. Sie könnten zum Beispiel Canvas anstelle von SVG verwenden, aber dann erhalten Sie keine IE-Unterstützung. Das Vor-Rendern in ein Bild ist wahrscheinlich das robusteste, bietet jedoch nicht viel Flexibilität. –

+0

danke, @LarsKotthoff Ich weiß, dass die Frage zu subjektiv für diese Seite formuliert worden sein könnte, aber ich habe ein paar gute Antworten bekommen – CQM

Antwort

6

Im Allgemeinen können Sie eine robuste Polyfill, wie Raphael, verwenden, um dies zu tun, aber Sie müssen die Ärmel ein wenig aufrollen. Es gibt ein paar Projekte, die in diese Richtung gestartet wurden, um es nahtloser zu machen, aber keines ist zu 100% einsatzbereit, so wie ich es verstehe.

Einige Beispiele:

1

D3 hat einige zukunftsgerichtete Entscheidungen in der Art, wie sie den Javascript-Code geschrieben haben. Für seine Javascript-Verarbeitung wird stark auf neuere ECMAScript-Methoden wie Array.forEach() zurückgegriffen, und die fehlende RGBA- oder Hex-Unterstützung älterer IE (neben anderen Funktionen) wird nicht kompensiert. Ich möchte nicht sagen, dass es "einfach" oder "einfach" ist, aber auf der Oberfläche scheint es, als wäre es möglich, ältere IE-Unterstützung zu D3.js hinzuzufügen - POSSIBLY ohne zu viel Aufwand.