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

时间:2011-06-28 21:14:45

标签: javascript asp.net rest soap

我正在从后端调用Web服务。然而,页面加载需要一段时间,我开始怀疑,如果我使用javascript加载数据而不是后端,页面加载速度会更快(以感知的方式)吗?

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

4 个答案:

答案 0 :(得分:3)

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

你的问题有点含糊不清,因为不清楚你问的是什么。


嗯,REST与SOAP实际上并不是任何人都能在网站上的速度/性能方面做出的比较。 REST是指如何调用服务的概念语义模型。另一方面,SOAP既指代调用的语义,也指数据格式。相比之下,REST没有提及数据格式(虽然通常假定JSON - 但没有关于REST的信息排除XML或任何其他数据格式)。

然而,

JSON与SOAP是不同的故事。

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

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

客户端的处理时间? JSON肯定有优势。

在客户端易于使用? JSON - 放下手。

答案 1 :(得分:2)

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

史蒂夫给出了很好的概述,但它并没有谈论后端v.s前端。一般而言,性能上没有差异,或者至少没有可预测的差异。这一切都取决于服务器的配置和客户端计算机(Javascript执行的地方)。

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

  1. 您可以在调用服务之前显示可视指示符,以通知用户冗长的操作
  2. 您可以在每次下次调用服务时对UI进行部分更新。如果在后端调用服务,则必须进行回发(遍历ASP.NET页面的整个生命周期)。这很慢,而且视觉上没什么吸引力。
  3. 实际上,如果你从后端调用一个服务,我认为根本没有服务(假设它只返回绑定到UI的数据)。您可以使用旧的Webforms方式构建UI并直接在ASP.NET页面中返回响应。

    作为结论 - 当您从客户端脚本调用它们时,Web服务的许多好处都来了。

答案 2 :(得分:0)

没有查看你的代码我真的不能说什么错误/为什么网站加载不够快。 REST和SOAP是客户端和服务器之间通信的明确标准。 我更喜欢REST而不是SOAP。

答案 3 :(得分:0)

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