将数据从cherrypy服务器端传递到javascript客户端

时间:2010-05-13 19:38:13

标签: javascript architecture cherrypy cheetah

大图片问题。我有一个樱桃服务器,运行着我用python编写的电子商务网站的所有购物车方法。我正在前端使用jquery。

在javascript中发布到我的python方法很简单,但不以其他方式传递数据。我可以用JSON发回它,但并不总是很方便。看起来最简单的方法就是用像var width = $width这样的猎豹创建javascript变量,但这看起来很混乱。

我在这做什么根本错误?似乎我根本没有正确构建我的服务器 - 客户端交互。调用服务器方法的最佳方法是什么,将服务器中的信息嵌入页面的最佳方法是什么,以便可以使用javascript进行处理?

2 个答案:

答案 0 :(得分:1)

我能给出的唯一答案是提出另一个重要问题 - 您的JavaScript确实需要多少数据来完成它的工作?某些内部数据可能应存储在会话变量中,因为您的用户不需要/ 无法查看或更改该数据。客户端所需的 等数据可以通过三种方式传递:

  1. 内置于服务器端的模板(您的var width = $width示例)
  2. 从查询字符串参数或网址片段中拉出来(例如,重定向到your-domain.com/products?id=27并让您的脚本查找该变量并执行所需操作。)
  3. 让您的脚本对服务器进行ajax调用,让服务器传回所需的数据。
  4. 这三种方法都是完全合法的 - 唯一的问题是,您的JavaScript需要做多少工作,以及您希望在客户端和服务器端重复工作多少?

    1最简单,但可以鼓励草率的JavaScript编码习惯(因为您可以使用服务器端模板语言生成大量代码,而不是重构代码来解决问题。) 2可能是最快的,但它的复杂性随着你需要添加更多功能而天文数字增长 - 从长远来看它变得最难维护,除非你事先对你想要的东西有很好的看法。 /> 3是最好的,但是在没有创建安全漏洞或进行双重工作的情况下实施起来最困难 - 一旦完成,但是,你已经超过工作API的一半。

答案 1 :(得分:0)

据我所知,你在这里谈论的内容可以用我知道的两种方式完成。

  1. AJAX请求可以返回您想要的任何内容。
  2. 多次发布到更改页面(视图)的页面和逻辑
  3. 如果您在较低级别进行通话,则可以在http请求中获取有关新连接客户端的一些信息。

    我不确定你在这里问的是什么。你能举个更具体的例子吗?