python javascript(拉)通信的不同方式的优点

时间:2013-08-21 19:39:45

标签: javascript python ajax json pull

我正在实现我的javascript客户端和python服务器之间的拉动通信。在过去的两周里,我浪费了腹部和插座,但现在我决定放弃它。

我正在寻找实现python-javascript通信的最方便的方法,其中客户端向服务器发送请求,服务器可以回答这些请求。我见过很多方法,其中一些方法:

  • AJAX
  • JS​​ON
  • socket等

我很想听听您对不同可能性的优势的看法。 (如果你还有一些很好的教程,我可以用它来开始,我真的很感激他们。)

1 个答案:

答案 0 :(得分:0)

看起来你对定义和技术有点困惑,所以让我首先澄清一些缺陷(粗略描述,不完全是这样):

  • JSON:一种将数据结构(如数组)打包成字符串并检索数据的格式。它是提交实际数据最常用的格式之一,但它本身无法传输数据:它只是数据本身
  • AJAX:在不重新加载整个页面的情况下向服务器发送请求的主流技术。如果你通过访问页面发送相同的请求,AJAX通过HTTP协议工作并发送相同的标题(例外:对AJAX特殊的标题,取决于库等)。 AJAX本身就是提交数据的技术,但不是数据本身。但是,它可以,例如,提交以通常的URL编码编码的表单数据。但它也可以发送JSON数据
  • 套接字:套接字的定义非常广泛且通用。通常情况下,它描述了一个像TCP这样的低层(在层次结构中的HTTP下面)但是由于你在描述JS + Python,我认为你的意思是浏览器 - 客户端通信。在那种情况下,有WebSocket。我还没有使用过这项技术,但从我听到它可以允许任意连接等。以正常的用例方式提升。

这些是您提到的技术。另外,我想再提两个:

  • XML:与JSON一样,但格式不同。 XML有各种优点和缺点。从我的角度来看,最大的优势是它比JSON更灵活,更易于理解。但这种灵活性带来的缺点是难以学习。
  • JSONP:与AJAX类似,它用于通信,但正如名称所述,它提交JSON数据(我认为......)。具有允许跨域请求(也是高级内容)的优势。

由于您的问题不是那么精确,我将在Web上下文中回答它(如上所述):JavaScript从浏览器运行,服务器是用Python编写的Web应用程序。

为此,我建议结合使用JSON和amp; AJAX:JSON本身可以在JavaScript和Python中使用,像jQuery这样的库提供了通过JSON接收的数据的简单接口。我推荐使用AJAX也是出于同样的原因:它易于使用,集成在大多数JavaScript库中,无需在服务器端进行任何操作:对于服务器,只需要处理。

服务器端的示例:

# Request comes in:
data = json.loads(request_body)
# Do calculations
output = json.dumps(out_data)
send_response(output)

在客户端,您可以使用纯JavaScript或jQuery来发送请求和处理响应。