Каковы основные проблемы при создании клиентского JavaScript с сервера? - PullRequest
1 голос
/ 11 сентября 2009

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

FWIW, я делаю это в Ruby и также использую JQuery. Это в основном конструктор форм. Вот что я делаю:

У меня есть конструктор форм администратора, который динамически создает входы статической формы (например, select, radio, checkboxes и несколько более сложных входных данных). Мне нужно создать соответствующие обработчики событий javascript (используя jquery). У меня в основном есть лямбда-выражения html-конструктора и лямбда-обработчики событий, которые сопоставляются с каждым предопределенным типом ввода: то есть у select есть что-то вроде {'select'=>[select_builder_lamb, select_js_handler_lamb]}, поэтому я могу найти тип html и затем сгенерировать необходимый код, позволяющий администратору создать форму " им по душе ". Это прекрасно работает.

Теперь мне нужно выяснить, следует ли сериализовать это, а затем перезагрузить его, когда запрашивается страница регистрации, записать javascript в «ненавязчивый» файл или сохранить необработанные html и javascript в базе данных и т. Д. Нет проблем. с самим поколением - так что если высокий уровень: 1) сделать html & javascript 2) сохранить для последующего использования 3) использовать для запроса http - мой вопрос для шагов 2 и 3.

Если у вас есть опыт в таких делах и вы могли бы проявить некоторую настороженность и мудрость, это будет высоко оценено!

1 Ответ

2 голосов
/ 11 сентября 2009

Несколько вещей, которые приходят на ум:

Разделение кодов

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

Как веб-разработчики, мы должны знать много разных технологий, например, некоторые из:

  • Серверный скрипт (PHP, ASP, Ruby и т. Д.)
  • JavaScript (и фреймворк)
  • XML
  • HTML
  • XSLT, XPATH
  • CSS
  • SQL

Представление файла кода, который содержал все это! Это было бы хаотично!

Вывод JavaScript с сервера исключает разделение JavaScript на отдельный файл. Если мы их отделим, то наш код станет более модульным, многократно используемым, читаемым и тестируемым, что приведет меня к ...

Юнит-тестирование

Возможно, вы не используете платформу для модульного тестирования, однако модульность JavaScript имеет важное значение для создания независимых тестируемых (и пригодных для повторного использования) модулей.

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

Бирочный суп

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

Debugging

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...