前台页面优化全攻略(三)

标签: 页面 优化 攻略 | 发表时间:2014-09-06 19:51 | 作者:
出处:http://kb.cnblogs.com/

  经过前 两篇文章的实践,你的网站加载速度一定有了非常明显的变化。能把实践跟到这篇文章的人想必一定是极客中的极客。如果你仍对网站的加载速度不满意,可以看看再尝试一下本文中几近疯狂的终极优化方案。

  你可以对网站进行快速的优化,但网站日常的节食却很难。也许你已经花了很大的力气去优化你的 CSSJavaScript代码,但是你所做的努力马上又会因为老板或客户期望的新功能而付之东流。所以看来不论是人还是网页,减肥都贵在坚持。

  这篇终极减肥方案可能不适合所有的网站,但是我相信它可以引起你对网页大小的重视。

  1. 永远都不要相信第三方平台的代码

  你会随随便便的让一个不认识的开发者改动你的网站代码吗?我想应该没有人会这么二,但是为什么你就如此的相信第三方平台的代码呢?在网站中添加一个实用的组件实在太容易了,但是它们很少会关心你的网站的安全性。你必须经常检查这些插件的源码并用 firebug跟踪一下,这显然是个悲伤的故事。

  2. 一个JavaScript库就够了

  也许你的网站正在使用jQuery,这样很好,你应该坚持用它,不要为了让你的网站更酷而添加各种各样的库。

  你还需要考虑以下几个问题:

  1.如果没有使用一些库,你的网站能正常的构建吗?

  2.有没有更加轻量级的库可以取代?比如 Zepto.js 和 Minified.js 都可以取代jQuery核心库的部分API。

  3.是因为浏览器版本的差异你才不得不加上一个库来支持的么?你有没有因为熟悉和用着舒服来决定选择哪个库?

  3. 谨慎使用CMS模板

  很少有建站模板会直接提供一个轻量级的页面,但他们的确是不错的开始。

  不论是一个免费的还是付费的模板他们都有很高的商业价值,为什么一些大公司不直接花一些钱买个不错的模板,而要花高价养活几个程序员呢?虽然模板可以提供网站的大部分功能,但是它有一些隐形的花费,一个模板为了满足不同网站的不同需求,就必须实现成百上千的方法。你可能只会用到其中的几个,但是其它功能还是会存在于代码之中。

  大概是我比较不幸,我使用的WordPress主题居然达到了2M。虽然大家都知道肯定会有轻量级的主题,但是找到它也是个麻烦事儿~

  4. 为框架消脂

  像Bootstrap和Foundation这些模板类型的框架是非常实用的原型设计和项目切入点。但是通用的模板很多CSS和JavaScript代码你都不会用到,就连HTML代码中也会有很多没用的东西。

  就我个人来说,我喜欢模块化的开发方式,我需要什么,我就添加什么。项目是从零开始,由我来决定要什么和不要什么。框架就像是雕刻大理石,你会凿掉没有用的那一部分,这样通常比较难。而模块化就像堆积木,你可以充分发挥你的各种能力。

  我不会说我永远都不使用框架,但是我们必须要考虑框架给我们带来的负面影响。有一个工具 grunt-uncss 它可以帮我们除去框架中不需要的代码。

  5. 享受渐进增强(Progressive Enhancement)

  随着互联网的发展,浏览器的发展也突飞猛进,在原来的多浏览器厂商并分天下的局面下,现在还出现了多平台的划分。开发人员面对原来五大浏览器IE、 火狐、Opera、Safari、Chrome的局面已经有些不知所措,何况现在我们还需要处理iphone、ipad、android的mobile浏 览器、其他智能手机中带有的非现代浏览器(对浏览器标准支持不完整的)。在这种情况下,如果你想要让你的网站变得广为人知,那么必须从新思考兼容性的问 题。

  渐进增强PE可以帮助大家较好的解决这个问题。PE是以内容为核心的开发方式,在内容的基础上,开发人员使用css加工样式,利用javascript添加行为来提升用户的使用体验,由于是以内容为核心,所以使用PE的同时,亦解决的兼容性问题。

  那么,PE中提到的内容核心是什么?对于用户、BA、UX来说,内容可以是网站给访问的用户带来的内容和功能,具体可以单纯到只是网站中的文字,也 包括网站带给用户的交互功能,比如说发送邮件,填写表单,甚至还可能为给用户带来的视觉效果、颜色搭配、排版、阅读体验等等。但是,对于我们开发者来 说,PE核心内容就是我们的HTML代码,简洁易懂的标记们。HTML是我们制作页面功能的基础,也是几乎所有浏览器呈现页面功能的基础,开发人员通过添 加css样式和js代码使内容在更强的浏览器上工作得更好,提升用户体验。

  在这边举一个例子,80后可能都会有印象,家里的电视机是又90年代初的黑白电视机换到00年初的CRT彩色电视机,接着随着科技发展,到现在 LED高清电视机,甚至都出现了3D电视机。对于用户来说,电视机给他们带来的是电视节目,看中央一台也看了这么多年了,但是先进的电视机给用户带来了新 的观赏体验,不仅带来了色彩,还带来了高清的画质,丰富的观影体验。反过来看,同样内容的电视节目同样可以在旧的电视机上播出,内容一样能被用户获取到, 这一切都是向后兼容的,PE给我们带来的好处就在于此。浏览器的发展,从Netscape到现在的Chrome也是类似的一个发展过程。那么,我们的网站 给用户带来的是尽可能一样的体验,而并非是完全一样的。你也不能奢望一个kindle的silk浏览器能像chrome表现得那么出色。

  由此看来,我们需要从新审视解决浏览器兼容性这个问题,我们的开发需要从一直一来的以兼容性为目标的开发转化为以可用性为目标的开发,可用性指的是网站带给用户的功能从一开始就是跨浏览器的。

  6. 选择一个自动化的构建工具

  你应该确保你已经完成了所有的关于简化图片,CSS和JavaScript的工作。这些工作都可以被人工地完成,但是如果你觉得麻烦,也可以尝试一下像  Grunt.js 和  Gulp.js 这样自动化的工具。

  7. 了解你的代码

  CSS和JavaScript 预处理器技术已经非常的成熟,而且也涌现出了越来越多的预处理器框架。常用的像 Sass、Less CSS、Stylus等等。

  什么是 CSS 预处理器?CSS 预处理器是一种语言用来为 CSS 增加一些编程的的特性,无需考虑浏览器的兼容性问题,例如你可以在 CSS 中使用变量、简单的程序逻辑、函数等等在编程语言中的一些基本技巧,可以让你的 CSS 更见简洁,适应性更强,代码更直观等诸多好处。

  但是如果你使用预处理器技术你就很可能不了解你的代码是如何执行,不论你使用什么样的技术,最好是了解你的代码执行流程。

  8. 使用offline AppCache

  对于web app来说,离线应用功能已经越来越重要。诚然,浏览器本身就有缓存机制,但是,这些缓存机制不够可靠,可能并不会按你所想要的方式运行。HTML5则通过 ApplicationCache接口处理了离线应用中的一些问题。

  使用这个接口让你的应用拥有三方面的优势:

  1. 离线浏览——用户在不能联网的时候依然能浏览整个站点
  2. 高速——缓存资源是存储在本地的,因此能更快加载。
  3. 更小的服务器负载——浏览器只需要从服务器端下载有改变的资源即可,相同资源不需要重复下载。

  Application Cache(或 AppCache)让一个开发者可以指定浏览器需要保存哪个文件。当用户在离线情况下时,即使他们按了刷新按钮,你的应用也能正确加载和工作。

  9. 简化你的网站

  在过去的几年中,Web网站和应用程序的复杂度有了明显的一个改进——以客户为中心。但不是网站都做到了这一点,因为种种原因网站变得臃肿:

  1. 错误地认为更多的功能可以吸引更多的客户。

  2. 错误地觉得开发更多的东西可以赚到更多的钱。

  3. 不知道怎么样才能更好。

  幸运的是,通过用户测试可以帮助你了解到哪些不常用的功能可以用用其它时尚的、轻量级的功能替换。

  幸运的是,一个小的用户测试可以帮助你识别不常用的选项可撕下的产品或更换,以时尚的,轻量级的替代品。

  10. 改变你的编程态度

  有没有人因为网站达到了1.7M而感到羞愧?不管是什么时候什么原因网站变的臃肿,程序员都应该为这件事情负全责。

  当然开发速度和成本也是非常重要的,但是互联网发展到现在已经造就了用户不愿意等待的习惯,一个加载缓慢的网站不管创意有多好用户也不会等。你的老板和客户不会关心你使用的是什么技术。如果你不突出地解决可能出现的问题,你就不会成为一个优秀的程序员。

  轻量级的页面就是证明自己最直接的方式,你应该 有了个正确的编程态度,时刻注意以下的问题:

  1. 人们很容易忘记的带宽问题,当你使用在一个50Mbps宽带的电脑,你很可能会忽略在差的3G接收地区和一些繁忙的酒店网站的加载情况。

  2. 在每一个项目中都要考虑页面权重问题的。这个字体是必要的吗?你能降低背景图像的尺寸吗?有可用的CSS3动画来替换JavaScript库吗?

  3. 网页肥胖是一种流行病,如果你做的很好,你会变的很突出。

  总结

  前台页面优化全攻略实战篇到这里就结束了,如果你能把这三篇优化方案都尝试一遍,你一定可以变成一个优秀的开发人员,并且能开发出极简的网站。在下一篇文章中,我会列举出一些网站性能的测试工具和在线平台,相信你可以很明显地看到网站优化的效果。

