构建现代化网站的 20 个技巧

操作方法

  • 01

    在过去几年中,我们与web开发者花了很多时间交流,听得最多的一件事情就是创建一个能很好的跨越各种类型浏览器版本与各种设备的网站有多么难。我们为jQuery项目写代码的时候一直有这个问题。因此我们整理了20条编码模式与经验,它们是从出席无休止的会议和读了几百篇专稿中摘取出来的。我们希望能在你建站的时候给你节省一些时间(和麻烦)。跨浏览器基础 网站不需要在所有浏览器里渲染得一样 一件普遍被开发者所关心的事情是确保他们的网站在所有浏览器中渲染得一样,包括非现代的一些。那一般并不需要。更好的路线是考虑逐渐增强你的网站,对非现代浏览器的用户提供一个可靠的工作基线,而给用现代浏览器的用户提供一个更丰富的UI。 从固体模版开始以简化开发 许多的技巧已经创建进项目模版如HTML5 Boilerplate 以节省你一些时间。这些准则对以现代浏览器为目标的项目和需要旧浏览器(一直回退到IE6)支持的项目工作得一样好。 关注稳定的标准 当一个新又酷的特性出现的时候很容易令人兴奋,但其中的一些可能仍然在为技术参数实验、仍然在开发中。重要的是要记得,在规范发展的早期是很容易变化的,这有可能影响你的网站的稳定性和你的用户的体验。通过关注稳定的标准,你可以确保你的用户能获得他们期望的体验,你的网站会更易维护。 用IE兼容检测工具帮助你的网站迁移到基于标准的代码 标准是IE10的一个核心部分,帮助开发者迁移他们的代码以便能发挥这项长处,这对IE工程项目组来说无比重要。这就是为什么他们创造了IE兼容检测工具,它能实时分析你的网站,准确的找到通常问题的类型并给出解决方法。通过在你的代码中包括一个简单的JavaScript脚本文件,在你的页面你就能得到可视化的结果。它也可以被集成进Fidder HTTP 分析工具。 谨慎使用polyfills和shims(模拟标准API) 如果你必须在不同浏览器实现系统的体验,polyfills和shims提供了代码和标签,可以帮助模拟标准的API和功能。需要谨记的是,确保你引入的代码适合你的需要,并且可以在日后维护。 开发时多浏览器测试 尽管相对以前,现代浏览器已经接近统一标准,但还是有不同。偶尔的多浏览器测试避免不会在最后一刻发现大问题——甚至已经上线了。确保查看所有浏览器调试器比如IE的F12 Dev Tools,检查有没有警告或错误信息。一些老浏览器比如IE7没有内建调试器,可以用Firebug Lite调试。或者使用跨浏览器解决方案如BrowserStack。 用工具参与创建过程来检测错误和缩小文件大小 有好一批创建工具如 HTML validators, CSS validators, Uglify,  JSHint, 或者 GruntJS ,他们能找到潜在的问题,增强项目代码的标准,减少文件的大小提升性能。如果你的IDE或者代码编辑器支持它们,这些步骤就不会成为绊脚石。例如,Visual Studio提供了在创建过程中运行外部工具和合并/压缩脚本文件的能力。HTML 总是使用标准模式避免怪癖模式 直接用吧!现代化网站不需要怪癖模式,不需要考虑90年代中期为了兼容现代化的浏览器比如IE6和FireFox 2.大多数现今的网页在怪癖模式下要么文档声明无效,要么出现无关文本。很容易导致布局异常,而且很难调试。 理解有限向后兼容的HTML标签 新HTML5标签比如,和改善标签的语义化,但需要特殊的辅助脚本让IE6,7和8认识他们。页面在太旧的浏览器或者禁止脚本时无法使用HTML5标签,那么使用标签是对这些情况比较靠谱的解决方法。 将CSS在HTML文件顶部引入 在文档body中引入CSS会导致页面全空,直到CSS加载后才显示。CSS文件应该放在HTML文档的head中,让浏览器尽早地读取他们。 将JS在HTML文件底部引入 浏览器会先检索、解析和执行加载的脚本,然后渲染剩余的页面内容,以防脚本创建新元素。脚本在底部后,浏览器可以一直渲染页面直到脚本加载完全,以便用户尽快加载页面显示出来。 避免HTML中脚本标签 不同于引入脚本,脚本标签需要浏览器停止渲染(处理脚本),阻碍后续资源文件的分析和下载。这导致页面初始加载减慢,甚至留下可怕的“空白页”体验。而且脚本分散在内联标签里很难维护。 不要在HTML元素中使用内联脚本事件 例如< BUTTON onclick=validate()>Validate</ BUTTON>。这种做法违反了标签、表示和行为之间的清爽原则。而且,如果相关的脚本实在文档底部加载,用户可能先点击了页面触发事件从而尝试调用脚本程序,但是其实脚本还没加载——引发错误!CSS 熟悉和使用CSS级联规则 简单的id和class选择器是好用的,但是这也意味着标签混乱,到处是无法重用的的id和class。应该用标签,子元素标签,同列标签和,小部分的id和class标签组合,使css更简单和通用。避免使用“!imporant”。 面向未来的使用前缀特定属性 新草案制定时,一些浏览器厂商会通过添加前缀以实现可能支持的标准。为了确保CSS标签以后可用,带前缀的和标准的属性名称都用上最好。这篇文章还提供了一个JavaScript解决方法。 用优雅的CSS处理兼容性,而不是hack CSS hack随着浏览器的更新,显得不可靠。解决方法是为html或body标签添加特定浏览器的class,并在css规则中使用。条件注释也可以在特定浏览器版本时使用需要的CSS文件。JavaScript 总是将功能探测优先于浏览器(navigator.userAgent)探测。 判断是否存在一个特定功能(或错误)时,"userAgent"字符串是一个糟糕的指标。更严重的时,解析userAgent的代码时错误的。例如,一个浏览器探测库期待主版本号是一个一位数字,所以会把Firefox 15报告为Firefox 1,把IE 10报高为IE 1!更可靠的是直接探测功能或问题,并用它作为代码分支决策的标准。我们推荐Modernizr,它是实现功能探测的最简单方法。 尽可能在Ready后立刻执行脚本 技术上如jQuery的$(document).ready()使脚本在HTML页面加载完后立即执行,也是脚本可以安全执行的最早时刻。然而复杂的脚本会让页面显得迟缓,并阻止用户立刻操作页面。所以,一些比如tooltip(提示框),dialog(对话框)在需要显示时初始化,不造成页面卡顿。 如果Ajax关系用户交互,越早请求越好 Ajax请求会花费很长时间,而且不需要等待HTML页面渲染就可以发起请求。所以,把$(document).ready()放在Ajax请求完成回调函数中更好。

