Передача данных со стороны сервера cherrypy на клиентскую часть javascript - PullRequest
2 голосов
/ 13 мая 2010

Большой вопрос о картине. У меня работает сервер cherrypy со всеми методами корзины для моего сайта электронной коммерции, написанными на python. Я работаю с JQuery на переднем конце.

Размещение в моих методах python легко в javascript, но не передача данных другим способом. Я могу отправить его обратно с JSON, но не всегда удобно. Кажется, что самый простой способ - просто создать переменные javascript с гепардом, как var width = $width, но это выглядит грязно.

Что я здесь делаю в корне неправильно? Не похоже, что я правильно структурирую свое взаимодействие сервер-клиент. Как лучше всего вызывать методы моего сервера, и как лучше встраивать информацию с сервера в страницу, чтобы ее можно было обрабатывать с помощью javascript?

Ответы [ 2 ]

1 голос
/ 02 ноября 2010

Единственный ответ, который я могу дать, - задать еще один большой вопрос о картине - сколько данных действительно нужно вашему JavaScript для выполнения своей работы? Некоторые внутренние данные, вероятно, следует хранить в переменных сеанса, поскольку вашим пользователям не нужно будет / , если не сможет просматривать или изменять эти данные. Такие данные, как является , необходимые на стороне клиента, могут быть переданы тремя способами:

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

Все три метода совершенно законны - вопрос только в том, сколько работы должен выполнять ваш JavaScript и сколько вы хотите выполнять дублирующую работу на стороне клиента и сервера?

1 проще всего, но может поощрять небрежные привычки кодирования JavaScript (поскольку вы можете использовать свой серверный язык шаблонов для генерации пакетов кода, а не рефакторинга кода для решения проблемы.
2, вероятно, самый быстрый, но его сложность растет астрономически, так как вам нужно добавить больше функций - и его становится труднее поддерживать в долгосрочной перспективе, если у вас нет очень хорошего видения того, что вы хотите заранее.
3 является лучшим, но его труднее всего реализовать, не создавая дыр в безопасности или не выполняя двойную работу - однако, как только это будет сделано, вы более чем на полпути к рабочему API.

0 голосов
/ 13 мая 2010

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

  1. AJAX-запросы могут возвращать все, что вы хотите.
  2. Множественное размещение на страницах и логика, которая изменяет страницы (просмотры)

Если вы говорите на более низком уровне, вы можете получить некоторую информацию в запросе http о вашем недавно подключенном клиенте.

Я не совсем уверен, о чем ты здесь просишь. Не могли бы вы привести более конкретный пример?

...