简单前端优化的实战

  最近约瑟网的项目中需要进行前端优化,我们的前端工程师自然就想到了YSlow中经常提到的几条优化前端的金科玉律,特此把部分经验分享之,粗浅表述,权当交流之用,见笑见笑!

  要优化前端,自然从两个地方着眼,一是减少请求连接数,二是压缩文件尺寸大小。

  当前项目中使用的是开源的Minify进行合并,这是一个相当亲和的PHP小程序,用还算优雅的方式合并绝大多数复用的JS和CSS文件,并且可以 开启文 本压缩输出的功能,很强大的小工具呢,使用配置起来也是相当容易。如果项目中使用的五六个JS文件合并之后,请求时间基本上可以减少15%~30%,还是 很可观的。

  图片的请求也是一个很头痛的事情,浏览器是有最大的并行下载限制的(当然你可以手工增大,但是一般用户是绝不会怎么做的),这时候就需要使用另一个 独立的 图片域名了。把大量的图片放置在另一台服务器上,绑定一个二级域名,之后引用,这样可以容纳更多的并行下载,也有一定的提速效果。

  有意思的是,项目中使用了被广泛使用的JQuery库,版本是1.4.4,基本满足了日前的需求,貌似mini版本的尺寸是70多KB左右,同时开 启 GZIP压缩对外输出,可以压缩到28KB左右,但是对于我们项目中使用的普通虚拟主机而言,IDC宣称的高速双线其实就是胡扯,在很多地方,一个 JQuery库也需要消耗掉250~450ms的时间。所以我这里使用了Google公司提供的JS库CDN加速服务,道理很简单,就是直接使用 Google公司提供的一个JS地址引用库,利用了Google公司庞大的CDN网络进行加速,何乐而不为呢?

  示例地址:www.yuesir.com

  (编者注:您可以使用Firefox的Firebug插件查看实际加速效果,Google JS托管的效果远比我们的服务器效果好,正常网速下只需要加载150~250ms)

  当然,这里要注意的是,Google公司的域名在中国大陆经常会被屏蔽或是出现解析错误,为了让我们的服务更加稳定,这里可以做一个JQuery对 象判 断,如果Google的JQuery文件可以正常加载则无事,如果无法加载则换用另一个库,这里我选用的是微软的JS引用,当然最后还是应该把自己服务器 上的JS地址也放置上去。

  这样,服务的高速和稳定就有保障了。

  当然,GZIP是一定要开启的,大有裨益啊!

  话说回来了,由于使用了Minify的合并以及自动精简,我已经不再剔除掉JS代码和CSS代码的注释了,这样不仅仅方便了工作,更是对项目的可维护性有很大的帮助。

  在假设图片服务器的事情上,我还是持着开放的态度,尽量使用第三方资源,而把精力放置于核心的业务逻辑。所以最后我并没有使用自己搭建的方案,而是使用了国内相对优秀的图床服务供应商“又拍”的VIP相册管家。

  主要看中的是它支持FTP自动导出备份,自定义域名绑定以及比较稳定高速的网络带宽资源。

  对于第三方服务,还是得有一种开放的态度呢,不然把很多的精力放在了无关的事情上,是得不偿失啊。

  话说等到服务稳定了还是得通过FTP备份下所有的图片,之后重新改名,并且进行目录归档管理,方便项目自主稳定的升级。

  当然在前端上的优化是无止境的,项目中还是用了一些优化的方法,下举一例:

  使用了JQuery库插件Lazyload,凡客诚品、初刻之类的都在使用(话说昨晚发现初刻前端的一个严重问题,心里很开心),淘宝也自主编写了类似的功能库。这个插件的功能就是可以使视界之下的图片文件无法读取,当滚动条滚动到图片处,才开始读取。

  这样按需加载的方式很有效果,目前已经被大量使用了。只是有一个问题是,图片需要有默认的高度(他是通过计算图片高度来运作的),不然会出现抖动、无法按需加载的Bug。

  当然官方提供的Lazyload只是一个障眼法,如果你分析HTTP请求就知道,本质上原生的Lazyload并不是真正的按需加载,而是障眼法罢了,所有的图片依旧照常发出请求,只是用户暂时看不到罢了,之后用一个fadeIn呈现。

  我们只需要做一个很小的改动就可以了,欲知详情,可以搜索“lazyload 改进”就可以了解到改进方案,真正的实现按需加载。

  示例地址:http://www.yuesir.com/goods-72.html

  (编者注:只要研究这个页面的HTTP请求,就知道这才是真正的实现了按需请求,对于提升用户体验有很大的帮助,大家善用之)

  作者:Yuesir前端

时间: 2024-08-04 04:21:13

简单前端优化的实战的相关文章

晋城吧对DiscuzX进行的前端优化要点

最近,康盛的DX版本基本确定,至少短期内不会大变了,因此,我对晋城吧的整站进行了前端优化,把自己 所做的操作记录下来,一是有个记录,防止忘掉,二是和网上的朋友们共享下自己的心得. 前端优化 推荐工具 火狐浏览器+Yslow+google pagespeed+Firebug 具体下载地址 请自行百度 一.DX后台 及DIY的优化 1.首页DIY避免过多层的嵌套 DX的每一个框架都会产生非常多非常多非常多的 代码.我的首页已经尽可能简单了,结果光 DOM 有1600+,囧死我了. 所以,尽可能不要用

