Javascript测试客户端对HTTP客户端提示的支持

Javascript test client side for HTTP Client Hints support

本文关键字:客户端 支持 提示 测试 Javascript HTTP      更新时间:2023-09-26

是否可以检测浏览器是否支持使用javascript的HTTP客户端提示?目前只有chrome支持:http://caniuse.com/#feat=client-hints-dpr-width-viewport

所以我在考虑使用一些javascript库,可以做浏览器和版本检测,如果浏览器是chrome和版本49或更高,我可以假设该功能是支持的。

我只是认为这个解决方案不是很有效或智能考虑到HTTP客户端提示功能很可能在未来被添加到更多的浏览器中,然后我将不得不不断更新我的功能来反映这一点。

是否有一些简单的方法来测试如果一个给定的浏览器支持HTTP客户端提示与客户端javascript?

谢谢!

遗憾的是,检测浏览器是否支持此功能的唯一方法似乎是检查浏览器的品牌和型号…像这样…

function canDoClientHint() {
    try {
        var chrome = window.navigator.userAgent.match(/'sChrome'/([0-9]+)'.[.0-9]+'s/)
        if ( chrome !== null ) {
            var version = parseInt(chrome[1])
            if ( isNaN(version) === false && version >= 46 ) {
                return true
            }
        }
    } catch(e) {
        return false
    }
    return false
}
canDoClientHint()

显然,这种代码已经过时了,需要不断维护,直到你关心的所有浏览器都有这个功能,然后你可以删除它。不幸的是,你必须记得更新它并删除它。

这个问题是旧的(2017年),并且在客户端提示中发生了很多变化。最重要的是,人们不能再被动地坐在那里,期望在HTTP报头中接收客户端提示。现在有一个相当复杂的HTTPS舞蹈,其中web服务器需要配置为主动请求客户端提示,并祈祷客户端尊重他们的要求。我知道,因为我的公司是在基于HTTP请求分析(WURFL)的设备/浏览器数据领域运作的。

关于如何从web浏览器请求Client-Hints的具体信息可以在这里获得:https://www.scientiamobile.com/add-support-for-user-agent-client-hints-now/