来的时间不算短,但是发的帖少。一般都是默默的在学习,最近遇到了一些疑惑,希望高手帮忙指导下。最近在开发公司一个国外铁路相关的项目,项目数据量很大,对于页面的效率有较高的要求,我参考了一些国内的交通网站。
如百度地图:http://map.baidu.com/,丁丁地图:http://www.ddmap.com,还在算法区意外发现了一个新出来的轨交查询站http://www.xinlukou.com我一般用ff的yslow插件来看分析结果,一般在分析页面效率的时候,request的数目和需要响应的资源size是考虑得最多的两个问题。
对于上面几个网站,经过比较后:
百度的规范性很好,页面都是做过缩减的,多余的空格,换行,注释都已经去掉。包括HTML,css和js。页面的基本功能都有,Make fewer HTTP requests检测项仍然可以做到D,这个要赞一下。
丁丁的则显得有些杂乱,有些做了缩减,有的没做,而且很乱,我觉得这个太马虎了。yslow的解析结果一堆的F,效率也是不敢恭维。这也和它的页面太复杂,广告太多有一定关系。
xinlukou那个还不错,基本都做了缩减,很多还做了压缩,很多js都合并在了一起,但是排列比较杂乱,yslow分析效率一般,F也不少。估计是刚出来好多没整理,速度倒还可以。通过几个的对比,很明显,对页面和js的缩减整理是必须做的,能有效的提高效率。但是处理的原则和技巧感觉却很难面面兼顾:
1。 js尽量合并是应该的。有些网站只把公用的部分合并,而各页面不同的部分单独出来;有的则对每个页面做一个唯一的js;
     前者方便维护,后者效率更高
2。将js和css合并在一个文件,以减少request
     同1
3。对js做缩减和压缩
    例如百度的js都只是做了去空格换行,并没有做混淆;而后面的那个xinlukou,大部分js都做了混淆。google的一些页面也是做了混淆的。我的经验,混淆过的js的size的确会再小一些,但是由于做了eval操作,或许对效率会带来一定影响。这样做的话,一般都是一种方便维护而另一种效率更高。有没有更好的,能兼有二者优点的方式呢?欢迎大家谈谈自己的看法和实际操作中的一些观点。还有个问题,地理类网站一般来说不可避免会引入一些地图相关的JavaScript,google也好,图吧也好。这些外部引入的JavaScript和css,有没有办法做到合并和缩减size呢?如果是下载下来自己做处理,很容易出错,而且可能会让一些新的变化无法及时的反映过来。请高手不吝赐教~

解决方案 »

  1.   

    个人觉得如果是生成静态页,html是需要压缩的,动态页就不用了,性能不一定会提高
    2.js和css使用yui compressor,跟google等工具压缩的比例很接近,而不用eval,
    3.js如果文件太多的话,需求考虑合并,可以弄一个合并js的页面,这样让那个页面去请求外部的js,然后合并,并设置适合的缓存时间比如一个星期。
      

  2.   

    谢谢答复。对我很有参考价值~不过你说的这些也曾经有过一定的考虑。一般来说,各个项目有自己的实际情况,具体采取哪些策略是要根据实际来的,有些方法理论上效果很好,但是应用到实际的项目中,效果却不明显;所以我想多听听大家的意见,然后权衡利弊再做采用。另外,上面还说少了一个,在服务器端,用gzip也是可以有效减小传输数据size的。再次谢谢您的答复~~