淘宝2011新版首页开发实践

作者:拔赤 来源:taobaoUED 时间:2011-01-20 20:07:00 

新年钟声刚过,淘宝新版首页全“心”上线了,这次设计大胆的将布局从 960px 伸展至 1000px,页面更通透,新首页更大范围的实践了 HTML5 CSS3,全面兼容 iPad,并在可访问性方面有了更多积极的尝试。对于我来讲,这次开发着实是一次奇妙的经历,也让我对可访问性、html5 和性能优化有了新的认识。

其实 html5 并不是那么遥不可及,现在也有着不少针对 pc 终端的 html5 template,如果不甚考虑 ie6/7/8 禁用脚本的情况,完全可以放手运用 html5 标签。那么针对那些 ie6/7/8 禁用脚本的用户,我们参照了 facebook 的做法,即引导用户进入带有noscript标识的 “/?_fb_noscript=1”页面,用 html4 标签替换 html5 标签,这要比为了保持兼容性而写大量 hack 的做法更轻便一些。

如果你足够细心,就会发现新首页并未完全遵循“栅格”,因为一个很纯粹的文档中,实现栅格效果所使用的层层 wrap 本身就缺乏语义,html5 带来了更多语义化的标签,这和缺乏语义的栅格实现是如此格格不入,摆脱栅格,容器用绝对定位,不用写那么多 hack,岂不多快好省~

另外,关于性能优化,之前我们的确过于依赖 yslowpagespeed 的评分,其实,这些条条框框才是真正阻碍我们作 WPO 的拦路虎,不是说这些指标不科学,而是他们限制住了我们的思维和视野,更何况,他们都缺少对“加载/渲染时间”这个最重要的因素的评估,当用户更快的看到并可用页面(尤其是首屏),才是真正的性能提升,因此,这次开发特意针对 First Rendering(首次渲染)的指标进行一些重构,重写了几乎所有的逻辑层 js 代码 (domready 之前,甚至 Render 出 UI 之前,js 已经在运行了),当 js 效率更高,CPU 损耗更少时,浏览器才会更多的将硬件资源投入到渲染 Dom 本身,First Rendering 自然会更加提前,后续的渲染也会提速。可以参照新旧淘宝首页的 CPU 耗能对比,以及其对 First Rendering(绿线)的影响。

2010(旧)首页加载 CPU 损耗

2011(新)首页加载 CPU 损耗:

当然,延迟加载、延迟渲染等技术在这里依然适用,上次淘宝首页改版云谦同学作了详尽的总结,这里就不再赘述了。更多内容大家可以到这里下载 ppt

此致,鸣谢法海承玉王松、玉澧、黑三,最后要特别感谢下玉澧童鞋,有了你的妙笔,这次首页才会如此闪亮。

标签:淘宝,首页,开发
0
投稿

猜你喜欢

  • 简单的在线调试服务端js代码的asp源码

    2008-04-23 13:30:00
  • 在python带权重的列表中随机取值的方法

    2022-05-09 01:44:25
  • SQL SERVER数据库表记录只保留N天图文教程

    2024-01-29 06:34:21
  • HTML5实现留言和回复页面样式

    2024-04-18 10:32:20
  • 使用TensorFlow实现简单线性回归模型

    2022-11-30 19:51:48
  • Python实现网站注册验证码生成类

    2023-10-24 13:58:02
  • MySQL去重的方法整理

    2024-01-27 07:04:42
  • MySQL错误提示:sql_mode=only_full_group_by完美解决方案

    2024-01-17 02:50:18
  • php实现xml与json之间的相互转换功能实例

    2023-11-22 05:38:00
  • python 进程间数据共享multiProcess.Manger实现解析

    2021-03-25 14:06:53
  • vue实现自定义"模态弹窗"组件实例代码

    2024-04-30 10:26:05
  • 基于Python绘制子图及子图刻度的变换等的问题

    2023-12-12 14:14:33
  • 用asp获取微软安全更新列表的代码 小偷程序

    2011-02-24 11:19:00
  • JavaScript中的64位加密及解密

    2009-12-23 19:10:00
  • 利用OpenCV给彩色 图像添加椒盐噪声的方法

    2023-06-15 00:11:30
  • tkinter自定义下拉多选框问题

    2022-09-27 06:40:00
  • Vue中父组件向子组件通信的方法

    2024-04-26 17:37:32
  • Vue 项目中遇到的跨域问题及解决方法(后台php)

    2023-11-16 09:14:13
  • python检测服务器是否正常

    2022-06-18 05:10:19
  • SQL Server命令行导数据的2种方式

    2010-07-26 14:48:00
  • asp之家 网络编程 m.aspxhome.com