2011-01-28 5 views
1

Это в основном теоретический вопрос о хороших практиках, и меня интересуют мнения других разработчиков.Javascript views in RoR

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

Ну, по крайней мере, пока я не начал использовать javascript-виды.

Теперь все, что я делаю, это создать представление для ресурса, который является .js.erb, и определить, что должно произойти при вызове вида (используя: remote => true). Мечты сбываются.

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

Итак, мнения ... я собираюсь укусить?

+0

Я бы порекомендовал вам сначала укусить. Может быть миллион вещей, которые могут вас достать, но вы не можете знать, прежде чем что-либо сделать. Было бы лучше, если бы вы спросили о настоящей проблеме здесь. – edgerunner

+0

Спасибо, но у меня действительно нет проблем с банкоматом. Тем не менее, я действительно забочусь о том, чтобы использовать лучшие практики, насколько могу, и, хотя это работает отлично, я могу просто быть слишком пессимистичным в отношении его магии. – Krule

ответ

2

Главное правило, которое будет держать вас от неприятностей на мой взгляд:

  • Выключите JavaScript в вашем браузере, это приложение все еще функционирует? можете ли вы обойти и выполнить те же действия? - Ты должен быть способен. Это происходит из концепции «прогрессивного улучшения», а ИМХО - это то, как должен выполняться javascript/ajax, период.

Некоторые дополнительные пункты:

Если JavaScript взгляды и «нормальные» представления не используя тот же самый шаблон (частично), чтобы сделать вещи на страницу, это будет укусить вас. Наличие двух мест для поддержания представлений о чем-то является серьезной болью. Поэтому убедитесь, что они одни.

Если ваше приложение очень тяжело javascript, и вам нужно, чтобы он был включен, вы можете подумать о проекте с точки зрения разработки API-интерфейса. Создайте и реализуйте полноценный RESTful JSON API, который позволяет выполнять все действия, необходимые вам, а затем создавать свой пользовательский интерфейс. Побочный эффект: теперь у вас есть API для предоставления вашим клиентам, а также тот же, который вы используете внутри, чтобы управлять интерфейсом, упрощая и унифицируя разработку и обслуживание.

Я надеюсь, что это поможет вам в хорошем направлении!

+0

API Идея первого развития фантастическая. Я должен помнить об этом для будущих проектов. * Обратно к теме. * Нормальные представления, если они существуют, являются html (даже удаленными) и обрабатываются функцией в application.js. Только создавать и обновлять виды действий являются исполняемыми javascript, которые используются для обновления содержимого по действию индекса. – Krule

+0

Для этих фрагментов контента в действии индекса нарисуйте их с помощью частичных файлов, а затем повторно используйте те же частичные части в обновлении AJAX для результата редактирования/обновления. Тогда у вас есть только 1 «представление кода», и все ваши настройки. Извините, если вы это поняли, и я просто избыточен :) – ctcherry