2

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

在 javascript 中发布到我的 python 方法很容易,但不能以其他方式传递数据。我可以用 JSON 将它发回,但并不总是很方便。似乎最简单的方法是只使用 cheetah 创建 javascript 变量,var width = $width但这似乎很混乱。

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

4

2 回答 2

1

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

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

这三种方法都是完全合法的——唯一的问题是,你的 JavaScript 需要做多少工作,你想在客户端和服务器端做多少重复的工作?

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

于 2010-11-02T01:07:06.420 回答
0

据我所知,您在这里谈论的内容可以通过两种我知道的方式来完成。

  1. AJAX 请求可以返回任何你想要的。
  2. 多次发布到页面和更改页面(视图)的逻辑

如果您在较低级别进行交谈,则可以在 http 请求中获取有关新连接客户端的一些信息。

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

于 2010-05-13T19:42:27.193 回答