减少HTTP请求的次数或者减少请求数据的大小

页面中每发一次HTTP请求,都需要完成请求+响应这个完整的HTTP事务,会消耗一些时间,也有可能导致HTTP链接通道的堵塞,为了提高页面的加载速度和运行的性能,我们应该减少HTTP的请求次数和减少请求内容大小(请求的内容越大,消耗的时间越长)

1,采用CSS雪碧图(css Sprit/css图片精灵)技术,把一些小图合并在一张大图上,使用的时候通过背景图片定位,定位到具体的某一张小图上 css

.pubBg{ background:url('../img/sprit.png') no-repeat; background-size:x y;//和原图的大小保持一致 } .box{

background-position: x y;//通过背景定位到具体的位置,展示不同的图片即可
复制代码

}

2,真实项目中,我们最好把css或者js文件进行合并压缩,尤其是再移动端开发的时候,如果css或者js内容不是很多,我们可以采取内嵌式,以此减少HTTP请求的次数,加快页面加载速度; 1,css合并成一个,js也最好合并成一个 2,首先通过一些工具(例如webpack)把合并后的css或者JS压缩成xxx.min.js,减少文件的大小 3,服务器端开启资源文件的GZIP压缩 通过一些自动化工具完成css以及js的合并压缩,或者再完成less转css,ES6转ES5等操作,我们把这种自动化构建的模式,称之为前端“工程化”开发

