前端开发

如何提升Web前端性能?

一世执手 提交于 2019-12-17 14:20:42
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 什么是WEB前端呢?就是用户电脑的浏览器所做的一切事情。我们来看看用户访问网站,浏览器都做了哪些事情:输入网址 –> 解析域名 -> 请求页面 -> 解析页面并发送页面中的资源请求 -> 渲染资源 -> 输出页面 -> 监听用户操作 -> 重新渲染。 通过上面的路径可以看出浏览器分为请求、传输、渲染三部分来实现用户的访问,本文就从这三个部分来浅析如何提升WEB前端性能。 请求 浏览器为了减少请求传输,实现了自己的缓存机制。浏览器缓存就是把一个已经请求过的Web资源拷贝一份副本存储在浏览器中,当再次请求相同的URL时,先去查看缓存,如果有本地缓存,浏览器缓存机制会根据验证机制(Etag)和过期机制(Last-Modified)进行判断是使用缓存,还是从服务器传输资源文件。具体流程如下图所示: 如何从请求、传输、渲染3个方面提升Web前端性能 浏览器的请求有些是并发的,有些是阻塞的,比如:图片、CSS、接口的请求是并发;JS文件是阻塞的。请求JS的时候,浏览器会中断渲染进程,等待JS文件加载解析完毕,再重新渲染。所以要把JS文件放在页面的最后。 JS也可以通过两种方式由阻塞改成并行:一种是通过创建script标签,插入DOM中;另一种是在Script标签中增加async属性。 每种浏览器对同一域名并发的数量有限制

前端开发常见面试提问(一)

◇◆丶佛笑我妖孽 提交于 2019-12-17 08:37:31
1、CSS3 新特性有哪些? 1. 颜色:新增 RGBA,HSLA 模式 2. 文字阴影(text-shadow) 3.边框: 圆角(border-radius) 边框阴影: box-shadow 4. 盒子模型:box-sizing 5.背景:background-size 设置背景图片的尺寸 background-origin 设置背景图片的 原点 background-clip 设置背景图片的裁切区域,以”,”分隔可以设置多背景,用于 自适应布局 6.渐变:linear-gradient、radial-gradient 7. 过渡:transition,可实现动画 8. 自定义动画@keyframes 9. 在 CSS3 中唯一引入的伪元素是 :selection. 10. 媒体查询,多栏布局 @media 11. border-image 12.2 D转化 : transform : translate ( x,y ) 横纵向移动 transform : rotade ( x,y ) 旋转 transform : scale ( x,y ) 缩放 transform : skew ( x,y ) 倾斜 13.3 D转化 : transform : translate3d ( x,y,z ) perspective : 透视 ( 值越小越剧烈 )

对即将入职前端工作的新人有哪些建议?

霸气de小男生 提交于 2019-12-17 05:36:10
 对于即将步入前端行业的学员,在这里有三个词分享给大家: 沟通,努力,多看。   1、沟通。沟通是在工作当中是很重要的一个环节,沟通好了事半功倍,沟通不好事倍功半。在网站开发的整个环节当中前端能接触到的有产品,设计,后台,测试这些岗位的人。产品会根据客户的需求或者是老板的需求把项目的产品原型,需求文档,交互文档给到你们,然后就是各自看各自的,如果有问题大家开会或者QQ群讨论,能修改的修改,修改不了的那就是前端和后台抓耳挠腮的把困难解决掉,而在这个过程中需要的就是良好的沟通,你得说明白你哪些模块有问题,有什么问题能解决还是不能解决,如果说实在的实现不了,那么需求必须的改了,但是一般情况下都是你技术的提升,而不是产品改需求。   这个是说的是比较好的情况,产品原型,需求文档,交互文档都有,有些时候是这样的   甚至有的时候根本就没有原型图什么什么的,没有,完全没有。这个时候最主要还是详细的沟通,耐心的把所需要了解的环节说清楚,最好是记录下来。更糟糕的是这个公司没有没有专门的产品经理,而是项目经理兼任来管,那么如果项目经理不懂的技术,恰巧在他的职权范围内有决策权,那这个就更加难沟通了。如果你们之间出现了冲突,而你们呢谁都不想拖鞋,那么这个时候就自然而然的把球给了你们的高级的上司那里。那么这个时候就更需要你扎实的技术功底或丰富的行业经验跟老板也好,项目经理也好把问题阐述表达清楚了

Web前端性能优化——编写高效的JavaScript

