Используемая замена D3 в IE8 (графики с D3 и svg)

Я разработал рабочие диаграммы, управляемые D3, и, насколько все остальные браузеры идут, проблем нет.

но в последнее время появилась необходимость их поддержки в Internet Explorer 8.

Но пока я не могу сделать этот html-дисплей в IE8.

это теги, используемые в D3:

<svg> <path> <g> <line> <circle> <rect>

за последние 6 часов я просмотрел много материалов и вопросов, включая:

"Показывать встроенный SVG в IE8, который этот ответ с октября 2012 года:

Я тоже изучал это, и появилось несколько вариантов.

  • Chrome Frame - плагин для браузера, который на самом деле использует хром внизу, что означает, что SVG работает. Это здорово, если вы можете развернуть плагины в браузере, для реальной коммерческой среды, но это может быть невозможно.

  • SVG Web - Цель заключается в том, чтобы SVG использовать во всех браузерах. Это похоже на довольно большой проект, в котором есть вход Google. Это, однако, не работает из коробки с D3, хотя я мало знаю о проблемах.

  • D34Raphael - Вы упомянули об этом, я обнаружил, что он не работает из коробки. Проверьте проект на GitHub, в течение нескольких месяцев не было каких-либо действий по фиксации, и некоторые запросы на загрузку "сначала проходят, пытаясь получить поддержку .on(), необходимой для привязки события". Если это не поддерживает события, это проблема для вас? Я вообще держался подальше от этого.

  • R2D3 - снова еще один, который вы упомянули. Я взял пример Sankey с сайта D3 и должен был внести несколько изменений, чтобы заставить его работать. Основные вещи, которые я не мог получить (перетащить события, группы - хотя можно использовать альтернативу). Потребовалось около дня усилий, чтобы привести пример, работающий в IE8, и я считаю, что он в работоспособном состоянии. Проект на GitHub также намного активнее, разработчик совершает, тянет работу и очень активно обсуждает и т.д. Это получает мой голос.

также:

Совместимость D3 IE8?

wikipedia.org/wiki/Scalable_Vector_Graphics

Совместимость SVG Web

Но решения, использующие клиентские плагины, неприемлемы, и пока выглядит, что я не могу отобразить svg в IE8. Таким образом, решение состоит в том, чтобы найти другие способы визуализации векторных графов. Я полагаю, что у других были те же проблемы.


Edit:

в любом случае люди, которые столкнутся с этой проблемой, по крайней мере будут иметь несколько сконцентрированные материалы и поймут, что нет простого/реального решения для отображения svg на IE8 и лучше потратить время, начиная с существующей перезаписи кода/настройка для версии, отличной от svg

Edit:

после некоторого тестирования я бы сказал, что стоит попробовать перейти к примерам R2D3 и посмотреть, возможно ли его упростить/выполнить код в IE8

Образцы

Edit:

В процессе тестирования разных элементов отдельно возникают некоторые проблемы r2d3.

наиболее распространенным будет Недопустимый аргумент и Объект не поддерживать это свойство или метод

поскольку я не привык к разработке для IE8, были некоторые полезные советы, которые я нашел:

dump javascript vars а также отображать объекты

Ответы

Ответ 1

Не уверен, что вы все еще ищете ответ, но я столкнулся с этой проблемой в проекте несколько лет назад. Мы перешли на HighCharts для совместимости браузера. В то время он все еще находился в зачаточном состоянии как графическая библиотека, с тех пор он стал намного более мощным и все еще поддерживает поддержку браузера в IE6.

Ответ 2

IE8 (насколько я вижу) просто не поддерживает SVG. Единственное решение, которое я вижу в работе, - это использовать другую библиотеку графов, которая использует холст для рисования его компонентов. Подумайте о библиотеках, таких как CanvasJS, ChartsJS, GoJS или VisJS Network Graphs, а затем используя excanvas, чтобы заставить их работать для IE8.

Другим решением, которое я нашел при исследовании этой темы, является использование Chrome Frame. Это делает IE8 поддержкой SVG. Хотя, к сожалению, Chrome Frame удален и больше не поддерживается.

Зная все это, вы должны спросить себя: "Стоит ли обойти все это для менее 0,1% людей, которые все еще используют IE8 и ниже? ".

Потому что, если вам нужна полная совместимость с d3, вам, вероятно, придется написать свой собственный конвертер из svg на холст, и даже тогда вам все равно придется надеяться, что excanvas поддерживает все написанные вами функции холста.

Изменить: изменил процент браузера на текущее использование IE8

Ответ 3

К сожалению, для большинства людей, которые сейчас поддерживают IE8, существуют ограничения для клиентов, а не потребители.

Не сообщая тем, кто запросил у него ограничения, обратную совместимость и стоимостные последствия наряду с ценными ссылками из этой публикации, ваши лучшие решения для создания холста в IE7/8 и использование вариантов JScharts - ваш лучший вариант.

Конечно, это означает, что вы не используете D3, если вы не хотите удвоить свою рабочую нагрузку = стоимость. Не забудьте упомянуть об этом каждый раз.

Удачи.