Используемая замена 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, если вы не хотите удвоить свою рабочую нагрузку = стоимость. Не забудьте упомянуть об этом каждый раз.
Удачи.