zoukankan      html  css  js  c++  java
  • Effective C# Item34:创建大粒度的Web API

        当我们使用Web Service或者.NET Remoting时,需要谨记当在本地和远程机器之间传输对象时,传输过程的成本是很大的,对于某些只是简单重现包装本地接口的操作,我们不应该将它们用作远程API,这么做并不会出错,只是效率比较低。

        我们的Web接口应该主要在客户机和服务器之间传输序列化文档或者对象集合。客户机首先进行逻辑处理,准备数据,这个过程是不需要和服务器进行通信的,当客户端把数据准备好后,再将整个文档发送给服务器端;服务器端的处理也是一样的,当服务器把文档中的所有内容处理完毕后,再将其返回给客户端。

        对于一些本地操作时间很长、更新不频繁的数据来说,我们可以使用Visitor模式,首先每个客户端都从服务器端获取所有必要的数据,同时将自己的信息保存在服务器中,然后客户端可以一直在本地进行操作,当有数据上传到服务器时,服务器对更新后的数据进行分发,通知所有相关的客户机,数据已更新。这样一方面可以提高客户端的工作效率,不用频繁的和服务器进行通信,另一方面,可以保证客户在处理的数据是当前服务器中的最新数据。

        我们希望客户端和服务器端之间通信的频率和负荷都能降到最低,但是这两个目标是矛盾的,我们需要在两者之间寻找平衡,平衡的结果是应该接近两个极限的中间,而不是偏向任何一方。

  • 相关阅读:
    bzoj4849: [Neerc2016]Mole Tunnels
    bzoj 4069~4071 APIO2015
    bzoj 4885: [Lydsy2017年5月月赛]长方体
    bzoj4891: [Tjoi2017]龙舟
    bzoj4892: [Tjoi2017]dna
    bzoj 3159: 决战
    bzoj3672: [Noi2014]购票
    bzoj4738: 汽水
    bzoj 4737: 组合数问题
    bzoj 4872: [Shoi2017]分手是祝愿
  • 原文地址:https://www.cnblogs.com/wing011203/p/1654781.html
Copyright © 2011-2022 走看看