Единственный ответ, который я могу дать, - задать еще один большой вопрос о картине - сколько данных действительно нужно вашему JavaScript для выполнения своей работы? Некоторые внутренние данные, вероятно, следует хранить в переменных сеанса, поскольку вашим пользователям не нужно будет / , если не сможет просматривать или изменять эти данные. Такие данные, как является , необходимые на стороне клиента, могут быть переданы тремя способами:
- Встроенный в шаблон на стороне сервера (ваш пример
var width = $width
)
- Извлекается из параметров строки запроса или фрагментов URL (например, перенаправьте на
your-domain.com/products?id=27
и ваш скрипт ищет эту переменную и делает то, что ему нужно.)
- Пусть ваш скрипт сделает ajax-вызовы на сервер, а сервер вернет нужные ему данные.
Все три метода совершенно законны - вопрос только в том, сколько работы должен выполнять ваш JavaScript и сколько вы хотите выполнять дублирующую работу на стороне клиента и сервера?
1
проще всего, но может поощрять небрежные привычки кодирования JavaScript (поскольку вы можете использовать свой серверный язык шаблонов для генерации пакетов кода, а не рефакторинга кода для решения проблемы.
2
, вероятно, самый быстрый, но его сложность растет астрономически, так как вам нужно добавить больше функций - и его становится труднее поддерживать в долгосрочной перспективе, если у вас нет очень хорошего видения того, что вы хотите заранее.
3
является лучшим, но его труднее всего реализовать, не создавая дыр в безопасности или не выполняя двойную работу - однако, как только это будет сделано, вы более чем на полпути к рабочему API.