相关 [页面 优化 攻略] 推荐:

前台页面优化全攻略(一)

- - 博客园_知识库
   英文原文: http://www.sitepoint.com/complete-guide-reducing-page-weight/.   据调查,网页大小在2013年平均增长了32%,平均达到了1.7M,单独的HTTP请求达到96个. 这是令人震惊的数字,而且这只是个平均值,有一半的网站会大于这个值.

前台页面优化全攻略(二)

- - 博客园_知识库
  在 上一篇文章中,我们讨论了一些基本的页面优化和减肥方案,现在我们的页面已经被缩减了30%-50%,如果你还没有阅读上一篇文章,我建议你完成那些基础热身之后再继续进阶的训练.   如果你已经尝试了基础的热身,那我们就继续采取一些更极客的解决方案.   看到这个标题请不要惊讶,我并不是让你放弃第三方社交平台,而是希望你能放弃那些肥胖的官方组件.

前台页面优化全攻略(四)

- - 博客园_知识库
  通过前几篇文章,你应该已经掌握了很多优化网站的方法. 现在你的网站加载速度已经很快了,但是你必须持续的监控你的网站,了解它的大小变化,要不然一段时间过去之后,它可能又成为了一个胖子.   如今每个页面平均已经达到1.7M,每年增长大概32%. 你可以通过以下几个工具来查看你的网站是不是又在暴饮暴食,而且它们都是免费的.

