热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过Ajax向同一HTTP/2服务器请求许多资源的最快方法

如何解决《通过Ajax向同一HTTP/2服务器请求许多资源的最快方法》经验,为你挑选了1个好方法。

得益于HTTP / 2的“ 每个来源一个连接”的原理,浏览器可以在加载网页时(脚本,图像等)并行加载许多资源,但是脚本应如何动态地执行相同的操作?

例如,如果脚本创建5个XHR对象并并行调用同一服务器,它们是否都将重用同一TCP连接?如果脚本需要通过Ajax从同一服务器请求100个资源怎么办?它应该创建100个单独的XHR对象还是应该创建少量并在每次请求完成时重用它们?如果是这样,那么在HTTP / 2时代有多少个最优选择?

通常,很难找到有关XHR(以及较新的Fetch API)浏览器正在使用HTTP / 2进行操作的低层详细信息,以及查找浏览器在页面加载时执行操作的最佳方法的确切信息,即尽快加载数十个小资源。



1> Barry Pollar..:

例如,如果脚本创建5个XHR对象并并行调用同一服务器,它们是否都将重用同一TCP连接?

如果浏览器和服务器均支持HTTP / 2,则可以,它们将自动执行此操作,而无需您对Javascript进行任何更改。这是有关如何实现HTTP / 2的伟大事情之一。

在某些情况下,它不会使用单个连接,例如,非凭据连接会通过另一个连接,并且当前Web套接字会回退到HTTP / 1.1(通过标准化在HTTP / 2 上进行连接的方式)。另外,有些浏览器会跨选项卡重用连接,有些则不会。但通常应使用相同的连接。

如果脚本需要通过Ajax从同一服务器请求100个资源怎么办?它应该创建100个单独的XHR对象还是应该创建少量并在每次请求完成时重用它们?

您可以发送100个请求。服务器通常有限制(常见的限制是100到120),并且您可以在发送大量请求时创建下载争用,因此最好减少处理。Chrome在发送大量请求时也发现了性能问题,因此故意限制了HTTP / 2下的某些请求,因此请注意此类情况。此处有更多详细信息:Google Chrome浏览器不与http2进行多路复用

如果是这样,那么在HTTP / 2时代有多少个最优选择?

一个非常有趣的问题-没有快速的答案!

通常,很难找到有关XHR(以及较新的Fetch API)浏览器正在使用HTTP / 2进行操作的低层详细信息,以及执行浏览器在页面加载时执行操作的最佳方法的确切信息,即尽快加载数十个小资源。

同意 而且,由于HTTP / 2仍然是相对较新的,因此它也仍在改变很多。最好是尽可能地熟悉HTTP / 2并进行测试,测试,测试!


规范(https://httpwg.org/specs/rfc7540.html#rfc.section.9.1)指出“ HTTP / 2连接是持久的。为了获得最佳性能,期望客户端在确定以下情况之前不会关闭连接:无需与服务器进行进一步的通信(例如,当用户离开特定网页时),或者直到服务器关闭连接为止。” 据我所见,大多数浏览器似乎都遵守这一规定,尽管通常服务器会在闲置60秒后重置连接(就像在HTTP / 1.1下一样)。如果需要,浏览器将重新连接。
推荐阅读
  • 如何解决《HTTP/2是否使websockets过时了?》经验,为你挑选了6个好方法。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • HTTP2isreleasedandsupportedbyallmajorbrowsers.Thereareimplementationsshippinginmajor ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
author-avatar
热情风吟_181
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有