穿精又带淫゛_ 提交于 2019-12-17 05:23:48
前言 随着计算机的发展,Web富应用时代的到来,Web 2.0早已不再是用div+css高质量还原设计的时代。自Gmail网页版邮件服务的问世开始,Web前端开发也开启了新的纪元。用户需求不断提高,各种新的技术层出不穷,前端工程师的地位也越来越重要。然而任何事物都是有两面性的,随着前端技术的发展,前端业务越来越繁重,这大大增加了JS代码量。因此,要提高Web的性能,我们不仅需要关注页面加载的时间,还要注重在页面上操作的响应速度。那么,接下来我们讨论几种能够提高JavaScript效率的方法。 一、从JavaScript的作用域谈起 当JavaScript代码执行时,JavaScript引擎会创建一个执行环境,又叫执行上下文。执行环境定义了变量或函数有权访问的其他数据,决定了它们的行为,每个执行环境都有一个与它关联的 变量对象, 环境中定义的所有函数、变量都保存在这个对象中。在页面加载的时候,JavaScript引擎会创建一个全局的执行环境,所有全局变量和函数都是作为window对象(浏览器中)的属性和方法创建的。在此之后,每执行一个函数,JavaScript引擎都会创建一个对应的执行环境,并将该环境放入环境栈中,所以当前正在执行的函数的执行环境是在环境栈的最顶部的,当函数执行完毕之后,其执行环境会弹出栈,并被销毁,保存在其中的变量和函数定义也会被销毁。 当代码在一个执行环境中执行时

web前端入门到实战:CSS 3D动画(魔方效果,多重立体图,圆柱效果,齿轮效果)

