javascript基础从小白到高手系列一千二百九十七:硬件

浏览器检测硬件的能力相当有限。不过,navigator 对象还是通过一些属性提供了基本信息。

1. 处理器核心数

navigator.hardwareConcurrency 属性返回浏览器支持的逻辑处理器核心数量,包含表示核心
数的一个整数值(如果核心数无法确定,这个值就是 1)。关键在于,这个值表示浏览器可以并行执行的 最大工作线程数量,不一定是实际的 CPU 核心数。

2. 设备内存大小

navigator.deviceMemory 属性返回设备大致的系统内存大小,包含单位为 GB 的浮点数(舍入
为最接近的 2 的幂:512MB 返回 0.5,4GB 返回 4)。 3. 最大触点数
navigator.maxTouchPoints 属性返回触摸屏支持的最大关联触点数量,包含一个整数值。

客户端检测是 JavaScript 中争议最多的话题之一。因为不同浏览器之间存在差异,所以经常需要根 据浏览器的能力来编写不同的代码。客户端检测有不少方式,但下面两种用得最多。

 能力检测,在使用之前先测试浏览器的特定能力。例如,脚本可以在调用某个函数之前先检查 它是否存在。这种客户端检测方式可以让开发者不必考虑特定的浏览器或版本,而只需关注某 些能力是否存在。能力检测不能精确地反映特定的浏览器或版本。

 用户代理检测,通过用户代理字符串确定浏览器。用户代理字符串包含关于浏览器的很多信息, 通常包括浏览器、平台、操作系统和浏览器版本。用户代理字符串有一个相当长的发展史,很 多浏览器都试图欺骗网站相信自己是别的浏览器。

用户代理检测也比较麻烦,特别是涉及 Opera 会在代理字符串中隐藏自己信息的时候。即使如此,用户代理字符串也可以用来确定浏览器使 用的渲染引擎以及平台,包括移动设备和游戏机。

在选择客户端检测方法时,首选是使用能力检测。特殊能力检测要放在次要位置,作为决定代码逻 辑的参考。用户代理检测是最后一个选择,因为它过于依赖用户代理字符串。

浏览器也提供了一些软件和硬件相关的信息。这些信息通过 screen 和 navigator 对象暴露出来。 利用这些 API,可以获取关于操作系统、浏览器、硬件、设备位置、电池状态等方面的准确信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值