1、对网站的文件和资源进行优化

假若你有5个不同的 CSS 文件, 加载进页面的最好方式是?

  • 文件合并

    • 减少调用其他页面、文件的数量。一般我们为了让页面生动活泼会大量使用background来加载背景图,而每个 background的图像都会产生1次HTTP请求,要改善这个状况,可以采用css的1个有用的background-position属 性来加载背景图,我们将需要频繁加载的多个图片合成为1个单独的图片,需要加载时可以采用:background:url(....) no-repeat x-offset y-offset;的形式加载即可将这部分图片加载的HTTP请求缩减为1个。

    • 每个http请求都会产生一次从你的浏览器到服务器端网络往返过程,并且导致推迟到达服务器端和返回浏览器端的时间,我们称之为延迟。

  • 文件最小化/文件压缩

    • 即将需要传输的内容压缩后传输到客户端再解压,这样在网络上传输的 数据量就会大幅减小。通常在服务器上的Apache、Nginx可以直接开启这个设置,也可以从代码角度直接设置传输文件头,增加gzip的设置,也可以 从 负载均衡设备直接设置。不过需要留意的是,这个设置会略微增加服务器的负担。建议服务器性能不是很好的网站,要慎重考虑。

    • js和css文件在百度上搜一个压缩网站就能压缩,但是在实际开发的项目中,使用gulp、webpack等工具可以打包出合并压缩后的文件,小图片可以在打包时转换成base64方式引入,大图片可以被压缩,html文件也是可以被压缩的

  • 使用 CDN 托管

    • CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

  • 缓存的使用

    • Ajax调用都采用缓存调用方式,一般采用附加特征参数方式实现,注意其中的<script src=”xxx.js?{VERHASH}”,{VERHASH}就是特征参数,这个参数不变化就使用缓存文件,如果发生变化则重新下载新文件或更新信息。

  • css文件放置在head,js放置在文档尾

  • 在服务器端配置control-cache last-modify-date

  • 在服务器配置Entity-Tag if-none-match

  • 用更少的时间下载更多的文件,提高网站加载速度,提高用户体验,可以使用以下方法:

    • 1.css sprites----将小图片合并为一张大图片,使用background-position等css属性取得图片位置

    • 2.将资源放在多个域名下-----打开控制台,可以看到很多网站都是这么做的~

    • 3.图片延迟加载-----很多电商网站、新闻网站,尤其是用到瀑布流展示图片的时候,很多都这么做了,这个技术已经很普遍~

  • 书写代码的时候要注意优化:

    • 1.css

      • 将可以合并的样式合并起来,比如margin-top、margin-bottom等。

      • 给img图片设置宽高,因为浏览器渲染元素的时候没有找到这两个参数,需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容。从而加载时间快了,浏览体验也更好了。

    • 2.js

      • 少改变DOM元素,少触发reflow,可以复用的代码提出来写成公共的等等……

    • 3.img

      • 优化图片,不失真的情况下尽量减少图片大小,使用iconfont等

2、前端开发优化

  • 前端开发的优化问题:

    • (1) 减少http请求次数:css spirit,data uri

    • (2) JS,CSS源码压缩

    • (3) 前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数

    • (4) 用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能

    • (5) 用setTimeout来避免页面失去响应

    • (6) 用hash-table来优化查找

    • (7) 当需要设置的样式很多时设置className而不是直接操作style

    • (8) 少用全局变量

    • (9) 缓存DOM节点查找的结果

    • (10) 避免使用CSS Expression

    • (11) 图片预载

    • (12) 避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢

  • 如何控制网页在网络传输过程中的数据量

    • (1)启用GZIP压缩

    • (2)保持良好的编程习惯,避免重复的CSS,JavaScript代码,多余的HTML标签和属性

转载于:https://www.cnblogs.com/haohao-a/p/10946293.html