A5优化团队:SEO优化中的前端优化

网站的速度是很多人都面临的问题,其实许多网站,都没有特意的去优化加载速度,对于一个网站来说,加速不但提高了用户体验(如果一个网站在几秒内没有打开,大多数用户选择的是关闭而非等待),而且对于SEO的流量也是有很大影响的,我们可以这样理解:网站的速度加快了,网页的加载速度就快了,这样在同样的时间内,搜索引擎蜘蛛抓取的页面也就多了,从而增加了收录.最终流量增长了.可见,网站的速度是影响SEO流量的.那么在网站加速方面,我们应该如何做呢?A5优化团队www.seozhenduan.com认为有以下几点:

Web前端优化最佳实践之图象篇

Web 前端优化最佳实践第六部分面向 图片(Image),这部分目前有 4 条规则.在最近的 Velocity 2008 技术大会上,Yahoo! 的 Stoyan Stefanov 做的 Image Optimization: How Many of These 7 Mistakes Are You Making 也非常有参考价值.结合一起说一下. 1. 优化图片 (Optimize Images) 使用 GIF .JPG 还是 PNG 格式的图片? 尽可能的使用 PNG 格式的图片,更多的功

对DiscuzX 进行的前端优化要点

本文为晋城吧技术团队原创,转发请勿删除本文链接. 晋城吧的服务器在美国,延迟相对国内略微要高一些,所以优化就显得非常重要.最近,康盛的DX版本基本确定,至少短期内不会大变了,因此,我对晋城吧的整站进行了前端优化,把自己 所做的操作记录下来,一是有个记录,防止忘掉,二是和网上的朋友们共享下自己的心得. 前端优化 推荐工具 火狐浏览器+Yslow+google pagespeed+Firebug 具体下载地址 请自行百度 一.DX后台 及DIY的优化 1.首页DIY避免过多层的嵌套 DX的每一个框架

网页前端优化之滚动延时加载图片示例

做web开发的朋友都应该掌握前端优化这个技巧,其中一个就是滚动延时加载.这个技巧应用在了很多地方,比如新浪微博网页版.以下就为大家详细介绍,需要的朋友可以参考下   为什么要延时加载呢?页面加载的时候就显示全部的图片不就得了?有必要多此一举吗?答案是肯定的.当要加载的图片或者内容很多时,如果一次性加载完 毕,那么整个页面将会加载很久,意味着要用户等待很久,这是对用户不友好的.或许你还会问,那不就做个分页不就得了?其实这种滚动延时加载的技巧正是用来 代替手动点击下一页的分页技术.每换一页都要用户点

网站前端优化一些小经验

/** *作者:张荣华 *日期:2008-12-01 **/ 乘着第3届d2论坛的顺利结束的秋风,我也来分享一下自己在前端优化方面的一些些小经验,其实这些经验本身都是来自yahoo的优化原则,不过经过ahuaxuan自身的实践和再次的思考,把原来的原则都进行了分组和分析.不过由于ahuaxuan涉及到的东西有限,并没有经历过全部的优化点,所以只把自己做过的拿出来和大家讨论讨论,其中不免加入自己一些观点,希望大家指正. 先说说目标,前端优化的目标是什么,一个字:快.两个字:更快.那么下面我们来看看

【原创】构建高性能ASP.NET站点 第六章—性能瓶颈诊断与初步调优(下前篇)—简单的优化措施

原文:[原创]构建高性能ASP.NET站点 第六章-性能瓶颈诊断与初步调优(下前篇)-简单的优化措施 构建高性能ASP.NET站点 第六章-性能瓶颈诊断与初步调优(下前篇)-简单的优化措施     前言:本篇给出一些在部署ASP.NET站点时采用的简单的优化措施.同时很也非常的感谢朋友对昨天发的文章的支持,本篇的内容不多,也比较的简单!         本篇议题如下:       识别和分析服务端的性能瓶颈(上)    内存(前篇)    缓存(前篇)     CPU(前篇)    处理请求线程

浅析渲染引擎与前端优化

本文主要是两方面内容: 浅析浏览器内核的工作原理(以 WebKit 2 为例). 浅析由浏览器内核想到的前端优化,或者说前端优化规则是从哪儿来的. 大家知道,大部分的 WEB 页面依托浏览器呈现,而浏览器能够将页面展示出来,基本依赖于浏览器的内核,即渲染引擎.今天以 Chrome 浏览器的内核 WebKit(更确切是 WebKit 分支 Blink,以下统称为 WebKit )为例,对渲染引擎如何展示页面做个简单.全面的了解. 浏览器的渲染引擎及其依赖模块 渲染引擎主要是将 WEB 资源如 HT

前端优化:9 个技巧,提高 Web 性能

当今数字世界,存在着无数的网站,每天都需要处理各种不同的原因的访问.然而,这些网站中有很大一部分显得笨重,使用起来也很麻烦.没怎么优化的网站会被各种各样的问题困扰,包括加载时间.不支持移动设备.浏览器兼容性问题,等等. 这篇文章讲述可以帮助改善优化前端的技术,非常有用.主要内容有清理代码.压缩图片.压缩外部资源.使用 CDN,以及一些其它方法.这些方法会为你的网站带显著的速度提升和整体性能提升. 1. 清理 HTML 文档 HTML,即超文本标记语言,几乎是所有网站的支柱.HTML 为网页带来标