【发布时间】:2018-01-10 13:05:45
【问题描述】:
我想通过环境是否支持http2来判断是否使用combo。但是,我找不到在浏览器中检查浏览器是否支持 http2 的方法。
提前谢谢你。
【问题讨论】:
-
原谅一个无知的评论,但为什么你需要知道呢?在我看来,这个检查应该在服务器和浏览器之间在协商时完成。在前端,您根本不应该关心。我能想到的在前端知道它的唯一方法是设置您的服务器以在成功的情况下返回此信息,或者仅在 chrome 上返回此信息,
chrome.loadTimes().connectionInfo。如果不是欺骗也相关,但不能被标记为欺骗,因为没有答案:stackoverflow.com/questions/44842659/… -
@Kaiido 如果浏览器不支持http2,我希望加载格式为:
<script src="??/a.js,/b.js"></script>的js资产,否则应采用格式:<script src="/a.js" async defer></script><script src="/b.js" async defer></script>。 -
这应该在服务器上完成。当请求为页面提供服务时,如果请求中没有ALPN,并且服务器知道它必须与 HTTP/1.1 通信,那么它可以提供其他版本的页面/资源,而不是为启用 HTTP/2 的客户端。
-
情况是我需要使用js动态加载js/css,就像
<script>const script = document.createElement('script'); script.src = '/a.js'; document.head.appendChild(script);</script>一样。 -
是的,配置好你的服务器,当通过HTTP/1.1访问
'/a.js'时,它实际上服务于'/b.js'的内容。
标签: javascript browser http2