2011-01-24 2 views
5

Я планирую включить Markdown в предстоящий проект. Раньше я только что использовал пакетный пакет Markdown на стороне сервера, повторно обработал выход HTML (ненужный шаг?) И отправил его клиенту.Каковы недостатки делегирования разметки Markdown на стороне клиента?

Я заинтересован в выгрузке по меньшей мере этой части визуализации представления клиенту. Я использовал клиентские Javascript Markdown парсеров с большим успехом в приложениях Rails. Я бы делегировал объект body для просмотра вложений DOM класса markdown-parseme или тому подобного, а затем проанализировал его и заменил исходный текст на результат.

Но это первый раз, когда я рассматриваю его для производственного участка в дикой природе. Каковы проблемы с запуском и безопасностью, позволяя клиенту обрабатывать рендеринг Markdown? Существуют ли какие-либо конкретные библиотеки, которые учитывают эти проблемы?

EDIT: Очевидное беспокойство, которое приходит на ум, - «что о тех, у кого нет Javascript». Совершенно в наших возможностях обнаружить браузеры, у которых нет Javascript, и реализовать механизм, который позволит клиентам (возможно, вручную) отмечать, что у них нет JS и перенос синтаксического анализа на сервер. Я очень хотел бы исследовать, есть ли серьезные проблемы с разгрузкой разметки Markdown для клиента за пределами этого обычного вопроса о совместимости. Рендеринг страницы с приличным размером без кэширования вывода добавляет к времени отклика незначительную сумму, а через это - нагрузку на сервер, и было бы неплохо, если бы мы были уверены в том, что эта задача перенесена с сервера на 95% пользователей ,

+0

Почему переход на клиент? Просто чтобы спасти себя от звонка AJAX? – sdleihssirhc

+0

Очевидная проблема заключается в том, чтобы сделать обязательным включение JavaScript. –

+1

Для многих веб-приложений недостаток JavaScript означает, что вы либо не используете приложение в первую очередь, либо используете то, что вы используете в совершенно другом приложении. – Pointy

ответ

1

Предположение о том, что клиент способен анализировать синтаксис Markdown, может быть неправильным (по крайней мере для некоторых людей и для поисковых систем). Если вы предоставите эти группы с версией, обработанной сервером, вы дублируете код. Сервер обычно имеет более мощные инструменты для предотвращения XSS и т. П. (Потому что это то, что делают серверы: безопасное создание HTML-кода из пользовательского контента).

0

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

Это намеренно не поддерживает встроенный HTML.

3

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

Смежные вопросы