浅谈12306前端优化点

关于12306

中国铁路客户服务中心(12306.cn),相信大家都不陌生。作为一个超大型的类电商网站,具体业务不予置评,但从前端设计来看,却有诸多的不足。

12306订票首页分析

12306首页(https://kyfw.12306.cn/otn/)请求达到32个,累计文件大小近800k。

其中有一半是图片资源,大小达到444kb。

另外有6个css文件请求,特别的是有2次css请求完全指向同一个css文件。

还有8个js请求

这就是首页初次打开所需要的内容,当然还有两个html页面,就不计算了。可以看到,打开整个页面文件大小达到800k,和taobao,jd之类的比起来,这个大小是很小的,但是为什么给用户的体验就是卡顿、加载中、加载中呢?

接下来,就从前端的角度来看下,有没有可以优化的地方呢?

优化1、使用浏览器缓存

在页面加载中,12306请求了如此多的资源,很多资源看起来,根本就是不太容易变化的,应在HTTP标头中设置有效期,尽可能多的使用浏览器缓存。

优化2、图片优化

数据传输时间,在访问网站的过程中,是一个耗时比较大的过程,其中又以图片传输为最,如果网站上有较多的图片,那么就要想办法减少体积,延迟加载等等。在12306的页面上,logo(https://kyfw.12306.cn/otn/resources/images/logo.png ),icon(https://kyfw.12306.cn/otn/resources/images/logo.png )等等图片都是可以优化的。

优化3、图片组合为CSS贴图

浏览器一般都有并发连接数限制,也就是同时请求的资源数量是有效的,前端优化点之一就是减少请求数量,那么12306中的诸多小图片完全可以合并到一个大图之中,采用贴图定位的方式,降低请求数量。

优化4、暂缓JS解析

由于JS是阻塞加载的,一般来说,把js放在head中会影响页面的渲染速度,很多时候,我们都推荐把js放在body结束标记之前。但12306偏偏没有这么做,把大把的js放在head中。

优化5、使用css而不是图片控制背景

这个似乎是大家都知道的常识,就算为了兼容老版本的浏览器,也可以考虑做优雅降级。但12306偏偏就大量使用背景图。

优化6、CSS合并

同样为了减少请求数,应该尽量将CSS压缩合并。分析12306的站点css,发现部分合并了,部分没有,而且有些css连压缩都没做,很难想象是怎么打算的。另外,外部控件的样式(不会变的样式)完全可以打包放到cdn上。

优化7、JS合并

JS同上,该打包就打包,不要搞一堆js出来,加载还慢。。

总结

抢票还是每年的一个老大难的问题。12306,你可以推说你的核心逻辑复杂,这个我接受。但你完全可以把前端的一些基本优化点做到吧。就算我买不到票,至少我抢票的时候心情不至于太差。。

以上,抢票之余作为一个伪前端的发泄。

时间: 2024-10-01 04:14:55

浅谈12306前端优化点的相关文章

浅谈尾递归的优化方式

尾递归与Continuation 浅谈尾递归的优化方式

浅谈移动前端的最佳实践(转)

前言 这几天,第三轮全站优化结束,测试项目在2G首屏载入速度取得了一些优化成绩,对比下来有10s左右的差距: 这次优化工作结束后,已经是第三次大规模折腾公司框架了,这里将一些自己知道的移动端的建议提出来分享下,希望对各位有用 文中有误请您提出,以免误人自误 技术选型 单页or多页 spa(single page application)也就是我们常常说的web应用程序webapp,被认为是业内的发展趋势,主要有两个优点: ① 用户体验好 ② 可以更好的降低服务器压力 但是单页有几个致命的缺点:

浅谈web前端开发

有部分同学和朋友问到过我相关问题.利用周末我就浅浅地谈谈我对web前端开发的理解和体会,仅仅能浅浅谈谈,高手请自己主动跳过本篇文章. 毕竟我如今经验并非非常足,连project师都算不上,更不用说大牛了.今天也不谈技术.技术非常多人比我掌握得更好,也大同小异.可是每一个人的理解体会是不一样的. 对前端开发的三个整体理解和体会 我对前端开发的整体体会有三: 第一:杂而难,难度甚至超过了一般的后台开发,假设有人认为前端开发简单仅仅能说明他还没有入门. 第二:web前端开发正在向响应式和移动端方向大步

浅谈12306 核心模型设计思路和架构设计

春节期间,无意中看到一篇文章,文章中讲到12306的业务复杂度远远比淘宝天猫这种电商网站要复杂.后来自己想想,也确实如此.所以,很想挑战一下12306这个系统的核心领域模型的设计.一般的电商网站,购买都是基于商品的概念,每个商品有一定量的库存,用户的购买行为是针对商品的.当用户发起购买行为时,系统只需要生成订单并对用户要购买的商品减库存即可.但是,12306就不是那么简单了,具体复杂在哪里,我下面会进一步分析. 另外一个让我写这篇文章的原因,是我发现也许是否是因为目前12306的核心领域模型设计

浅谈12306的核心模型设计

前言 春节期间,无意中看到一篇文章,文章中讲到12306的业务复杂度远远比淘宝天猫这种电商网站要复杂.后来自己想想,也确实如此.所以,很想挑战一下12306这个系统的核心领域模型的设计.一般的电商网站,购买都是基于商品的概念,每个商品有一定量的库存,用户的购买行为是针对商品的.当用户发起购买行为时,系统只需要生成订单并对用户要购买的商品减库存即可.但是,12306就不是那么简单了,具体复杂在哪里,我下面会进一步分析. 另外一个让我写这篇文章的原因,是我发现也许是否是因为目前12306的核心领域模

浅谈12306核心模型设计思路和架构设计

前言 春节期间,无意中看到一篇文章,文章中讲到12306的业务复杂度远远比淘宝天猫这种电商网站要复杂.后来自己想想,也确实如此.所以,很想挑战一下12306这个系统的核心领域模型的设计.一般的电商网站,购买都是基于商品的概念,每个商品有一定量的库存,用户的购买行为是针对商品的.当用户发起购买行为时,系统只需要生成订单并对用户要购买的商品减库存即可.但是,12306就不是那么简单了,具体复杂在哪里,我下面会进一步分析. 另外一个让我写这篇文章的原因,是我发现也许是否是因为目前12306的核心领域模

浅析12306前端优化点

关于12306 中国铁路客户服务中心(12306.cn),相信大家都不陌生.作为一个超大型的类电商网站,具体业务不予置评,但从前端设计来看,却有诸多的不足. 12306订票首页分析 12306首页(https://kyfw.12306.cn/otn/)请求达到32个,累计文件大小近800k. 其中有一半是图片资源,大小达到444kb. 另外有6个css文件请求,特别的是有2次css请求完全指向同一个css文件. 还有8个js请求 这就是首页初次打开所需要的内容,当然还有两个html页面,就不计算

浅谈移动前端的最佳实践

前言 这几天,第三轮全站优化结束,测试项目在2G首屏载入速度取得了一些优化成绩,对比下来有10s左右的差距: 这次优化工作结束后,已经是第三次大规模折腾公司框架了,这里将一些自己知道的移动端的建议提出来分享下,希望对各位有用 文中有误请您提出,以免误人自误 技术选型 单页or多页 spa(single page application)也就是我们常常说的web应用程序webapp,被认为是业内的发展趋势,主要有两个优点: ① 用户体验好 ② 可以更好的降低服务器压力 但是单页有几个致命的缺点:

运维角度浅谈MySQL数据库优化

一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分为以下五个阶段: 1.数据库表设计 项目立项后,开发部根据产品部需求开发项目,开发工程师工作其中一部分就是对表结构设计.对于数据库来说,这点很重要,如果设计不当,会直接影响访问速度和用户体验.影响的因素很多,比如慢查询.低效的查询语句.没有适当建立索引.数据库堵塞(死锁)等.当然,有测试工程师的团队