2010-05-13 238 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的一半。

相關問題