Перенос части структуры DOM или SVG с сервера на клиентский браузер - PullRequest
1 голос
/ 12 декабря 2011

Недавно я запустил высокоинтерактивное html5-приложение, использующее d3.js и svg.

Хотя в настоящее время он полностью работает в браузере, я позаботился об отделении кода, используемого для генерации структуры SVG из этого манипулируют ими.

Чтобы защитить хотя бы логику генерации SVG (гораздо больше усилий), я играю с идеей генерации на стороне сервера, используяnode.js, каким-то образом «обрезает» результирующую структуру DOM или SVG, передавая ее браузеру и эффективно «прививая» ее (соответственно) в локальный DOM или подготовленный HTML-div.Цели:

  1. ни один из исходных "генерирующих svg" javascript не будет передан
  2. любая результирующая структура должна в конечном итоге быть адресуемой с помощью вызовов select () или selectAll () d3

У меня нет node.js и только смутное знание HTML5 DOM.Мои вопросы:

  • Возможна ли передача части необработанной структуры DOM или SVG в браузер и как?
  • Если оба варианта возможны, что бы вы порекомендовали
  • Существуют ли конкретные проблемы безопасности, о которых мне следует знать

Я понимаю, что это потенциально сложная проблема, приветствуются частичные ответы и соответствующие указания (книги, учебники, примеры).

ХотяЯ интенсивно искал, прежде чем опубликовать этот вопрос, я пропустил Доступ к объекту DOM, определенному во внешнем файле SVG .Выглядит многообещающе, но, учитывая размер и сложность структур, которые мне нужно перенести, я бы хотел получить дополнительный комментарий.

Спасибо

1 Ответ

2 голосов
/ 12 декабря 2011
  1. Возможна ли передача части необработанной структуры DOM или SVG в браузер и как?

    Да, это возможно.Просто перенесите любой конкретный подузел / дерево SVG как собственный XML-документ.

  2. Если оба варианта возможны, вы бы порекомендовали

    HTTP-связь - это все строки, поэтому вы не можете передавать объекты DOM по сети.Все, что вы можете передать, это сериализованные версии (необработанный SVG XML).

  3. Существуют ли конкретные проблемы безопасности, о которых мне следует знать

    Нетчто я могу придумать.Это похоже на стандартную генерацию контента на стороне сервера.О каких проблемах вы думали?Вы не собираетесь выполнять необработанный код, отправленный в HTTP-запросе на вашем сервере?

...