前台页面优化全攻略(三)

- - 博客园_知识库
  经过前 两篇文章的实践,你的网站加载速度一定有了非常明显的变化. 能把实践跟到这篇文章的人想必一定是极客中的极客. 如果你仍对网站的加载速度不满意,可以看看再尝试一下本文中几近疯狂的终极优化方案.   你可以对网站进行快速的优化,但网站日常的节食却很难. 也许你已经花了很大的力气去优化你的 CSS和 JavaScript代码,但是你所做的努力马上又会因为老板或客户期望的新功能而付之东流.

如何做页面优化

- - 互联网的那点事
改版是在原有基础上做较大的改变;而优化是做些小的调整,快速提升效果. 但不管是改版还是优化,都需要考虑以下的步骤:. 1.问题现状(数据、用户反馈等)/  用户调研(问卷、访谈等内容,尽量结合数据看)/  竞品分析. 2.结合上面三点,确定优化目标. 3.根据目标确定设计计划(如何达成目标). 4.结果检验(数据、用户反馈等指标).

网站页面优化策略

- - 月光博客
  网站的页面优化,也即网页优化是对网页的程序、内容、版块、布局等多方面的优化调整,使其适合搜索引擎检索,满足搜索引擎排名的指标,从而在搜索引擎检索中获得的排名提升,增强搜索引擎营销的效果使网站的产品相关的关键词能有好的排位. 使网站更容易被搜索引擎收录,提高用户体验和转化率进而创造价值. 下面主要从网站代码、标签、正文等几个方面来讲述网站的页面优化.

【mysql的设计与优化专题】mysql的最佳索引攻略 - 菜问

- - 博客园_首页
所谓索引就是为特定的mysql字段进行一些特定的算法排序,比如二叉树的算法和哈希算法,哈希算法是通过建立特征值,然后根据特征值来快速查找,而用的最多,并且是mysql默认的就是二叉树算法 BTREE,通过BTREE算法建立索引的字段,比如扫描20行就能得到未使用BTREE前扫描了2^20行的结果,具体的实现方式后续本博客会出一个算法专题里面会有具体的分析讨论;.

管理好页面图片,减少页面加载时http连接,优化页面

- - ITeye博客
浏览器渲染页面的时候,遇到图片标签或者css中的背景图片设置,先会到本地缓存中寻找是否已经下载了这张图片,如果已经下载过了就直接从缓存中加载;否则会到图片指定的路径下载到本地缓存. 而且这种下载是阻塞式的(部分浏览器内核已经实现异步加载图片. 也就是说在下载这些图片的时候,页面渲染处于暂停状态,必须等到图片下载完成了再继续渲染.

[转]浏览器的加载与页面性能优化

- Allen - linux大棚-roclinux.cn
本原创文章属于《Linux大棚》博客,博客地址为http://roclinux.cn. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. 文章部分转自“百度泛用户体验平台”,本文地址为:http://www.baiduux.com/blog/2011/02/15/browser-loading/.

浏览器的加载与页面性能优化

- 彦强 - 百度泛用户体验
本文将探讨浏览器渲染的loading过程,主要有2个目的:. 了解浏览器在loading过程中的实现细节,具体都做了什么. 研究如何根据浏览器的实现原理进行优化,提升页面响应速度. 由于loading和parsing是相互交织、错综复杂的,这里面有大量的知识点,为了避免过于发散本文将不会对每个细节都深入研究,而是将重点放在开发中容易控制的部分(Web前端和Web Server),同时由于浏览器种类繁多且不同版本间差距很大,本文将侧重一些较新的浏览器特性.