3,采用图片懒加载技术,在页面开始加载的时候,不请求真实的图片地址,而是用默认图占位,当页面加载完成后,再根据相关的条件 依次加载真实图片(减少页面首次加载HTTP请求的次数) ps: 真实项目中,我们开始图片都不加载,页面首次加载完成,先把第一屏幕中可以看见的图片进行加载,随着页面滚动,再把下面区域中能够呈现出来的图片进行加载 根据图片的懒加载技术,我们还可以扩充出,数据的懒加载 1,开始加载页面的时候,我们只把首屏或者前两屏的数据从服务器端进行请求(有些网站首屏数据是后台渲染好的,整体返回给客户端呈现 2,当页面下拉,滚动到哪个区域,再把这个区域需要的数据进行请求(请求回来做数据绑定以及图片延迟加载等) 3,分页展示技术采用的也是数据的懒加载思想实现的;如果我们请求获取的数据是很多的数据,我们最好分批请求,开始只请求第一页的数据,当用户点击第二页(微博是下拉到一定距离后,再请求第二页数据)的时候再请求第二项数据。

4,对于不经常更新的数据,最好采用浏览器的304缓存做处理(主要是服务器进行处理的)

**ps:**例如:第一次请求css和js下来,浏览器会把请求的内容缓存起来,如果做了304处理,用户再次请求css和js直接从缓存中读取,不需要再去服务器获取了(减少了HTTP请求次数)当用户强制刷新页面(ctrl+F5)或者当前缓存的css或js放生了变动,都会从新服务器端拉取对于客户端来讲,我们还可以基于localStorage来做一些本地处理,例如:第一次请求的数据或者不经常更新的css和js,我们都可以把内容存储在本地,下一次页面加载,我们从本地存储即可,我们设定一定的期限或者一些标识,可以控制在某一个阶段重新重服务器获取
复制代码

5,使用字体图标代替一些页面中的位图,这样不仅做适配的时候方便,而且更加轻量级,而且减少了HTTP请求的次数(类似于雪碧图)

6,如果当前页面中出现了Audio或者video标签,我们做好设置他们的preload=none:页面加载的时候,音频视频资源不进行加载,播放时再加载(减少页面首次加载HTTP请求的次数)、 ps: preload=auto:页面首次加载的时候就把音视频资源加载了 preload=metadata:页面首次加载的时候只把音视频资源的头部信息进行加载

7,在客户端和服务器端进行数据通信的时候,我们尽量采用JSON格式进行数据传输 [优势] 1,JSON格式的数据,能够清晰明了的展示出数据结构,而且也方便我们获取和操作 2,相对于很早以前的XML格式的传输,JSON格式的数据更加轻量级 3,客户端和服务器端都支持JSON 格式数据的处理,处理起来非常的方便

ps:真实的项目中,并不是所有的数据都基于JSON,我们尽可能这样做,但对于某些特殊需求(例如:文件流的传输或者文档传输),使用JSON就不合适了
复制代码

8,采用CDN加速 ps: 1,CDN:分布式(地域分布式)

关于编写代码的时候的一些优化技巧

>除了减少HTTP请求次数和大小可以优化性能,我们在编写代码的时候,也可以进行一些优化,让页面的性能有所提升(有些不好的代码编写习惯,会导致页面性能消耗太大,例如:内存泄漏)
1,在编写js代码的时候尽量减少对dom的操作(vue和react框架在这方面处理的非常不错)ps:在js中操作DOM是一个非常消耗性能的事情,但是我们又不可避免的操作DOM,我们只能尽量减少对于他的操作【操作dom的弊端】1,DOM存在映射机制(js中的dom元素对象和页面中的dom结构是存在映射机制的,一改都改),这种映射机制是浏览器按照W3C标准完成对js语言的构建和dom的构建(其实就是构建了一个监听机制)操作dom是同时要修改两个地方,相对于一些其他的js编程来说是消耗性能的2,页面中的DOM结构改变或者样式改变,会触发浏览器的回流(浏览器会把DOM结构重新进行计算,这个操作很耗性能)和重绘(把一个元素的样式重新渲染)2,编写代码的时候更多的使用异步编程ps:同步编程会导致:上面东西完不成,下面任务也做不了,我们开发的时候。可以把某一个区域模块化都设置异步编程,这样只要模块之间没有不然的先后顺序,都可以进行独立加载,不会受到上面模块的堵塞影响尤其是ajax数据请求,我们一般都要使用异步编程,最好基于promise设计模式进行管理(项目中经常使用fetch、vue axios等插件来进行AJAX请求处理,原因这些插件中就是基于promise设计模式对ajax进行的封装处理)3,在真实项目当中我们尽可能避免一次性循环过多数据(因为循环操作是同步编程),尤其是要避免while导致的死循环操作4,css选择器优化ps:1,尽量减少标签选择器的使用2,尽可能少使用id选择器,多使用样式类选择器(通用性强)3,减少选择器前面的前缀 ,例如:.header .nav .left a {} (选择器是从左导到右的)
5,避免使用css表达式ps:.box{background-color:expression((new Date()).getHours()%2?'red':'blue')}
6,减少页面中冗余代码,尽可能提高方法的重复使用率:‘低耦合高内聚’
7,css放在head中,js放在body尾部,让页面加载的时候,先加在css再加载js(先呈现页面,再给用户提供操作)
8,js中避免使用evalps:性能消耗大  代码压缩后,容易出现代码执行错乱问题
9,js中尽量减少闭包的使用ps:1,闭包会形成一个不销毁的栈内存,过多的栈内存积累会影响页面的性能2,还容易导致内存的泄漏
10,在做DOM时间绑定的时候,尽量避免一个个的时间绑定,而是采用性能更高的时间委托来实现ps:1,时间委托(事件代理)2,把事件绑定给外层容器,当里面的后代元素相关行为被触发,外层容器绑定的方法也会被触发执行(冒泡传播机制导致),通过事件源是谁,我们做不同的操作即可11,尽量使用css3动画代替js动画,因为CSS3的动画或者变形都开启了硬件加速,性能比js动画好
12,编写js代码的时候尽可能使用设计模式来构建体系,方便后期的维护,也提高了扩充性能
13,css中减少对滤镜的使用,页面中也减少对于flash的使用
复制代码

关于页面德芙SEO优化技巧

1,页面中杜绝出现死链接(404页面),而且对于用户输入一个错误页面,我们要引导到404提示页面中(服务器处理的)
2,避免浏览器中异常错误的抛出ps:1,尽可能避免代码的出错2,使用TRY CATCH做异常信息的捕获
3,增加页面
复制代码

web前端开发常用的优化技巧汇总相关推荐

  1. Web前端开发常用的十款开发工具汇总

    今天小编要跟大家分享关于Web前端开发常用的十款开发工具汇总 1.Glitch https://glitch.com 好的,这不仅仅是一个工具,还是一个非常棒的编码平台以及一个很棒的技术社区.我可以在 ...

  2. Web前端开发常用的开发工具

    Web的发展日新月异,这也使得Web开发者不得不加快脚步,学习新的技术和编程语言.尤其是对于那些大量流量入口的网站来说,跟上技术发展趋势更是尤为重要.为了使得Web开发人员能够更加专注于业务层面的开发 ...

  3. web前端开发常用浏览器介绍及运行配置

    1.web前端开发常用浏览器介绍 浏览器是用来检索展示以及传递web信息的应用程序,市面上比较常见的浏览器有IE浏览器.火狐浏览器.谷歌浏览器.Safari浏览器和欧朋浏览器等,其中IE.火狐和谷歌是 ...

  4. web前端开发常用的10个高端CSS UI开源框架

    随着人们对体验的极致追求,web页面设计也面临着新的挑战,不仅需要更人性化的设计理念,还需要设计出更酷炫的页面.作为web前端开发人员,运用开源资源,更快更好地实现一些现代化的界面,是必备技能之一.下 ...

  5. 分享Web前端开发常用的6种编程语言及其优势!

    Web前端是互联网时代软件产品研发中不可缺少的一种专业研发角色.从狭义上讲,Web前端工程师使用HTML.CSS.Java等专业技能和工具将产品UI设计稿实现成网站产品,涵盖用户PC端.移动端网页,处 ...

  6. Web前端开发常用必备工具(一)

    一个称手的工具可谓是事半功倍,对程序员来说,更是离不开各种各样的实用小工具,你现在的工具用的还称手吗?你还在为没有好用的工具而发愁吗? 蓉妹儿在这里给你分享一些Web前端开发的常用必备工具,还没安装的 ...

  7. html5默认加载s文件夹,『总结』web前端开发常用代码整理

    IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法. 条件注释只能用于IE5以上,IE1 ...

  8. 移动webAPP前端开发代码演示和技巧汇总

    1. viewport:webapp视图 也就是可视区域.对于桌面浏览器,我们都很清楚viewport是什么,就是除去了所有工具栏.状态栏.滚动条等等之后用于看网页的区域, 这是真正有效的区域.由于移 ...

  9. Web前端开发常用英文

    (一)网页内容类 标题: title 摘要: summary 箭头: arrow 商标: label 网站标志: logo 转角/圆角: corner 横幅广告: banner 子菜单: subMen ...

最新文章

  1. python脚本自动消除安卓版_Android:检测内存泄漏的自动化测试Python脚本
  2. 用python画花瓣-Python竟能画这么漂亮的花,帅呆了(代码分享)
  3. Aop获取bean的过程---spring debug
  4. Django 模型 —— 字段类型
  5. DAY77-Django框架(八)
  6. 软件工程复习提纲——第八章
  7. oracle mysql 线程数_oracle线程数更改
  8. aws rds监控慢sql_使用AWS Lambda函数自动启动/停止AWS RDS SQL Server
  9. DialogFragment初探路
  10. 简单的页面表格导出Excel
  11. 我的世界Java版最诡异的种子_我的世界:MC出现诡异的种子,地域不停地重复
  12. rslinx连接linux教程,RSLinx Classic软件通讯配置教程
  13. Linux下常用的优秀软件
  14. 初探微信小程序渗透测试
  15. Python学习笔记—— 面向对象1. 面向对象基础
  16. Xorg屏幕旋转实现方式
  17. Java小游戏--舒尔特方格
  18. filebeat收集日志到elsticsearch中并使用ingest node的pipeline处理
  19. 二维空间内,如何判断两条线段是否相交,相离,平行,重合,并求交点
  20. matlab mosa算法,尔雅尔雅2020年科学计算与MATLAB语言答案大全

热门文章

  1. L101 L201 ME35 ME350 SX235W EP-801A ME535 清零软件
  2. 十几款应用广泛的第三方URL解析库被曝8个漏洞
  3. 美国全国步枪协会遭 Grief 勒索软件攻击
  4. 谷歌和 Zyxel 各修复一个已遭利用的 0day
  5. 倾斜摄影测量无人机炸机的八大原因及“炸机”预防措施
  6. uva-993-贪心
  7. 使用Tslib在触摸屏上显示汉字【转】
  8. 虚拟机危险!一个存在11年的缓冲区溢出漏洞--毒液
  9. Windows Server 2016存储空间直连技术的探秘
  10. TurboMail邮件系统: IP进黑名单,仍可收发邮件