那如何才能优化前端性能?归纳为三步
一、关键资源字节数
字节数也就是通常说的减少资源文件(js、css、image、video…)的大小。
1、压缩
前端使用uglify混淆压缩
后端开启gzip
对图片进行压缩,使用压缩比例更高的格式(WebP)
2、缓存
强缓存(http状态码:200),不用请求服务器直接使用本地缓存,协商缓存(http状态码:304),使用时先请求服务器若被告知缓存没过期则使用本地缓存,不用下载资源,使用localstorage对数据进行存储。
3、针对首屏优化
对非关键资源延迟加载、异步加载,减少首屏资源大小
二、关键资源连接数
1、合并请求
使用http2.0的多路复用合并请求配置combo,在无法使用http2.0的情况下作为一种合并资源请求的手段。
2、减少图片请求数
使用spite图,使用svg-symbol。
3、针对一些场景采用css、js内联的方式。
4、使用强缓存减少了一次服务器请求。
5、非关键资源延迟、异步加载,减少了首屏资源连接数。
三、关键渲染路径
1、bigpipe分块输出
这里主要是因为要完成一整个页面的输出后端需要处理很多个任务,大家可以将这些多个任务进行分块,谁先完成谁就先输出,最终通过JS回填的方式输出DOM节点,这种方式主要解决了直出页面阻塞的问题。
2、bigrender分块渲染
常规的手段就是采用前端模板渲染页面,针对首屏时间主要减少了首次构建DOM树时的节点数
3、针对reflow,repaint,composit路径处理。
4、涉及到动画时关于layer的概念render layer、graphics layer。
5、css放在头部、js放底部避免阻塞DOM树的构建,关于css、js的位置对于页面渲染的影响大家可以关注下相关的文章。核心:css资源不会阻塞DOM树的构建但会阻塞DOM的渲染,JS会阻塞DOM树的构建,CSS会阻塞JS的执行。
以上就是针对Web前端性能优化归纳出的解决方案。更多Web前端学习资料,关注“武汉千锋”微信公众号领取。
@ js这些目录的命名用关键词全拼对排名有多大影响?
1.JS对于权重一般的网站来说影响是很大的。
2.因为JS对搜索引擎是不友好的,搜索引擎的蜘蛛是抓取不到JS里面的内容,除了JS,flash也是同样的。
3.建议JS生成的效果用div+css完全可以取代JS,如果非用不可,就将JS代码写在另一个文件中来调用。
4.交换友情链接的时候要小心,如果对方在你的友情链接html标签中加了no follow标签,那么他网站上的权重是传不过来的。
使用div+css设计网站对seo影响是非常大的,所以要引起足够的重视,由于结构简单,符合标准,所以深受搜索引擎的喜欢,要合理的利用div+css正确的布局网站,来达到自己网站长期更好的发展。
div+css对seo影响在哪里:
1、 代码精简:
利用div+css代码比较规范整齐,好处有两点:一、是提高了spider爬行速度,能在较短的时间内完成整个页面,对收录质量比较有好处;二是能高效爬行的页面,就会受到spider的喜欢,这样低收录数量很有效。
2、 表格的镶嵌问题:
目前来说大部分的网站都用table来布局,遇到多层表格镶嵌时候,会跳过镶嵌的内容或者直接放弃整个页面。
网站中过多的相似页面会直接影响到排名和域名信任度。
而div+css是通过代码来控制,就不会出现这样的问题,对seo好处多多,要从根本上认识到这个。
3、 速度问题:
Div+css相对于表格table来说少了很多垃圾代码,加载速度提高对spider爬行是比较有利的,过多的代码会让页面无法访问,影响收录和权重,真正的网站不只是为了追求收录,排名,快速的响应速度也是提高用户体验的基础,如果网站都难以打开,更不要提排名等问题了。
4、 修改设计时更有效率
Div+css只需要修改响应的定义和id,更方便快捷而且不会破坏页面的布局形式。省时省力。
5、 保持视觉的一致性
以往的表格布局总是造成在不同的浏览器或者页面造成显示效果有偏差或者错位,而css+div则统一使用css文件控制,就避免了这种情况的出现。
6、 对排名的影响
Div+css布局,一般在设计完后会尽可能完善到能通过w3c验证,与普通表格布局比,使用xtml架构的网站排名状况一般都是要好很多的。
@ css复合选择器有哪三种?
1、元素选择器 标签名{ }
2、id选择器 #id属性值{ }
3、类选择器 .class属性值{ }
4、选择器分组(并集选择器)
作用:通过它可以同时选中多个选择器对应的元素(通常用于集体声明)
语法:选择器1,选择器2,选择器n{ }
5、复合选择器(交集选择器)
作用:选择更准确更精细的目标元素并为其设置属性
语法:选择器1选择器2选择器n{ }
!注意选择器之间不能有空格,要紧挨在一起
6、通配选择器
作用:用来选中页面中所有的元素
语法:*{ }
7、后代元素选择器
作用:选中指定元素的指定后代元素
语法:祖先元素 后代元素{ }
8、子元素选择器
作用:选中指定父元素的子元素
语法:父元素>子元素
9、伪类选择器
伪类表示元素的一种特殊状态
:hover 移入时元素的状态
:visited 已被访问过后的元素的状态
:active 被点击时元素的状态
10、 属性选择器
作用:根据元素中的属性或属性值来选取指定元素
语法:[属性名]选取含有指定属性的元素
? [属性名=“属性值”]选取含指定属性值的元素
? [属性名^="属性值"] 选取属性值以指定内容开头的元素
? [属性名$="属性值"] 选取属性值以指定内容结尾的元素
? [属性名*="属性值"] 选取属性值包含指定内容的元素
11、兄弟元素选择器
+选择器
作用:选中一个元素后紧挨着的指定的兄弟元素
语法:前一个+后一个(作用在后一个)
~选择器
作用:选中后边所有的制定兄弟元素
语法:前一个~后边所有
@ css类选择器用什么做前缀表示?
>10CSS类选择器也就是选择html编码中标明为特定Class(类)的元素.如<p Class="mytest">这是偶要编辑的段落</p>,在CSS文件中可用 .mytest{ }来表达想要显示的样式。简单地说,CSS类选择器用" . "做前缀。