今天在RSS中看到一篇文章提到前端优化过渡的问题,上面有举一个例子提到了IE(6/7)可以用MHTML来模拟CSS的DATA-URI 中文介绍),我最近两天正在研究前端发布机制,刚好也在看这方面的内容,看完博文觉得有点感触。索性翻译一下,与各位看官共勉。

时间就是金钱。而我们是贪婪的,我们希望每一秒都从客户口袋里面赚到更多的钱。

由于让客户从口袋里面掏出更多的钱往往和(网站)性能有极大的联系,所以我们就无可避免地要努力去一次又一次的提高性能的水准。

当我们在追求极致性能的时候,很有可能就会开始针对不同的浏览器做一些特定的工作——奇技淫巧。前端优化的风险之一就来自于此:我们在浏览器这种善变且不可控的动物上花费了大量的时间。

这篇文章就是用来提醒这些在这个方向做了大量复杂优化的开发者来注意这个问题的。

微软如何用一个简单举动来浪费掉大家数百万的费用?

我们作为在我们的领域专家的责任之一是要关注最新的与性能有关的所有事情,无论多么貌似平凡。今年一月,我们偶然发现了一个IE的bug,这个bug的描述了MHTML的几个严重的安全性问题。 (MHTML是被广泛接受的一种以减少在Internet Explorer浏览器请求数的技巧。更多的信息请参见Stoyan Stefanov的两篇博文

Strangeloop,我们在一些场景使用MHTML技术来节省资源。当然,我们凭借着对各种优化技巧都有着非常成熟的解决方案和技术,我们能很快的解决这个bug所带来的问题。(我们针对不同的浏览器浏览器都有不同的兼容机制,在我们最大的客户对兼容性和容错性的要求下这套机制甚至形成了一个我们的特色功能)

然而,对其它使用了MHTML优化的人来说,这是一个很严重的问题:他们很可能对这个Bug一无所知。更糟的是,微软随后的反应——直接在补丁更新中基本上让MHTML功能失效了(相关链接:),于是,打了此bug补丁的用户在访问有这种奇技淫巧的网站上直接就杯具了。

就是微软的这么一个简单动作让很多网站损失了数百万美元,再搭上无数个通宵加班做代码重构和测试!甚至昨天还有人跟我说他的网站还有页面没有好,因为代码重构太复杂了,而且原来做这个的人还离职了…

启示:管理风险,分离设计和功能(separate function from design)。

从我日常接触的人之间谈话了解到,网站在电子商务中占的比重越来越大了。网站就是生金蛋的鹅,产生了比其它业务的收入和更高的利润越来越大的份额。

多年来,我们都主张从设计与功能分离——这也是像内容管理系统(CMS)的一个核心前提。而我坚信企业客户必须要考虑一下浏览器特定的优化代码的必要性了,到下一个这样的问题发生的时候,你准备好了么?

Tagged with →  

发表评论

电子邮件地址不会被公开。 必填项已用*标注