zoukankan      html  css  js  c++  java
  • 页面优化

    1. 为什么要进行页面优化?
      • 三个原因:
        1. 对于用户而言,进行页面优化可以提升网页响应速度,改善用户体验
        2. 对于浏览器而言,对搜索引擎友好(SEO)
        3. 对于开发人员而言,进行页面优化可以提高代码的可读性、可维护性
    2. 页面优化包括哪些方面?
      1. 减少页面请求
      2. 减少文件大小  
    3. 如何进行页面优化?
      1. 如何减少页面请求?
        1. 合并图片:使用CSS sprites(CSS 精灵)技术,将多张图片整合到一张图片中,即将多个请求变为一个请求,再利用CSS(的background-image、background-repeat、background-position的组合)进行背景定位:
        2. 合并CSS文件:
          • 多个CSS文件合并为一个
          • 少量CSS样式内联
          • 避免使用import的方式引入CSS文件:每个import语句都会产生一个请求   
      2. 如何减少文件大小?
        1. 减小图片大小
          1. 选择合适的图片格式
            • 如果需要半透明的图片,如一些小图标,那就选择.png图片
            • 如果图片色彩绚丽、尺寸大,就选择.jpg图片(.jpg图片会对图片进行压缩)
          2. 压缩图片:使用图片压缩工具(ImageOption、...)对图片进行无损或有损压缩
        2. 减小CSS文件大小
          1. css值缩写:margin、padding、border、boredr-radius、font、background
          2. 省略值为0的单位
          3. 颜色值最短表示
          4. css选择器合并
          5. 使用工具(cssmin、...)压缩文件    
    4. 如何优化页面性能?
      1. 合理的页面加载顺序
        1. 建议将CSS文件放在<head>中,这样解析html时会先解析CSS,再解析标签时就可以把样式直接应用在标签上,这样用户会看到顺畅的页面。
        2. 建议将js文件放在body的底部,因为js的加载和执行会阻塞其他资源的加载、页面的渲染,而且js的很多处理逻辑也需要等到页面加载完成才去处理。  
      2. 减少标签数量:没用作用的标签不要写,比如不要随意加<div>
      3. 选择器长度要尽量短:选择器很长时一方面会影响到CSS查找元素的性能,另一方面也会使文件变大。
      4. 避免使用耗性能属性:expression、和效果相关的一些属性(border-radius、box-shadow、gradients、filter)。
      5. 给图片设置宽高:一定要设置宽高,而且宽高要正好,否则会引起页面的回流和重绘,重新渲染图片会耗损很多时间。如需要一个400*300的图片,就不要不设置图片宽高,也不要在<img>中设置图片大小为800*600(导致图片缩放),因为浏览器在解析html代码时,有可能在图片下载完成前就会对页面布局进行定位,如果没有给图片设置宽高或者设置的宽高不一样时,那么浏览器在图片下载完成时就需要回流和重绘。
      6. 所有表现用CSS实现,不要使用js(因为js每次都要重绘列表,通过css可以把多次渲染变成一次渲染)  
    5. 如何提高代码的可读性、可维护性?
      1. 制定规范,不同的开发人员按照统一的规范编写代码
      2. 使用语义化的标签,标识、变量的命名做到见名知意
      3. 添加注释
      4. 模块化开发
      5. 尽量避免使用Hack(为了兼容不同浏览器,需要Hack一些代码)。如果有其他方法可以避免Hack,优先选择其他方法;如果没有,或避免的代价比较大(需要写大量html、css),则用Hack。使用Hack时要尽量使用统一的语法,如Hack IE7用*,Hack IE6用_
        • 什么是CSS Hack?   指针对不同的浏览器写不同的CSS  
  • 相关阅读:
    解决:Ubuntu12.04下使用ping命令返回ping:icmp open socket: Operation not permitted的解决
    【Magenta 项目初探】手把手教你用Tensorflow神经网络创造音乐
    python表达式操作符【学习python必知必会】
    关于提高python程序执行效率的思路和想法
    动手前的构思在编写程序中的重要性
    python 之禅
    HTTP 访问学习笔记 留坑
    软件工程与方法学——面向对象程序设计例子
    python 英文字串首字母改为大写
    Objective-C:方法缓存
  • 原文地址:https://www.cnblogs.com/liyan22/p/6432292.html
Copyright © 2011-2022 走看看