簡體   English   中英

將數據從cherrypy服務器端傳遞到javascript客戶端

[英]Passing data from the cherrypy server-side to javascript client-side

大圖問題。 我有一個運行於python服務器上的cherrypy服務器,其中包含我的電子商務網站的所有購物車方法。 我正在前端使用jquery。

在javascript中,發布到我的python方法很容易,但不能以其他方式傳遞數據。 我可以使用JSON發送回去,但並不總是很方便。 看來,最簡單的方法是只用豹紋來創建javascript變量,例如var width = $width但這似乎很麻煩。

我在這里根本做錯了什么? 似乎我根本沒有正確構建服務器-客戶端交互。 調用我的服務器方法的最好方法是什么,將服務器中的信息嵌入到頁面中以便可以使用javascript處理的最好方法是什么?

我唯一能給出的答案是問另一個大問題— JavaScript真正需要多少數據才能完成工作? 一些內部數據可能應該存儲在會話變量中,因為您的用戶將不需要/ 不應查看或更改該數據。 這樣的數據, 需要在客戶端可以通過三種方式進行傳遞:

  1. 內置在服務器端的模板中(您的var width = $width示例)
  2. 從查詢字符串參數或URL片段中提取(例如,重定向到your-domain.com/products?id=27 ,並讓腳本查找該變量並執行所需的操作。)
  3. 讓您的腳本對服務器進行Ajax調用,並使服務器傳回所需的數據。

這三種方法都是完全合法的-唯一的問題是,您的JavaScript必須完成多少工作,並且您想在客戶端和服務器端進行重復的工作是多少?

1是最簡單的方法,但是可以鼓勵草率的JavaScript編碼習慣(因為您可以使用服務器端模板語言來生成大量代碼,而不是重構代碼來解決此問題。
2可能是最快的,但是隨着您需要添加更多功能,它的復雜性在天文上會增加-從長遠來看,它變得最難維護,除非您事先對自己想要的東西有很好的認識。
3是最好的,但是在不創建安全漏洞或做雙重工作的情況下實現起來最困難-但是,一旦完成,您就已經可以使用API​​了。

據我所知,您在這里所說的可以通過我所知道的兩種方法來完成。

  1. AJAX請求可以返回您想要的任何內容。
  2. 多次發布到頁面和更改頁面的邏輯(視圖)

如果您的談話水平較低,則可以在http請求中獲取有關新連接的客戶端的一些信息。

我不太確定您在這里要問什么。 您能舉一個更具體的例子嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM