Из моего исследования я понимаю, что есть три способа размещения 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.