首页 > 前端开发 > 正文

如何进行前端优化

2023-10-19 21:48:02 | 我爱编程网

很多关注前端开发的朋友很希望了解如何进行前端优化,今天我爱编程网为大家整理了相关文章,一起来看看吧!

本文目录一览:

如何进行前端优化

如何进行前端优化

1.减少 HTTP 请求....

2.使用 HTTP2

3.使用服务端渲染

4.静态资源使用 CDN

5.将 CSS 放在文件头部,JavaScript 文件放 ...

6.使用字体图标 iconfont 代替图片图标

7.善用缓存,不重复加载相同的资源

8.压缩文件

9.图片优化

(1).图片延迟加载

(2). 响应式图片

(3). 调整图片大小

(4). 降低图片质量

(5). 尽可能利用 CSS3 效果代替图片 我爱编程网

(6). 使用 webp 格式的图片

10. 通过 webpack 按需加载代码,提取第三库代码,减少 ES6 转为 ES5 的冗余代码

11. 减少重绘重排

12. 使用事件委托

13. 注意程序的局部性

14. if-else 对比 switch

15. 查找表

16. 避免页面卡顿

17. 使用 requestAnimationFrame 来实现视觉变化

18. 使用 Web Workers

19. 使用位操作

20. 不要覆盖原生方法

21. 降低 CSS 选择器的复杂性

(1). 浏览器读取选择器,遵循的原则是从选择器的右边到左边读取。

(2). CSS 选择器优先级

22. 使用 flexbox 而不是较早的布局模型

23. 使用 transform 和 opacity 属性更改来实现动画

24. 合理使用规则,避免过度优化

性能优化主要分为两类:

    • 加载时优化

    • 运行时优化

如何进行前端优化

CSS“隐藏”元素的几种方法的对比_html/css_WEB-ITnose


一说起CSS隐藏元素,我想大部分小伙伴们都会想到的第一种方法就是设置display为none。这是最为人所熟知也是最常用的方法。我相信还有不少人想到使用设置visibility为hidden来隐藏元素,这种方式也是常用的方法,而且也有很多人知道两者的不同。除了这两种方法,本文还总结了一些比较不常用的方法,比较了这几种“隐藏”元素方法的区别和优缺点,欢迎大家交流!!
几种方法的简单介绍 首先我们分别来说说到底有哪几种隐藏元素的方法,有一些方法是众所周知的,还有一些算是一种技巧。
display:none 设置元素的display为none是最常用的隐藏元素的方法。
.hide { display:none;}

将元素设置为display:none后,元素在页面上将彻底消失,元素本来占有的空间就会被其他元素占有,也就是说它会导致浏览器的重排和重绘。
visibility:hidden 设置元素的visibility为hidden也是一种常用的隐藏元素的方法,和display:none的区别在于,元素在页面消失后,其占据的空间依旧会保留着,所以它只会导致浏览器重绘而不会重排。
.hidden{ visibility:hidden}

visibility:hidden适用于那些元素隐藏后不希望页面布局会发生变化的场景
opacity:0 opacity属性我相信大家都知道表示元素的透明度,而将元素的透明度设置为0后,在我们用户眼中,元素也是隐藏的,这算是一种隐藏元素的方法。
.transparent { opacity:0;}

这种方法和visibility:hidden的一个共同点是元素隐藏后依旧占据着空间,但我们都知道,设置透明度为0后,元素只是隐身了,它依旧存在页面中。
设置height,width等盒模型属性为0 这是我总结的一种比较奇葩的技巧,简单说就是将元素的margin,border,padding,height和width等影响元素盒模型的属性设置成0,如果元素内有子元素或内容,还应该设置其overflow:hidden来隐藏其子元素,这算是一种奇技淫巧。
.hiddenBox { margin:0; border:0; padding:0; height:0; width:0; overflow:hidden;}

这种方式既不实用,也可能存在着着一些问题。但平时我们用到的一些页面效果可能就是采用这种方式来完成的,比如jquery的slideUp动画,它就是设置元素的overflow:hidden后,接着通过定时器,不断地设置元素的height,margin-top,margin-bottom,border-top,border-bottom,padding-top,padding-bottom为0,从而达到slideUp的效果。
元素隐藏后的事件响应 如果被隐藏的元素绑定了一些事件,我们执行了相关操作后,这些事件是否会被响应并执行呢,看看下面的代码:
div { width: 100px; height: 100px; background: red; margin: 15px; padding: 10px; border: 5px solid green; display: inline-block; overflow: hidden; } .none { display: none; } .hidden { visibility: hidden; } .opacity0 { opacity: 0; } .height0 { height: 0; }aa

