完善JavaScript编程技能将引导咱们不断前行,尤为是目前,除了浏览器端之外,JavaScript还可以使用Rhino、V8或Node.js库等JavaScript引擎在服务器端运行。但开发基于浏览器的JavaScript应用程序时,咱们首先要应对:浏览器及其使人恼火的问题和矛盾。编程
理想世界中,全部的浏览器中都没有bug,而且支持以一致的方式支持Web标准,可是咱们都知道咱们并不生活在这种世界中。浏览器
近来浏览器的质量已经有了很大的改善,但仍有一些bug、缺失的API和不一样的浏览器的特定缺陷,咱们须要解决这些问题。制定解决这些浏览器问题的综合性策略并熟悉不一样浏览器之间的区别和缺陷,和精通JS自己同等重要。服务器
对于这些差别,在编写浏览器应用程序或JavaScript库时,决定支持哪些浏览器是一个重要考虑事项。咱们可能想支持全部的浏览器,但受限于开发和测试的资源限制。Yahoo提出送松耦式方式来解决这个问题,也被称为分级浏览器支持。在这种技术中,咱们建立一个浏览器支持矩阵,做为记录浏览器和其平台的重要性快照测试
因为支持大部分的平台和浏览器组合是不切实际的,所以咱们必须权衡支持各类浏览器的成本与收益。任何相似的分析,都必需要考虑到多个因素,主要有以下几点:3d
(1)目标受众的指望和需求blog
(2)浏览器的市场份额ip
(3)支持浏览器所需的工做量资源