Подтвердить что ты не робот

Лучший способ разместить содержимое SVG в HTML

Из моего исследования я понимаю, что есть три способа размещения SVG файла внутри HTML:

с помощью embed:

<embed src="plot1.svg" width="500" height="320" type="image/svg+xml" />


с помощью объекта:

<object data="plot1.svg" width="500" height="320" type="image/svg+xml" />


с помощью iframe:

<iframe src="plot1.svg" width="500" height="320"> </iframe>


Я экспериментировал со всеми тремя на тестовой установке (встроенный сервер django dev, отображающий страницы в Firefox 3.6). В этой, очевидно, стерильной среде, я не заметил никакой разницы между производительностью или разрешением трёх раз/т/т.

Мой вопрос заключается в том, что один из них лучше, чем два других, и если да, то какой. Ответ, конечно, может зависеть от фактов, которые я пытался ограничить тем, что важно:

Мы часто показываем данные (например, временные ряды) на нашем веб-сайте, обычно создаваемые в ответ на некоторые действия пользователя; основанный на этом действии пользователя, вызов делается в базу данных, возвращаемые данные свернуты и отправляются в механизм построения графиков, который отображает статическое изображение, которое затем встроено в страницу, - очень стандартное.

Это прекрасно работает, но я хотел бы добавить некоторые интерактивные функции к этим диаграммам (например, всплывающие подсказки, гиперссылки с надписями осей, выделение группы точек без сюжета). Некоторые из диаграмм довольно сложны (например, мульти-панельное кондиционирование), и я не нашел библиотеку диаграмм javascript, которая включает эти функции. Наконец, я решил использовать одну и ту же графическую библиотеку (Lattice in R), но при этом создавая каждую диаграмму в svg, а затем добавляя функции пользовательского взаимодействия на этапе последующей обработки, который состоит в основном из функций javascript, которые непосредственно манипулируют XML.

4b9b3361

Ответ 1

<embed> Я бы вообще избегал. Он устарел в HTML4, не позволяет создавать резервный контент и имеет множество проблем в IE.

<object> позволит вам включать резервный HTML-контент для браузеров без поддержки SVG. <iframe> вернется к предложению загрузить файл .svg. Какой из них лучше всего, вероятно, зависит от приложения.

Другая альтернатива для современных браузеров (включая IE от версии 9) - служить вашей веб-странице как application/xhtml+html и включать элементы SVG на самой странице.