客户端检测的含义和方法
原文
簡書原文:https://www.jianshu.com/p/fa7b95e02eea
大綱
1、什么是客戶端檢測
2、客戶端檢測的分類
3、能力檢測
4、怪癖檢測
5、用戶代理檢測
6、客戶端檢測方法的選擇
1、什么是客戶端檢測
所謂客戶端檢測就是為了實現某種功能,但是不同的客戶端對實現該功能的實現方式是不同的,因此需要通過對不同客戶端的檢測我們才能夠針對不同的客戶端采用不同的方式來實現相同的效果。
客戶端檢測是JavaScript開發中最具爭議的一個話題。由于瀏覽器間存在差別,通常需要根據不同瀏覽器的能力分別編寫不同的代碼。
不同的客戶端表示不同的性能,不同的處理方式,不同的客戶端包括不同的平臺、不同的瀏覽器(不同的瀏覽器采用不同的呈現內核、JavaScript解析內核等)
2、客戶端檢測的分類
客戶端檢測分為:能力檢測、怪癖檢測、用戶代理檢測
3、能力檢測
在編寫代碼之前先檢測特定瀏覽器的能力。例如,腳本在調用某個函數之前,可能要先檢測該函數是否存在。這種檢測方法將開發人員從考慮具體瀏覽器類型和版本中解放出來,讓他們把注意力集中到相應的能力是否存在上。能力檢測無法精確地檢測特定的瀏覽器和版本。
4、怪癖檢測
怪癖實際上是瀏覽器實現中存在的bug,例如早期的WebKit中就存在一個怪癖,即它會在for-in循環中返回被隱藏的屬性。怪癖檢測通常涉及到運行一小段代碼,然后確定瀏覽器是否存在某個怪癖。由于怪癖檢測與能力檢測相比效率更低,因此應該只在某個怪癖會干擾腳本運行的情況下使用。怪癖檢測無法精確的檢測特定的瀏覽器和版本。
5、用戶代理檢測
通過檢測用戶代理字符串來識別瀏覽器。用戶代理字符串中包含大量與瀏覽器有關的信息,包括瀏覽器、平臺、操作系統及瀏覽器版本。用戶代理字符串有過一段相當漫長的發展歷史,在此期間,瀏覽器提供商試圖通過在用戶代理字符串中添加一些欺騙性信息,欺騙網站相信自己的瀏覽器是另外一種瀏覽器。用戶代理檢測需要特殊的技巧,特別是要注意Opera會隱藏其用戶代理字符串的情況。即便如此,通過用戶代理字符串仍然能夠檢測出瀏覽器所使用的呈現引擎以及所在的平臺,包括移動設備和游戲系統。
6、客戶端檢測方法的選擇
在決定使用哪種客戶端檢測方法時,一般應優先考慮使用能力檢測。怪癖檢測是確定應該如何處理代碼的第二選擇。而用戶代理檢測則是客戶端檢測的最后一種方案,因為這種方法對用戶代理字符串具有很強的依賴性。
?
轉載于:https://www.cnblogs.com/shcrk/p/9256589.html
總結
以上是生活随笔為你收集整理的客户端检测的含义和方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动化测试学习之路--java Stri
- 下一篇: Codeforces - tag::da