Конкатенация последовательностей с инструкциями if в JavaScript

Я пытаюсь настроить сценарий для объединения некоторых переменных внутри последовательности , если они существуют , чтобы поместить соответствующие тэги метаданных в визуализированный HTML-документ.

Мой код конкатенации:

data = "\n\n" + "\n\n\n" + paras.join("\n\n") + "\n\n\n";

Я пытаюсь добавить , если в него (между первым и вторым изделия) входят следующие операторы:

    if (typeof metadata_title !== "undefined") {
        "" + metadata_title + "\n"
    }
    if (typeof metadata_author !== "undefined") {
        "\n"
    }
    if (typeof metadata_date !== "undefined") {
        "\n"
    }

Но я не могу добавить ни одну из этих инструкций непосредственно в код конкатенации (это вызывает ошибку: Непредвиденный маркер ().

Как лучше всего добавить такие операторы в мою последовательность конкатенации?

-121--734295-

Использование битторрент-протокола для распространения ночных построений и CI Этот вопрос продолжается из того, что я узнал из моего вопроса вчера под названием git для распространения ночных построений. В ответах на вышеуказанные вопросы было ясно, что гит не подойдет моему...

Эти вопросы продолжаются из того, что я узнал из моего вчерашнего вопроса под названием , используя git для распространения ночных построений .

В ответах на вышеуказанные вопросы было ясно, что git не будет соответствовать моим потребностям и было рекомендовано повторно изучить с помощью BitTorrent.


Краткая версия

Необходимо распространять ночные сборки среди 70 + людей каждое утро, необходимо использовать git BitTorrent для балансировки нагрузки при переносе.

Длинная версия

NB. Вы можете пропустить следующий абзац, если прочитали мой предыдущий вопрос .

Каждое утро мы должны раздавать нашу ночную постройку в студию из более чем 70 человек (художников, тестеров, программистов, производства и т.д.). До сих пор мы копировали сборку на сервер и записывали программу синхронизации, которая извлекает ее (используя Robocopy внизу); даже при установке зеркал скорость передачи недопустимо медленна, так как она занимает до часа или более для синхронизации в пиковое время (время вне пика составляет примерно 15 минут), что указывает на узкое место в аппаратном вводе-выводе и, возможно, полосу пропускания сети.

Что я знаю до сих пор

Что я нашел до сих пор:

  • я нашел отличную запись в Википедии о BitTorrent протокола , который был интересным читать (я только ранее знал основы того, как торренты работают). Также найден ответ StackOverflow на обмене BITFIELD, который происходит после подтверждения связи между клиентом и сервером.

  • Я также нашел библиотеку MonoTorrent C # Library ( GitHub Source ), которую я могу использовать для записи нашего собственного трекера и клиента. Мы не можем использовать готовые трекеры или клиенты (например, uTorrent).

Вопросы

В моем первоначальном проекте мы создаем систему .торрент и добавление в трекер. Я бы супер-затравка торрент, используя наши существующие зеркала сборки.

Нужно ли с помощью этой конструкции создавать новый файл .torrent для каждой новой сборки? Другими словами, можно ли создать «rolling» .torrent , где, если содержимое сборки изменилось только 20% это все, что нужно загрузить, чтобы получить последнюю ?

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

В ответ на комментарии

  1. Для полной синхронизации вся сборка (включая: игру, исходный код, локализованные данные и образы дисков для PS3 и X360) ~ 37 000 файлы и входящие в только под 50GB. Это будет увеличиваться по мере продолжения производства. Эта синхронизация заняла 29 минут, чтобы завершить в то время, когда происходит только 2 других синхронизации, которые низкий пик, если вы считаете, что в 9 утра у нас будет 50 + людей, желающих получить последнюю.

  2. Мы исследовали дисковый ввод-вывод и полосу пропускания сети с помощью ИТ-отдела; вывод заключался в том, что сетевое место хранения насыщается. Мы также записываем статистику в базу данных синхронизации, эти записи показывают, что даже с горсткой пользователей мы получаем неприемлемые скорости передачи.

  3. В связи с тем, что не используются готовые клиенты, юридическая проблема заключается в наличии приложения, такого как uTorrent , установленного на компьютерах пользователей, учитывая, что другие предметы могут быть легко загружены с помощью этой программы. Мы также хотим иметь пользовательский рабочий процесс для определения того, какое построение вы хотите получить (например, только PS3 или X360 в зависимости от того, что DEVKIT у вас на столе) и иметь уведомления о новых построениях и т.д. Создание клиента с помощью MonoTorrent - не та часть, о которой я беспокоюсь.

6
задан Community 23 May 2017 в 12:30
поделиться