您在什么时候执行前端优化?

时间:2009-02-19 21:48:17

标签: javascript css performance optimization caching

我说的是页面/样式表缓存,缩小javascript等等。

我有一半的人认为在开发过程中尽早做这些事情会更好,所以我可以有意识地意识到更加真实的速度和响应问题,以及与更接近生产部署的东西进行交互但是我的大脑的另一半认为在发布之前不做任何事情更有意义,所以我一直在处理在开发过程中未经过优化的原始数据。

这个问题是否有共同或传统的智慧?

8 个答案:

答案 0 :(得分:6)

我最后做了所有优化。这样我知道什么时候不起作用是因为代码错了。我曾经尝试过早地优化事情,并意识到我浪费了一个小时,因为我正在缓存一些东西等。

答案 1 :(得分:3)

意识到用户花费大部分时间等待前端对象加载(下载)。您的应用程序可能会在0.1秒内生成html,但用户花费至少2秒等待所有图像等加载。将这些下载时间减少到一定数量将有助于提升用户体验。

通过启用GZIP并使用缩小的javascript库,已经可以完成很多工作。您应下载并安装YSlow,并使用适当的缓存标头配置您的Web服务器。仅此一项就可以节省数百毫秒的加载时间。

最后一步是使用CSS sprites优化图像数量。其他步骤可以包括最小化css和javascript,但这将获得我已经提到的所有方法中的最少。

总而言之,大部分可以通过正确配置您的网络服务器来完成,但精灵应该在开发过程中完成。

答案 2 :(得分:1)

我喜欢首先构建网站,然后使用像YSlow这样的用户体验分析器在最后进行优化。

http://developer.yahoo.com/yslow/

我应该补充说,某种形式的分析器是必不可少的。否则,您在没有数据之前/之后进行优化,这不是完全科学的(更不用说您将无法量化您所做的改进)。

答案 3 :(得分:1)

过早优化是所有邪恶的根源:)

特别是在开发早期,尤其是当优化会干扰您调试代码或理解程序流程的能力时。

也就是说,至少在设计阶段计划某些优化是很重要的,这样你就不会将自己编码到那些优化不再容易实现的角落(某些类型的内部缓存就是一个很好的例子)

答案 4 :(得分:0)

我同意你的前提,即你应该在早期阶段做尽可能多的优化。它不仅可以缩短开发时间(想想:当你发送垃圾邮件时,每次刷新节省1/2秒就加起来+ r!)但是它会让你的焦点在最后 - 在你重构实际的时候你已经实现的代码 - 重要的东西。缩小您不会立即修改的所有内容。

答案 5 :(得分:0)

我同意你大脑的另一半说'做你必须做的事,然后做得更快'。但是对于你所做的任何事情,你必须知道并牢记如何更快地完成它。

我用这种方法看到的主要问题是,最后它更容易忽略你必须优化的事实,特别是如果一切看起来都“足够好”的话。另一个问题是,如果你没有优化问题的经验,你可能确实“在一个角落里编写自己的代码”,这就是事情变得非常丑陋的地方。

答案 6 :(得分:0)

我认为这可能是很难得到明确答案的,因为不同的项目会有不同的要求,这取决于他们在客户端做了多少工作。

我的经验法则可能是晚些时候而不是更早。只是因为许多典型的前端优化技术(至少我所知道的东西)往往相当容易实现。我正在考虑空白剥离和更改http标头等等。因此,我倾向于专注于直接解决项目正在处理的问题的工作;一旦以有效的方式解决这个问题,就可以转向优化前端响应时间等问题。

答案 7 :(得分:0)

经过多年的编码,您可以非常清楚地知道性能瓶颈是什么。

数据库查询 JS / Jquery函数 CFC的 图片 Javascript角

通过提前识别瓶颈,在创建/修改处理这些瓶颈的每个应用程序时,您可以花时间调整,知道在编码时花费时间,最终会为您提供更好的性能。 / p>

通过始终创造最佳代码,并学习现实生活中的内容,也会让我们变得不那么懒惰。