2010-05-13 229 views
2

大图问题。我有一个cherrypy服务器,运行着用python编写的我的电子商务网站的所有购物车方法。我正在jquery的前端工作。将数据从cherrypy服务器端传递到javascript客户端

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

我在这里做的根本错在哪里?它似乎并没有像我正确构建我的服务器 - 客户端交互。调用我的服务器方法的最佳方式是什么?将服务器中的信息嵌入到页面中以便使用JavaScript处理信息的最佳方法是什么?

回答

0

就我所知,你在说什么可以用我知道的两种方法来完成。

  1. AJAX请求可以返回任何你想要的。
  2. 多张贴到网页和逻辑改变的页面(视图)

如果你在一个较低的水平说话,你可以在你的新连接的客户端的http请求的一些信息。

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

+0

挑选产品后,网站将重定向到自定义页面。使用猎豹动态生成该页面很容易,但该页面中的JavaScript如何知道选择了哪个产品(或其他需要的其他数据)? 然后,一旦产品定制,我应该: a)当在定制页面上单击“完成”链接时,对cherrypy服务器上公开的addProduct()方法进行ajax调用? b)在调用addProduct()然后重定向到购物车的定制页面上,链接到表单中暴露的方法? c)别的东西? – colinmarc 2010-05-13 21:30:39

1

我能给出的唯一答案就是问另一个大问题 - 你的JavaScript真的需要做多少数据才能完成它的工作?一些内部数据可能应该存储在会话变量中,因为如果无法查看或更改该数据,则用户不需要/ 。为需要这样的数据作为在客户端可以通过三种方式进行传递:

  1. 内置于服务器端的模板(您var width = $width例如)从查询字符串参数或URL片段拉到
  2. (例如重定向到your-domain.com/products?id=27,并让脚本查找该变量并执行它所需的操作。)
  3. 让脚本对服务器进行ajax调用,并让服务器传回它所需的数据。

所有这三种方法都是完全合法的 - 唯一的问题是,JavaScript需要做多少工作,以及您希望在客户端和服务器端做多少工作?

1是最简单的,但可以鼓励马虎JavaScript编码习惯(因为你可以使用你的服务器端模板语言生成的代码令,而不是重构代码来解决这个问题。
2可能是最快的,但随着您需要添加更多功能,它的复杂性会以天文数字增长 - 并且从长远来看,它变得最难维护,除非您对事先想要的东西有非常好的视野。
3是最好的,但它是最难的实现时不会产生安全漏洞或进行双重工作 - 但一旦完成,您已经完成了一个工作API的一半。

相关问题