在任何浏览器中增加Concurrent http调用

Ame*_*nde 15 javascript browser ajax jquery http

我在SO上经历了很多帖子,但没有找到任何合适的解决方案

我从一个最大并发连接到一个域限制的答案中得到了它

IE 6 and 7:      2
IE 8:            6
IE 9:            6
IE 10:           8
IE 11:           8
Firefox 2:       2
Firefox 3:       6
Firefox 4 to 46: 6
Opera 9.63:      4
Opera 10:        8
Opera 11 and 12: 6
Chrome 1 and 2:  6
Chrome 3:        4
Chrome 4 to 23:  6
Safari 3 and 4:  4
Run Code Online (Sandbox Code Playgroud)

如何调用超过浏览器设置的最大http调用到一个域.

我经历了这个

可用于增加并发同意数的一个技巧是托管来自不同子域的图像.这些将被视为单独的请求,每个域将被限制为并发最大值.

IE6,IE7 - 限制为2.如果您的宽带,IE8为6,如果您拨打,则为2.

但我没有这样的场景.我正在获取指向一个Web服务器的特定数据.我将如何克服这一点.

我在启动时有14个http调用到同一个服务器,这是加载实际页面需要很长时间的原因.如何通过并发ajax/http调用来提高我的网站性能

Cha*_*oza 9

你可以做的是将负载分配给许多子域.您可以在这些客户端之间使用www1,www2,www3,www4和循环法,而不是仅使用www.

您需要配置Web服务器,以便www*子域最终到达同一位置.


And*_*kyi 8

14个请求不是问题.只有在服务器响应时间很长时才会出现问题.所以很可能根本问题是服务器端性能

这些解决方案是可行的

  • 使用HTTP缓存(服务器应该发送相应的头文件)
  • 在中间使用缓存(例如CDN,Varnish)
  • 优化服务器端
    • 内容相关:
      • 将多个请求合并为一个
      • 删除请求中的重复信息
      • 不加载客户端不呈现的信息
    • 在服务器端使用缓存
    • 等...任何其他方法......有很多.


Pog*_*dis 5

只是为了扩展Charly Koza的答案,因为这有一些限制,具体取决于用户数量等.

你要看的第一件事是使用CDN,我会假设你已经这样做了.

您只打一台服务器的事实不是问题,浏览器将允许基于DNS主机而不仅仅是IP的并发连接.

如果您可以访问DNS管理并可以动态生成新的子域,请查看CloudFlare API等免费服务.

或者,创建一个通配符域,允许任何子域指向1个服务器.

这样,在服务器端,您可以识别用户是否已激活X连接数,如果是,则可以执行以下方案:

  • 在同一IP上动态创建新的子域,或者如果使用通配符,则创建一个随机子域 newDomainRandom.domain.com
  • 然后将用户301重定向返回到新域,用户Internet Client将其注册为另一个域的新连接.

这里有很多伪工作,但这更像是编码问题的网络问题.

但是对这种方法的强制警告:

在网站上使用301重定向没有限制.您可以实施超过100k的301重定向而不会受到任何惩罚.但是:太多301重定向会给服务器带来不必要的负载并降低速度.


Eme*_*eus 5

如何调用超过浏览器设置的最大http调用到一个域.

这是HTTP/1.1限制(6-8),如果您能够更改服务器(将此问题标记为http),最佳解决方案是使用HTTP/2(RFC 7540)而不是HTTP/1.1.

HTTP/2在单个连接上复用许多HTTP请求,请参见此.当HTTP/1.1大致为6-8时,HTTP/2没有标准限制,但说" 建议此值(SETTINGS_MAX_CONCURRENT_STREAMS)不小于100 "(RFC 7540).这个数字优于6-8.