zoukankan      html  css  js  c++  java
  • 前端开发页面的性能优化方案总结

    前端优化的根本其实就是减少页面http请求、用最小的开销达到最快的响应速度;当我们持续把web的能力发挥到极致的时候,让网页在最小开销或等待时间下可用依然是同样重要的问题。下面我们就对此做了一些总结说明如何优化网页使用户满意。

    一.  优化CSS 和 Javascript传输,在生产环境传输CSS和Javascript,必须采用很多优化措施:

      1) 对图片进行无损压缩优化;以及针对项目中的css、js也要做相应的压缩处理,CSS 和 JavaScript 都必须以最小化方式加载,尽可能的减少项目的大小

      2) 不要在HTML中写内联脚本 <script> 块。 它们会阻塞页面渲染操作,对页面加载时间带来破坏性的影响

      3) 适当地设置缓存标题;针对静态资源,考虑单独配置一个无cookie的子域

      4) CSS 必须放在文档的 <head> 部分, Javascript 必须正好放在 </body> 标签的前面

      5) CSS 必须串接在一起。显然,只有具备相同媒体类型(例如屏幕或打印)的文件才能合在一起。这里的总体目标是在加载页面的时候减少因为依赖关系而产生的HTTP连接数

      6) JavaScript 必须串接在一起。虽然用一个AJAX脚本依赖性管理器(类似于 YUI 3 Loader)可能会比较理想,但实施起来还是挺复杂的。 在这里我还是想推荐单次下载站点用到的所有脚本

    二.  优化 JavaScript 执行,在页面加载的时候,通常会有很多脚本等待执行,但你可以设定优先级。下面的顺序就是基于用户反馈设定的优先级:

    1. 改变页面视觉习性的脚本绝对要首先执行。这包括任何的字体调整、盒子布局、或IE6 pngfix。
    2. 页面内容初始化
    3. 页面标题、顶部导航和页脚的初始化
    4. 绑定事件处理器
    5. 网页流量分析、Doubleclick,以及其他第三方脚本

    三.  图片借助雪碧图形式显示,CSS 精灵(Sprites) 基本上就是把一批图片资源合并成单个图片文件。然后每个部分用 CSS background-position 来展现。典型的 CSS 看起来是这样的:

    1 a.expandbox { 
    2     display:block; 
    3     width: 75px;
    4     height: 15px; 
    5     text-indent: -999px;
    6     overflow:hidden;
    7     background: url(../img/sprite.png) no-repeat -50px -5px; 
    8  }
    View Code

    使用 sprites 可以减少页面大小,也减少了HTTP连接数,这会加速页面加载,有个注意事项就是别把sprite弄得太大,不管是高还是宽超过1000px都会导致用掉大量内存。

    四.  对于静态内容,浏览器应该把文件在本地缓存,在合理的前提下,保留尽可能长的时间。应该较长远期缓存的内容包括:

    • CSS 和 JavaScript
    • 产品图片
    • 主题图形
    • favicon.ico
    • flash .swf's
    • 优惠信息图片(可能缓存时间会略短)

    为了最佳缓存效果,利用http头部的Expires。下面是一个远期的Expires头,它告诉浏览器这个响应在2015年5月15日之前都无需更新:

    Expires: Thu, 15 Apr 2015 20:00:00 GMT

    如果你的服务器是Apache,可以使用 ExpiresDefault 指令设置相对当前日期的失效日期。下面的例子设置失效日期为请求时间的一年之后:

    ExpiresDefault "access plus 1 year"

    http头部的 Expires 必须设为据现在一个月到一年(远期)之间的值。缓存只适用于那个指定的URL,所以文件名或任何资源的改变都会产生一个新的拷贝。很多开发者使用build过程来给它们的资源增加一个版本号或时间戳。每个随后的build会开始一个全新的缓存版本,让你在使用远期缓存日期时无需担心

                                    ....持续更新....

  • 相关阅读:
    Thread中的join使用
    java.lang.NoClassDefFoundError: Ljavax/enterprise/inject/spi/BeanManager;
    org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xm
    maven 中使用jstl 错误解决
    eclipse 安装maven
    前端 JS事件操作
    前端 JS
    前端 固定位置 与绝对定位
    前端 显示与隐藏
    前端 盒子阴影
  • 原文地址:https://www.cnblogs.com/galary/p/7798962.html
Copyright © 2011-2022 走看看