在保持RESTful的同时使单页应用程序更具响应性

时间:2014-05-04 03:55:11

标签: rest web-applications single-page-application

要使单页应用程序成为RESTful,它需要访问从中检索其内容的API端点。这意味着您将拥有一个API/user_information端点,一个API/article/端点和一个API/comments端点,依此类推。对于大型应用程序,这些ajax调用会降低渲染速度,尤其是在慢速(移动)连接上。具有讽刺意味的是,在服务器端的所有事情的旧世界中,这并不是一个问题,因为整个html是在第一次请求时批量传递的。因此,应该比旧式服务器呈现的应用程序更快且响应更快的单元页面应用程序最终可能会慢得多(不可否认,只有当它们需要足够多的API调用时)。

据我所见,这些选项似乎是: 1)忘记单页应用程序,回到服务器端做一切。 2)将所有API端点合并为更少(可能是一个)端点,以便以最小延迟检索所有内容。但现在你不再是RESTful了。

这些都令人不满和悲伤。有更好的解决方案吗?

PS:在本地存储中缓存内容似乎会导致比解决方案更多的问题,因为现在每次推出新内容时都要担心无效的客户端缓存。

1 个答案:

答案 0 :(得分:2)

我现在在你评论的类似架构中工作,我同意你的想法。我们正在做的是尝试在您描述的两个选项之间找到折衷方案,即使有时我们并非总是100%RESTful。

如果您的需求需要,我认为并非总是需要100%RESTful。使用DTO模式,您可以以优化应用程序性能的方式定义DTO,从而最大限度地减少调用次数,从而提供可重用性。