代码之家  ›  专栏  ›  技术社区  ›  Steven

多个GET调用与从服务器以JSON向AJAX发出更复杂的POST/GET请求的性能对比

  •  3
  • Steven  · 技术社区  · 15 年前

    我在一个网站上工作,它的前端由AJAX提供支持,以普通的RESTful方式与服务器交互,并以JSON的形式接收响应。

    管理POST、DELETE和PUT请求非常简单,因为它们与传统方法没有任何区别。挑战在于获取内容。有时,客户机需要从服务器获取一个资源。有时更多。

    异步触发每个GET请求并在收到响应时填充DOM元素是否存在性能问题?

    我是这么想的(如果我错了,请纠正我),通过在一个请求中提供一个API查询数组,并让服务器用相应的JSON响应数组进行响应,可以获得性能提升。

    POST、DELETE和PUT在语义上不适用于此类任务。另外,GET请求似乎不正确。在向发送GET请求之后 /ajax_handler?q=get_users,get_pages,get_current_user 似乎有点奇怪,因为我习惯于将GET请求视为单个资源的请求。

    另一种方法是只为每个GET查询准备所有相关数据(就像在常规的非AJAX页面中一样),然后将它们放在一起,让客户机知道什么是重要的/新的,可能是通过每个JSON数组中最后修改的项。

    由于担心被关闭为主观的,我的具体问题是,是否有一个语义上理想的方法来使用一个GET请求从服务器获取多个,只有遥远相关的数据片段,或者性能增益是否值得?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Andrew Matthews    15 年前

    此外,重复连接到UI将强制进行身份验证检查,并且如果您使用数据库进行身份验证和检索单个资源,也可能会增加数据库在ASP.NET状态下的负载,除非您在某处缓存结果。仅仅为了支持聊天界面而进行缓存会增加服务器上的内存负载,并可能导致在高负载期间发生抖动。

    不仅如此,您还可能需要支付与请求本身无关的额外带宽(即TCP/IP数据包头),该带宽将随系统的聊天量成比例增加。