логика в контроллере рельсов по сравнению с JavaScript (.js.erb) - PullRequest
1 голос
/ 06 февраля 2011

У меня есть большой объект активной записи данных, информацию которого я фильтрую на основе того, что пользователь нажимает на странице, затем я отображаю эти отфильтрованные данные пользователю. Мне было интересно, где лучше всего разместить логику фильтрации данных. Прямо сейчас я выполняю фильтрацию в действии контроллера рельсов, так что в представлении мне нужно только сказать что-то вроде

<script>
var filtered_data = <%= raw @filtered_data %>
alert('first piece of data is: '+filtered_data[0])
var filtered_names = <%= raw @filtered_names %>
</script>

и другие подобные переменные.

или, я подумывал о том, чтобы передать целые @ данные, например:

<script>
var data = <%= data.to_json.html_safe %>
var filtered_data = **some js logic to filter data var**
var filtered_names = **more js logic to filter for names, maybe using the jquery .map function, etc **
</script>

какой способ лучше для производительности? Я бы подумал, что JS на стороне клиента лучше, но, вероятно, он больше не на стороне клиента, поскольку это .js.erb? Или еще немного поможет логика в js.erb?

Спасибо за понимание!

1 Ответ

1 голос
/ 01 марта 2011

вы должны использовать как можно меньше логики ... если вы фильтруете данные с помощью js, эти данные отправляются клиенту (генерируя трафик) ... так что, вероятно, лучше выполнить фильтрацию нана стороне сервера.

всегда старайтесь просто отображать вещи на ваш взгляд - это делает ваш код гораздо более понятным.

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