这段代码将四种隐藏元素的方法分别展示出来,然后绑定其点击事件,经过测试,主要有下面的结论:
1、display:none:元素彻底消失,很显然不会触发其点击事件
2、visibility:hidden:无法触发其点击事件,有一种说法是display:none是元素看不见摸不着,而visibility:hidden是看不见摸得着,这种说法是不准确的,设置元素的visibility后无法触发点击事件,说明这种方法元素也是消失了,只是依然占据着页面空间。
3、opacity:0:可以触发点击事件,原因也很简单,设置元素透明度为0后,元素只是相对于人眼不存在而已,对浏览器来说,它还是存在的,所以可以触发点击事件
4、height:0:将元素的高度设置为0,并且设置overflow:hidden。使用这种方法来隐藏元素,是否可以触发事件要根据具体的情况来分析。如果元素设置了border,padding等属性不为0,很显然,页面上还是能看到这个元素的,触发元素的点击事件完全没有问题。如果全部属性都设置为0,很显然,这个元素相当于消失了,即无法触发点击事件。

但是这些结论真的准确吗?
我们在上面的代码中添加这样一句代码:

$(".none").click();

结果发现,触发了click事件,也就是通过JS可以触发被设置为display:none的元素的事件。所以前面无法触发点击事件的真正原因是鼠标无法真正接触到被设置成隐藏的元素!!!
CSS3 transition对这几种方法的影响 CSS3提供的transition极大地提高了网页动画的编写,但并不是每一种CSS属性都可以通过transition来进行动画的。我们修改代码如下:
div { width: 100px; height: 100px; background: red; margin: 15px; padding: 10px; border: 5px solid green; display: inline-block; overflow: hidden; transition: all linear 2s; } .none { display: none; } .hidden { visibility: hidden; } .opacity0 { opacity: 0; } .height0 { height: 0; }aa

经过测试,可以看到:
1、display:none:完全不受transition属性的影响,元素立即消失
2、visibility:hidden:元素消失的时间跟transition属性设置的时间一样,但是没有动画效果
3、opacity和height等属性能够进行正常的动画效果

假设我们要通过CSS3来做一个淡出的动画效果,应该如下:
.fadeOut { visibility: visible; opacity: 1; transition: all linear 2s; } .fadeOut:hover { visibility: hidden; opacity: 0; }

应该同时设置元素的visibility和opacity属性。
总结说明 本文总结说明了“隐藏”元素的几种方式,其中最常用的还是display:none和visibility:hidden。其他的方式只能算是奇技淫巧,并不推荐使用它们来隐藏元素,它们的真正用途应该不在隐藏元素,而是通过了解这些方法的特点,挖掘出其真正的使用场景。欢迎大家交流!!

如何进行前端优化

android开发中opacity什么意思

opacity是不透明度的意思

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;
public class AlphaTextView extends TextView {
 public AlphaTextView(Context context) {
 super(context);
 }
 public AlphaTextView(Context context, AttributeSet attrs) {
 super(context, attrs);
 }
 public AlphaTextView(Context context, AttributeSet attrs, int defStyle) {
 super(context, attrs, defStyle);
 }
 @Override
 public boolean onSetAlpha(int alpha) {
 setTextColor(getTextColors().withAlpha(alpha));
 setHintTextColor(getHintTextColors().withAlpha(alpha));
 setLinkTextColor(getLinkTextColors().withAlpha(alpha));
 return true;
 }
}

以上就是我爱编程网为大家带来的如何进行前端优化,希望能帮助到大家,更多相关信息,敬请关注我爱编程网!
与“如何进行前端优化”相关推荐
web前端开发href和src 如何对前端性能进行优化
web前端开发href和src 如何对前端性能进行优化

你遇到的前端面试题都有什么?大家好,我是王我。随着春节的结束,各个行业也普遍开始了上班的节奏,不过本人17号才上班。为什么?因为长得帅的都上班比较晚。当然,每到新年结束,又迎来了一批招聘者与面试者,我来说说作为一年工作经验应该知道的面试题。HTML篇1.doctype是什么?有哪些类型?2.input有哪些新类型?简要说明其8用法。3.HTML5有哪些新特性,

2023-09-30 05:24:26
php如何优化框架 如何对低硬件配置的中小型php网站进行性能优化?
php如何优化框架 如何对低硬件配置的中小型php网站进行性能优化?

如何写一个PHP框架呢?思路是什么,需要注意些什么?第一步实现自动加载第二步实现依赖注入容器第三步实现路由第四步实现控制器第五步实现模型第六步实现最基本的一些辅助操作类1.Db类,数据库操作少不了2.数据操作类,接收过滤getpostputdelete等数据3.配置文件操作类,任何一个框架都少不了,是吧。4.模板引擎,如果是前后端分离的

2023-09-11 15:20:07
web前端开发如何让文字排好 在网页设计中如何对文字进行排版的优化
web前端开发如何让文字排好 在网页设计中如何对文字进行排版的优化

前端字体布局中怎么让字体右边对齐html中让文字竖排的方法:一,原始使用writing-mode属性。1,语法:writing-mode:lr-tb或writing-mode:tb-rl。2,参数:(1)lr-tb:从左向右,从上往下(2)tb-rl:从上往下,从右向左运行代码发现,IE显示正常,火狐、谷歌浏览器却不支持,所以不建议使用writing-m

2023-10-17 00:23:17
优化php框架启动速度 如何对低硬件配置的中小型php网站进行性能优化?
优化php框架启动速度 如何对低硬件配置的中小型php网站进行性能优化?

如何对低硬件配置的中小型php网站进行性能优化?效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。建立独立的图片服务器(解决吃IO的损耗,针对图片服务器的运行速度的优化)如果你的程序支持PHP7,强烈建议你使用PHP7,PHP7相对PHP5.X有大大的性能提升,在很多算法上会比后者快两三倍

2023-09-17 20:57:19
web前端开发如何优化 在前端开发中如何做好seo优化
web前端开发如何优化 在前端开发中如何做好seo优化

前端开发人员需要具备哪些SEO优化技巧前端开发人员需要具备哪些SEO优化技巧前端开发工程师不仅需要要跟视觉设计师、交互式设计师配合,完美还原设计图稿,编写兼容各大浏览器、加载速度快、用户体验好的页面。现在还需要跟SEO人员配合,调整页面的代码结构和标签。一些成熟的平台,在开发初期并没有考虑优化问题,所以做出来的页面,就算是效果很炫,功能很强,但是对搜索引擎非常的不友善。任何一个成熟的

2023-09-13 11:17:02
web前端开发怎么优化 在前端开发中如何做好seo优化
web前端开发怎么优化 在前端开发中如何做好seo优化

在前端开发中如何做好seo优化很多人学会了一些SEO的常识,就觉得自己已经学会了SEO了,能够给很多网站提供意见,但是其实他们提出的意见,很多时候都是靠猜,靠感觉。至于实际上有没有效果,会不会给网站带来正面的影响,只能走一步看一步。其实一个SEO做得如何,最了解的还是自己,好的SEOER,能够通过平时一点一滴的数据,进行汇总,通过数据指导,来看清SEO的方向。SEO是什么,在我

2023-09-14 18:04:32
php框架优化yii2 yii2.0文件如何在php命令行运行
php框架优化yii2 yii2.0文件如何在php命令行运行

yii2.0文件如何在php命令行运行在yii根目录下面有个“yii”文件,这个文件就是入口。然后“commands”目录下会默认有个“HelloController.php”控制器文件,这个是一个demo。打开这个控制器文件,源码如下(删掉了部分注释):<?phpnamespaceappcommands;useyiiconsoleController;classH

2023-09-27 22:27:58
php框架mysql连接怎么优化 mysql联接优化器是如何优化join顺序的
php框架mysql连接怎么优化 mysql联接优化器是如何优化join顺序的

phpphpfor循环查询数据库效率低,该如何优化mysqlmysql那就用sphinx技术,目前这个是最好的,没有之一。下面是我百度百科弄过来的,怎么使用还得你自己看白皮书了。Sphinx的主要特性包括:高速索引(在新款CPU上,近10MB/秒);高速搜索(2-4G的文本量中平均查询速度不到0.1秒);高可用性(单CPU上最大可支持100GB的文本,100M文档);

2023-09-29 13:37:45