Из моего исследования я понимаю, что есть три способа размещения 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.
<embed>
Я бы вообще избегал. Он устарел в HTML4, не позволяет создавать резервный контент и имеет множество проблем в IE.
<object>
позволит вам включать резервный HTML-контент для браузеров без поддержки SVG. <iframe>
вернется к предложению загрузить файл .svg. Какой из них лучше всего, вероятно, зависит от приложения.
Другая альтернатива для современных браузеров (включая IE от версии 9) - служить вашей веб-странице как application/xhtml+html
и включать элементы SVG на самой странице.
для меня лучший способ - это
<svg id="circle" height="60" width="60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
<image x="0" y="0" height="60" width="60" xlink:href="huge-red-circle.svg" />
</svg>
Здесь вы можете увидеть пример
источник: http://edutechwiki.unige.ch/en/Using_SVG_with_HTML5_tutorial
</object>