Как экспортировать / сохранить обновленное дерево данных d3.js v4

Самое главное, что вы можете сделать, это убедиться, что люди, которых вы отправляете по электронной почте, вряд ли ударят по кнопке «Спам», когда они получат вашу электронную почту. Итак, придерживайтесь следующих эмпирических правил:

  • Убедитесь, что у вас есть разрешение от людей, которых вы отправляете по электронной почте. Никогда не отправляйте электронное письмо тому, кто этого не запрашивал.
  • Четко определите, кто вы в верхней части каждого сообщения, и почему человек получает письмо.
  • Не реже одного раза в месяц отправьте напоминание электронной почте людям из вашего списка (если вы используете список), заставляя их возвращаться в список, чтобы продолжать получать от вас сообщения. Да, это будет означать, что ваш список становится короче с течением времени, но вверху является то, что люди в вашем списке «куплены» и будут с меньшей вероятностью отмечать вашу электронную почту.
  • актуальный и полезный.
  • Дайте людям простой способ отказаться от дальнейших сообщений.
  • Использование отправки электронной почты службы, как SendGrid, который работает трудно поддерживать хорошую репутацию IP.
  • Избегайте использования коротких ссылок - они часто занесены в черный список.

Следуя этим эмпирическим правилам, вы пройдете долгий путь.

1
задан Rick 17 March 2019 в 21:45
поделиться

1 ответ

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

Весь приведенный ниже код добавляется в конце функции обновления в файле dndTree.js.

console.log(root); //root contains everything you need
    const getCircularReplacer = (deletePorperties) => { //func that allows a circular json to be stringified
      const seen = new WeakSet();
      return (key, value) => {
        if (typeof value === "object" && value !== null) {
          if(deletePorperties){
            delete value.id; //delete all properties you don't want in your json (not very convenient but a good temporary solution)
            delete value.x0;
            delete value.y0;
            delete value.y;
            delete value.x;
            delete value.depth;
            delete value.size; 
          }
          if (seen.has(value)) {
            return;
          }
          seen.add(value);
        }
        return value;
      };
    };

    var myRoot = JSON.stringify(root, getCircularReplacer(false)); //Stringify a first time to clone the root object (it's allow you to delete properties you don't want to save)
    var myvar= JSON.parse(myRoot);
    myvar= JSON.stringify(myvar, getCircularReplacer(true)); //Stringify a second time to delete the propeties you don't need

    console.log(myvar); //You have your json in myvar

Теперь, когда у вас есть JSON, вы можете:

  • Скачать новый файл tree.json:

     function download(content, fileName, contentType) {
       var a = document.createElement("a");
       var file = new Blob([content], {
         type: contentType
       });
       a.href = URL.createObjectURL(file);
       a.download = fileName;
       a.click();
     }
     download(myvar, 'tree.json', 'text/plain'); 
    
  • [ 1110] Или вы можете прямо написать в своем файле.

Пример с node.js:

    var fs = require('fs');
    fs.writeFile("tree.json", myvar, function(err) {
      if (err) {
        console.log(err);
      }
    });

Проверьте это для получения дополнительной информации для сохранения файла: Как сохранить JSON в локальный текстовый файл

0
ответ дан abvlle 17 March 2019 в 21:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: