Экспорт d3 __данных__ свойства с помощью jsdom

#javascript #node.js #d3.js #scatter-plot #jsdom

Вопрос:

Я принимаю код для расчесываемой матрицы рассеяния, используя d3 и jsdom на стороне сервера для создания SVG.

SVG отлично генерируется.

Однако в сценарии узла я также привязываю данные к некоторым элементам svg, которые позже используются на стороне клиента для взаимодействия с событиями мыши.

Вот (хорошо известный) снимок:

 var cell = svg.selectAll(".cell")  .data(cross(traits, traits))  ...  

В конце я просто сохраняю сгенерированный HTML в файл с помощью

 jsdom.window.document.querySelector("html").outerHTML;  

что на самом деле не сохраняет __data__ свойства .cell элементов.

клиентская сторона данных сотовой связи

Конечно, любой вызов метода, который использует эти значения на стороне клиента, завершается ошибкой с неопределенным значением.

На стороне сервера при отладке я прекрасно вижу __data__ свойство, назначенное каждому из моих элементов svg.

режим отладки на стороне сервера

Мне просто интересно, есть ли способ сообщить jsdom об экспорте/сохранении даже свойств, сохраненных во время генерации, или это можно сделать позже только на стороне клиента???

Комментарии:

1. Я думаю, что на этот вопрос было бы легче ответить, если бы вы могли дать нам подсказку о том, чего вы пытаетесь достичь с помощью этого. О каком объеме данных мы говорим? Кроме того, может быть полезна выдержка из ваших данных.

2. Привет @altocumulus, как я уже упоминал, независимо от данных (содержимого, объема и т.д.), Я просто хочу экспортировать HTML, содержащий свойство данных , ранее видимое и доступное на стороне сервера в объекте jsdom. Причина, по которой я выполняю генерацию .svg на стороне сервера, не имеет отношения к atm. В любом случае свойство данных , созданное с помощью d3, содержит простые данные, например, в виде координат ячеек.

3. Как насчет сброса данных внутри переменной javascript внутри a script , рядом с экспортом SVG?

4. @Mehdi это один из вариантов, если с помощью jsdom ничего нельзя сделать, чтобы «сохранить» эти данные в свойстве элемента.