对网站的文件和资源进行优化、前端开发优化相关推荐

  1. 前端服务器获取js文件偶尔慢_我所认识的前端性能优化

    现象: 用户体验差 网页太卡打不开(卡.慢) 服务器带宽流量(成本) 服务器压力 从哪处理:各处的缓存 地址缓存 减少DNS的解析请求.预解析DNS(不是"解析DNS") TCP缓 ...

  2. dll文件懒加载_前端性能优化

    # 前端性能优化 写在最前面:下面都是我对webpack的一些性能优化,想系统的学习性能优化方面的知识 推荐大家看看这本书 很系统 感觉面试也能如鱼得水 ## 构建优化 ### webpack优化 ( ...

  3. 高品质互动在线课堂:前端开发优化实践

    互联网教育行业风起云涌,而高品质在线授课平台是每个互联网教育公司的核心和基石.本文是tutorabc前端负责人和君在LiveVideoStackCon 2017上的分享整理,主要介绍了在线授课系统Tu ...

  4. 前端优化-前端性能优化

    最近前端群里的小伙伴问我,老板喊我做前端优化我该怎么去优化呢?.我思考了了一下,提出了以下几点建议- 文章目录 一.思考 二.可读性优化(不细讲) 1.模块化 2.组件化 3.文件规范 4.commi ...

  5. 中引入文件报错_关于前端开发中的模块化

    前端开发离不开模块化,与模块化有关的关键字有以下几个: require/module.exports export/import define/require/exprots define/seajs ...

  6. 资源|最新WEB前端开发全套视频教程

    特别说明:资料来源于网络,版权归原作者所有,仅限用于学习交流之用,请勿做它用.如有不妥请联系小睿删除! 引言 最近很多同学在群里问小睿有么有前端的课程呢?答案是必须的!以下资料是我昨晚冒死在网上冲浪, ...

  7. SEO优化(如何对网站的文件和资源进行优化)?

    1.文件合并,减少http请求 2.文件压缩,减小文件下载的体积 3.精简和优化css和js 4.优化网站图片,使用css sprite精灵图和icon图标 5.使用CDN托管资源,将用户的请求就近分 ...

  8. html5css3js文件作业,HTML5 CSS3 JavaScriptWeb前端开发自测试卷2.docx

    自测试卷2 一.选择题 1.使用标签在网页中成功地添加一张图片,必不可少的属性是( ). A.alt B.title C.src D.width 2.使用CSS设置鼠标放置在链接上时的样式应使用以下哪 ...

  9. 前端性能优化:3.图像资源优化

    一条高效传递信息的原则:字不如表,表不如图. 图像资源优化的根本思想:压缩.无论选取何种图像的文件格式,还是针对同一种格式压缩至更小的尺寸,其本质都是用更小的资源开销来完成图像的传输和展示. 3.1 ...

  10. 前端开发应知网站(转载)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_43606158/arti ...

最新文章

  1. java ognl 性能_OGNL详解
  2. 2017上半年软考 第七章 重要知识点
  3. air java_Air 调用本地化java程序
  4. python数据结构是建好的吗_Python数据结构创建的具体应用方案详细描述
  5. 身份验证和授权作为开源解决方案服务
  6. 系统错误_Win10系统提示0x80004005错误的解决方法
  7. 设计模式---状态模式
  8. 湖南工程学院毕业论文计算机,bbs毕业设计
  9. 初入NLP领域的一些小建议
  10. http 301、304状态码
  11. oracle表的incremental,ODI IKM Oracle Incremental Update的四种探测处理策略
  12. 淘宝分布式配置管理服务Diamond
  13. 苹果电脑桌面文件不见了怎么恢复
  14. C++第14周项目1 - 动物怎么叫
  15. Java 标准 I/O 流编程一览笔录( 下 )
  16. 太阳光轨迹软件_教你记录太阳的轨迹
  17. MySQL 8.0 物理备份xtrabackup简介
  18. brpc学习:bvar
  19. 测试黑色背景黑色字体
  20. mytrader-开源股票期货金融软件+支持C/C++/Python/Excel/VBA/麦语言的量化分析交易平台

热门文章

  1. Nginx 为什么快到停不下来?
  2. 联合 5 位大佬送 210 本实体书,包邮到家!
  3. 苹果逼停微信赞赏功能,最大赢家是...
  4. 阿里45K高级Java岗,必备技能清单
  5. Python_Bool
  6. centos操作---搭建环境 安装python
  7. 在lamp上简单部署应用程序
  8. UVALive - 7267 Mysterious Antiques in Sackler Museum
  9. CodeForces 682E Alyona and Triangles (计算几何)
  10. 针对大的sql文件删除行操作