(0)

相关推荐

  • 让你玩转Windows 7的20个技巧

    据国外媒体报道,最近一段时间,IT管理者一直在不断地迅速学习,服务器虚拟化、桌面VDI、Exchange、SharePoint,微软不断地在企业中注入新鲜的元素。在这么多新产品的围攻之下,管理者很难空 ...

  • 卡通形象人物角色设定的20个技巧

    从米老鼠著名的三个手指(20世纪20年代当这个角色被搬上荧幕的时候,当时是为了节省制作时间所以只画了三个手指),到简约的<辛普森一家>,角色设计都没有离开过保持简洁的主线. 关于角色设计, ...

  • 运用20个技巧快速制作易懂美观的图片

    图片是设计师的语言,因此图片的制作不仅要美观,更要容易理解,只有这样才能更好地向受众传达信息.想要自己的语言达到这样的水平,就需要掌握一般规律,积累技巧. 作为一名设计师,大多时候都是将想要传达的事情 ...

  • 极品飞车20漂移技巧

    在极品飞车20学会漂移是一件非常重要的事,为什么要这么说,因漂移本身就是赛车技巧的展现与作秀的标配,那么在极品飞车20里怎么漂移呢?接下来马上就为大家介绍几种复仇漂移技术. 操作方法 01 1.选车的 ...

  • 如何构建大型网站架构

    亿万用户网站MySpace的成功秘密.Flickr架构.YouTube网站架构.PlentyOfFish 网站架构学习.WikiPedia技术架构学习笔记.这几个都很典型,我们可以从中获取很多有关网站 ...

  • 王者荣耀20个技巧 保证你上王者

    操作方法 01 姜子牙在放大过程中可以使用闪现来改变大招 芈月,二技能转身的那一会是无敌的,不会受到伤害和技能效果. 三.打野带节奏是最常见的,不管是边路还是中单,都要一直盯着打野的动向,小地图经常看 ...

  • 着迷海岛奇兵快升级速本到20级技巧

    各位在海岛奇兵中想要速本的玩家们可以过来看一看噢,下面将给大家推荐一篇关于速本的技巧文章,希望可以帮助到各位想要快速升本的玩家. 操作方法 01 海岛奇兵中想要快速升级,最为主要的一点就是要持续不断 ...

  • App 开发框架 Ionic 构建应用的 5 个实用技巧

    随着 HTML5 在 2014 年的推出,HTML 已经确定了它的地位.Ionic Framework 的开发者马上就认识到,这是将 HTML5 用于原生和混合应用开发平台的好时机.他们的口号是&qu ...

  • 抖音新人直播的20个技巧是什么(抖音新人直播技巧)

    最近还是有很多商家在抖音直播新号期,无法突破没流量.千川不知道怎么投,没停留.没转化的情况.抖音直播起号期,到底要怎么样才能提高直播间人气和获得抖音直播流量推荐呢?或许可以从直播复盘入手我们采访了飞瓜 ...