关于javascript的一般问题(REST与SOAP)



我正在从后端调用一个Web服务。然而,页面加载需要一段时间,我开始想,如果我使用javascript而不是后端加载数据,页面加载会更快吗?

基本上,使用REST服务在客户端加载数据会使页面加载看起来比使用SOAP调用在后端加载数据更快吗?page_load是先触发还是javascript调用?

就在后端调用SOAP服务与在前端调用REST/JSON服务之间的区别而言,如果让页面框架加载,并在从REST服务加载数据时显示"微调器",则页面加载时间可能会更快。

你的问题有点模棱两可,因为不清楚你问的是什么。


好吧,REST和SOAP并不是任何人都可以在网站上进行速度/性能比较的。REST指的是如何调用服务的概念语义模型。另一方面,SOAP既指调用的语义,也指数据格式。相比之下,REST对数据格式只字未提(尽管通常假定为JSON,但REST没有排除XML或任何其他数据格式)。

然而,JSON与SOAP是另一回事

JSON响应在客户端比SOAP消息更容易/更快地解析(假设您使用的是跨平台工作的标准javascript,并且没有花哨的插件)。

加载时间?SOAP比JSON要详细得多,并且需要额外的字符来传输相同的值。。。因此,由于发送的消息的相对大小,可能会有一个小的延迟

客户端的处理时间?JSON无疑具有优势

在客户端上的易用性?JSON-不用动手

我认为这个问题与其说是REST和SOAP之间的比较,不如说是关于应该在哪里调用服务的问题——后端还是前端。根据定义,后端代码总是在任何前端代码之前首先执行——它只是位于服务器上,并在返回响应之前运行。javascript在返回响应并加载页面后运行

Steve给出了一个很好的概述,但它根本没有谈到后端与前端。一般来说,性能不会有差异,或者至少不会有可以预测的差异。这一切都取决于服务器条件和客户端计算机(Javascript在哪里执行)。

差异(正如Steve也提到的)在于感知的表现。在这里,我总是建议您从前端呼叫服务。有几个原因:

  1. 您可以在调用服务之前显示一个视觉指示器,以通知用户操作时间过长
  2. 您可以在每次调用该服务时对UI进行部分更新。如果您在后端调用服务,则必须执行回发(贯穿ASP.NET页面的整个生命周期)。这是缓慢的,视觉上没有吸引力

事实上,如果你从后端调用服务,我认为拥有一个服务根本没有意义(假设它只返回绑定到UI的数据)。您可以使用旧的Webforms方式来构造UI,并直接在ASP.NET页面中返回响应。

总之,当您从客户端脚本调用web服务时,web服务的许多好处都会随之而来。

如果不查看您的代码,我就无法真正说出哪里出了问题/为什么站点加载不够快。REST和SOAP是客户端和服务器之间通信的定义标准。我更喜欢REST而不是SOAP。

问题的直接答案是:Page_Load事件将在Javascript后台调用之前加载。当你的页面有几个web控件加载了太多数据、绘制元素或进行了大量计算,需要花费大量时间并影响用户体验和应用程序性能时,我建议使用javascript进行后台加载。您需要让用户能够加载页面并查看每个元素的加载进度(这样他在浏览时就不会感到无聊)。对于这种情况,建议使用JSON进行REST调用。

最新更新