和自甴很熟 提交于 2019-12-17 04:21:53
本篇文章给大家带来的内容是关于css实现3d动画特效的代码实例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 属性 perspective :透距离,单位像素(值越小,透视距离越近,效果越明显):设置父元素上 perspective-origin: 设置透视点的位置 transform-style :指定某元素的子元素是位于三维空间内,取值:flat | preserve-3d 一、写一个简单的立方体 1.一个长方体有6个面,我们写6个div,并用一个父元素包裹起来。 <div class="mofang"> <div class="box mian1">1</div> <div class="box mian2">2</div> <div class="box mian3">3</div> <div class="box mian4">4</div> <div class="box mian5">5</div> <div class="box mian6">6</div> </div> 2.给.mofang设置宽高,并给他设置视距和透视点位置,preserve-3d属性保留子元素3d转换 .mofang{ width: 100px; height: 100px; position: absolute; top: calc(50% - 50px); left:

web前端入门到实战:css过渡和动画解析文

穿精又带淫゛_ 提交于 2019-12-17 03:52:23
一、transition 过渡 过渡效果一般由浏览器直接改变元素的CSS属性实现,从一种状态过渡到另一种状态。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 第一、在默认样式中声明元素的初始状态样式; 第二、声明过渡元素最终状态样式,比如悬浮状态; 第三、在默认样式中通过添加过渡函数,添加一些不同的样式。 transition 是一个简写属性,用于设置四个过渡属性: transition: 2s 3s all linear; (过渡时间 延迟时间 属性 速度) 下面的表格列出了所有的转换属性: 1.transition-property 2.transition-duration 3.transition-timing-function 4.transition-delay 实例: 在一个例子中使用所有过渡属性: web前端开发学习Q-q-u-n: 784783012 ,分享学习的方法和需要注意的小细节,不停更新最新的教程和学习方法 (从零基础开始到前端项目实战教程,学习工具,职业规划) 二、animation 动画 CSS3 @keyframes 规则 如需在 CSS3 中创建动画,您需要学习 @keyframes 规则。 在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。 1、什么是 CSS3 中的动画?

web前端入门到实战:实现点击按钮后CSS加载效果

和自甴很熟 提交于 2019-12-17 03:47:04
效果演示 先来看一下完成的效果。 实现过程 这个效果其实很容易,先来看一下原本的按钮长相,就只是个div套用CSS而已。 HTML: <div class="btn">click me</div> CSS: .btn{ position:relative; width:200px; height:30px; line-height:30px; text-align:center; border-radius:3px; background:#5ad; color:#fff; cursor:pointer; } 长相就会是这样(就只是很简单的CSS): 那么要怎么在上面盖上动画呢?这时候就要利用CSS的伪元素,在上方盖上一个before伪元素,把动画放在这个伪元素内即可。 CSS: .btn::before{ content:"loading"; position:absolute; width:200px; height:30px; line-height:30px; text-align:center; border-radius:3px; z-index:2; top:0; left:0; color:#fff; text-shadow:rgba(100,0,0,1) 0 0 3px; background:#c00; } web前端开发学习Q-q-u-n: 784783012

web前端入门到实战:HTML5 VideoAPI,打造自己的Web视频播放器

帅比萌擦擦* 提交于 2019-12-17 03:29:31
本文将使用HTML5提供的VideoAPI做一个自定义的视频播放器,需要用到HTML5提供的video标签、以及HTML5提供的对JavascriptAPI的扩展。 一、基础知识 1.用法 <video src="./video/mv.mp4"></video> 注意:audio和video元素必须同时包含开始和结束标签,不能使用 2.重要HTML属性 controls :ontrol:如果出现该属性,则向用户显示控件,比如播放按钮。每个浏览器中的播放控件都不太一样,但用途都一样,都可以控制开始和结束,跳到新位置和调节音量 autoplay :autoplay:如果出现该属性,则视频在就绪后马上播放。如果不设置autoplay属性,必须是用户单击播放按钮才会播放音频文件。 loop :loop:(循环播放)告诉浏览器在音频到达末尾时,再从头开始重新播放 preload :auto、mete、none:告诉浏览器如何下载音频 auto:让浏览器下载整个文件,以便用户单击播放按钮时就能播放。当然,下载过程是后台进行的,网页访客不必等待下载完成,而且仍然可以随意查看网页。 meta:告诉浏览器先获取音频文件开头的数据块,从而足以确定一些基本信息(比如音频的总时长) none:**告诉浏览器不必预先下载。恰当地利用这些值,可以节省带宽。 如果没有设置preload属性

前端性能优化指南

本小妞迷上赌 提交于 2019-12-17 02:35:42
作者: JowayYoung 仓库: Github 博客: 掘金 、 思否 、 知乎 、 简书 、 头条 、 CSDN 公众号: Uzero 联系我:关注公众号后有我的 微信 哟 特别声明:未经授权不得对此文章进行转载或抄袭,否则通过法律途径进行解决,如需转载或开通公众号白名单可联系我,希望各位尊重原创的知识产权 前言 发现总结性的小干货可以为大家提升更好的开发技巧和编码思维,对代码量产化提供更扎实的质量和支持。这次我们来聊聊大家可能都比较关心的话题: 性能优化 。 一说到页面的性能优化,大家可能都会想起 雅虎军规 、 2-5-8原则 、 3秒钟首屏指标 等规则,这些规则在开发过程中不是强制要求的,但是有时候为了追求页面性能的完美和体验,就不得不对原有的代码进行修改和优化。 下面就结合自己三年多的开发经验和大量的项目实践,整理出一些常用的性能优化要点,同时再罗列一下 雅虎军规 、 2-5-8原则 、 3秒钟首屏指标 这三个常用规则的要点。 为了方便记忆和阅读,文章使用部分简写名词,解释如下 D端 :桌面端页面 Desktop End Page M端 :移动端页面 Mobile End Page 概述指南 D端优化手段在M端同样适用 在M端提出3秒钟渲染完成 首屏指标 基于第二点,首屏加载3秒内完成或使用 Loading 进行占位 基于联通3G网络平均 338kb/s(2.71mb

谈论学习路线以及学习计划

。_饼干妹妹 提交于 2019-12-17 01:07:12
学习分享的第一天 细谈前端学习路线及学习计划 1.1 前端是什么? 1.2 前端的基础语言是什么? 1.3 学习前端又需要那些技能呢? 1.4 为什么要学习前端,是为了什么去学习前端 细谈前端学习路线及学习计划 1.1 前端是什么? 前端即使Web前端开发工程师。是从事Web前端开发工作的工程师,主要是为了进行网站的开发、优化及完善所需。 1.2 前端的基础语言是什么? 既然web前端开发是由网页制作演变而来的,是由HTML、CSS、Javascript三大要素组成,所以前端的基础语言即是这三大要素。 1.3 学习前端又需要那些技能呢? 上面的思维导图是学习前端需要必备的知识的一部分,当然也是拥有一部份后台的技能是为了以后想要真正的达到全栈肯定还要更加努力的去了解更多的知识以及技术。肯定不能说是全部概括但是也是学习前端基础必备的技能知识,方便你在以后的工作当中随时遇到而不必着急慌乱。 1.4 为什么要学习前端,是为了什么去学习前端 没有理由,因为工作需要,也为了成为全栈,所以现在还是需要好好努力学习的! 来源: CSDN 作者: 怦然心动```` 链接: https://blog.csdn.net/Jiuqianqi/article/details/103567940