Javascript, ES6, Golang, js, design, works, uuorks

2009年3月7日

提速,前端们该做什么

做了时间久了的前端,往往都有一种宿命的自卑感,不管自己承认还是周遭的环境使然,前端们都会自嘲:我是一个切页面的。的确,当你越来越熟练地打开fireworks切图,越来越熟练地只用notepad或者editplus写代码,越来越熟练地只需要看代码就知道是哪里错了,这些越来越熟练真的会给自己一种这样的错觉。我们的成就感去了哪里,我们的满足感去了哪里?我们只是一个产品开发过程中最微不足道的一环吗,绝对不是,我们是产品用户体验的基石。

参考google,虽然它有全世界最好的数据中心来服务巨大的数据请求,我们可以看它的代码, 看了下google首页,它在body的onload事件加了如下代码 document.f.q.focus();if(document.images)new Image().src='/images/nav_logo3.png' 缓存了一张搜索结果也的小google logo的图片,这样,当跳转到搜索结果页的时候,那一张当前页非内容的图片是从浏览缓存里读取; 甚至google 搜索所有的页面的代码都是无空格无回车,链接极少。

一切都是在追求一种极致的速度感,这也是google产品与众不同的地方,为了几十毫秒要多做很多工作而这些工作非常值得,因为每个人都喜欢速度感,每个人对于时间的流逝具有天然的恐惧感。对于互联网产品来说,一切用户体验的基础就是速度,一款产品没有好的响应速度,无异于自杀,再好的使用流程,再好的创意产品,如果只能以龟速来运行,我想,没有人会喜欢它,使用它,传播它的。任何一款同质化的产品,速度是最好的分水岭。而一个优秀的前端,一定是可以穿造出这个分水岭的,无延迟的或者低延迟,即使在有延迟,低网速的情况下也给出最有解决方案,这才是前端应该做的。

不知道为什么,我向来不是很在意分数所表达的含义,比如y'slow,yui开发的关于网页的综合评分;可能是因为YUI给我的感觉不好,太大,太臃肿。y'slow里面的各项评分更像是在给后端人员的评分,比如是否使用cdn,加了过期头吗?gzip开了吗?当然也有前端人员的项目,现在几乎每个ued团队都会参考这个。但是除了这些,我们前端就没有其他可以做了吗?而且,我也不认为一张几千行代码的页面,做到了A,就一定是很快的。

那么提速,前端该做什么?

  • 写好代码,没有兼容性问题,代码重复利用率高,在不能缓存的html中和能缓存的css,js这3中代码中取得一种平衡,太大的css渲染很慢,太大html加载很慢,所有行为都靠js来做是否划算,这些都是前端架构师需要仔细考虑的
  • 利用javascript来优化用户的速度体验,可以参考picasa的图片浏览,很不错,预加载一张模糊的图片,然后渐渐清晰,网速慢也能很好的体验,这就是创新。

前端不是切页面的,高性能的前端架构师将是优秀的互联网产品不可或缺基石。

没有评论:

发表评论