Сделать разметку на лету или сохранить HTML?

StackOverflow https://stackoverflow.com/questions/475987

  •  19-08-2019
  •  | 
  •  

Вопрос

Любой совет, который сработал для вас при работе с введенной пользователем разметкой, например, вики или уценка. У меня оба процессора & Amp; затраты на пространство базы данных, поэтому я не уверен, куда идти.

<Ол>
  • Сохранить разметку в базе данных & amp; оказывать HTML на сервере для каждого просмотра страницы. (Меньше места в базе данных, но больше ресурсов процессора)

  • Сохранить разметку в базе данных & amp; оказывать HTML на клиенте с использованием JavaScript. (Возможно, сложнее реализовать)

  • Сохраняйте только визуализированный HTML в база данных & amp; преобразовать обратно в разметку, если требуется редактирование. (Опять же, возможно, сложно реализовать).

  • Сохраняйте оба HTML & amp; разметка в база данных. (Удвойте пространство базы данных).

  • Что-то еще.

  • (я использую MFC & amp; Linqtosql).

    Это было полезно?

    Решение

    Я бы сохранил его в базе данных как разметку Wiki, а затем поместил преобразованный вывод HTML в память в кеш на веб-сервере. Независимо от того, какую веб-технологию вы используете, все должны это поддерживать - базовый кортеж (хеш-таблица), на котором указывается URL-адрес, или идентификатор, или аналогичный элемент.

    Другие советы

    Я бы сохранил разметку и рендерил HTML-серверную часть на лету. Вы можете использовать кэширование на стороне сервера, чтобы уменьшить объем выполняемых вами вычислений, и вы можете сохранить представление, которое имеет разумную семантику и может быть преобразовано в text / html / pdf, если необходимо.

    Самый простой способ - хранить разметку и отображать HTML по требованию в кэше (возможно, на диске или в объектах memcached) с отметкой времени визуализации. Таким образом, вы можете проверить, нужно ли вам снова выполнять рендеринг, потому что разметка изменилась или просто обслуживаете кэшированный HTML. Именно так работает большинство приложений Ruby on Rails / CMS.

    Я бы сохранил его в базе данных как разметку RST и преобразовал бы в HTML по мере необходимости. Так как вы, вероятно, используете внешний интерфейс (например, JSP, PHP, Django или что-то еще, что визуализирует язык шаблонов), дополнительная обработка для RST не потребует больших затрат.

    Фактически измерьте фактические издержки рендеринга разметки в HTML, прежде чем принять решение о реализации сложного механизма кэширования.

    " (меньше места в базе данных, но больше ресурсов процессора) " это не мерный факт, это предположение, которое может оказаться неверным.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top