3:面试总结

1.浏览器的运行原理
浏览器的渲染机制通常分为如下几个步骤
1.处理 HTML 并构建 DOM 树。
2.处理 CSS 构建 CSSOM 树。
3.将 DOM 与 CSSOM 合并成一个渲染树。
4.根据渲染树来布局,计算每一个节点的位置。
5.调用 GPU 绘制,合成图层,显示在屏幕上。
复制代码
2.如何提升CSS性能?CSS优化、提升性能提高总汇
主要表现为: 加载性能 (主要是从减小文件体积,减小阻塞加载,提升并发方面入手),选择器性能,渲染性能,可维护性。
一、尽可能将样式写在单独的css文件里面,在head元素中引用
(1)内容和样式分离,易于管理和维护
(2)减小页面体积
(3)css文件能够被缓存、重用,维护成本下降
二、不使用@import  
若是你使用@import属性引入css的话,当用户浏览的网速较慢时,他会看到一个没有风格样式的页面,而后随着CSS文件被下载完成才能够看到应有的风格
三、避免使用复杂的选择器,层级越少越好  
项目的模块愈来愈多,功能愈来愈复杂,咱们写的CSS选择器会内套多层,愈来愈复杂。建议选择器的嵌套最好不要超过三层,简洁的选择器不只能够减小css文件大小,提升页面的加载性能,浏览器解析时也会更加高效,也会提升开发人员的开发效率,下降了维护成本。
四、精简页面的样式文件,去掉不用的样式  
(1)样式文件偏大,影响加载速度
(2)浏览器会进行多余的样式匹配,影响渲染时间。
根据当前页面须要的css去合并那些当前页面用到的CSS文件, 合并成一个文件有一个优势:样式文件会被浏览器缓存,进入到其余页面样式文件不用再去下载。
五、利用CSS继承减小代码量  
咱们知道有一部分CSS代码是能够继承的,若是父元素已经设置了该样式,子元素就不须要去设置该样式,这个也是提升性能的行之有效的方法。
六、慎重使用高性能属性:浮动、定位;  
一方面,浮动的种种复杂的布局规则注定了它是一种试探性局部 reflow 式的布局算法。浏览器须要花费不少精力来处理它。另外一方面,浮动元素的布局牵涉到的因素更多。在同一布局空间中,全部浮动元素均存在于“静态层”之上的“浮动层”,不只浮动层中的多个浮动元素会相互影响,浮动元素与静态层也有互动。
七、css样式前缀
标准化各类浏览器前缀,带浏览器前缀的在前,标准的在后
八、css属性值 
属性值为0时,不加单位
属性值为浮点数0.**时,能够省略小数点前的0 
复制代码
3.手机端怎么优化
4.事件监听的几种经常使用方法
5.性能优化

详解:yuchengkai.cn/docs/fronte…css

6.懒加载
1.图片进入可视区以后请求图片资源;
2.对于电商等图片不少,页面很长的业务场景适用;
3.减小无效资源的加载;
4.并发加载的资源过多会阻塞js的加载,影响网站的正常使用;
懒加载就是将不关键的资源延后加载。

懒加载的原理就是只加载自定义区域(一般是可视区域,但也能够是即将进入可视区域)内须要加载的东西。对于图片来讲,先设置图片标签的 src 属性为一张占位图,将真实的图片资源放入一个自定义属性中,当进入自定义区域时,就将自定义属性替换为 src 属性,这样图片就会去下载资源,实现了图片懒加载。

懒加载不只能够用于图片,也可使用在别的资源上。好比进入可视区域才开始播放视频等等。
复制代码

代码显示html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>懒加载</title>
    <style>
        * {
            margin: 0;
        }
        .images-list{
            text-align: center;
        }
        .image-item {
            display: block;
            margin: 0 auto;
            margin-bottom: 50px;
            height: 200px;
        }
    </style>
</head>

<body>
    <div class="images-list">
        <img src="" class="image-item" lazyload="true"
            data-original="https://img11.360buyimg.com/babel/s190x210_jfs/t1/67382/7/737/7499/5cef7cdcE7e558a19/20bf923d00519d1b.png!q90!cc_190x210" />
        <img src="" class="image-item" lazyload="true"
            data-original="https://img11.360buyimg.com/babel/s190x210_jfs/t1/37644/21/10456/7615/5cf0e744E4f1c0791/9099b47069899343.png!q90!cc_190x210" />
        <img src="" class="image-item" lazyload="true"
            data-original="https://img12.360buyimg.com/babel/s190x210_jfs/t1/33253/40/12868/28087/5cf4ba82Eeb1f20db/6269ad71b6c783ee.png!q90!cc_190x210" />
        <img src="" class="image-item" lazyload="true"
            data-original="https://img10.360buyimg.com/babel/s190x210_jfs/t1/46094/12/1361/6091/5cf12dabE8936db02/d715b9b23b05f6ef.png!q90!cc_190x210" />
        <img src="" class="image-item" lazyload="true"
            data-original="https://img11.360buyimg.com/babel/s190x210_jfs/t1/38402/3/7768/7973/5cf10a9dEcbf4ebe3/99bdf2f7bbcc4098.png!q90!cc_190x210" />
        <img src="" class="image-item" lazyload="true"
            data-original="https://img11.360buyimg.com/babel/s190x210_jfs/t1/53503/9/1235/8719/5cef7be0E45e8daa3/d5f7827394839f29.png!q90!cc_190x210" />
        <img src="" class="image-item" lazyload="true"
            data-original="https://img10.360buyimg.com/babel/s190x210_jfs/t1/61252/39/1085/6228/5cf51d68Ee6890774/4ac1a93e51b98396.png!q90!cc_190x210" />
        <img src="" class="image-item" lazyload="true"
            data-original="https://img12.360buyimg.com/babel/s190x210_jfs/t1/64182/40/699/8910/5cef37f5Eacf7aa07/e0e9f04f5e55efb0.png!q90!cc_190x210" />
        <img src="" class="image-item" lazyload="true"
            data-original="https://img12.360buyimg.com/babel/s190x210_jfs/t1/54510/8/1271/6158/5cef5bfbEede24168/4aa624bd9ada781f.png!q90!cc_190x210" />
        <img src="" class="image-item" lazyload="true"
            data-original="https://img11.360buyimg.com/babel/s190x210_jfs/t1/68844/9/755/10390/5cef6d16E17865545/819001724f67aa8f.png!q90!cc_190x210" />
        <img src="" class="image-item" lazyload="true"
            data-original="https://img11.360buyimg.com/babel/s190x210_jfs/t1/67382/7/737/7499/5cef7cdcE7e558a19/20bf923d00519d1b.png!q90!cc_190x210" />
        <img src="" class="image-item" lazyload="true"
            data-original="https://img10.360buyimg.com/babel/s190x210_jfs/t1/61252/39/1085/6228/5cf51d68Ee6890774/4ac1a93e51b98396.png!q90!cc_190x210" />
    </div>
    <script>
        var viewHeight = document.documentElement.clientHeight//获取可视区高度
        function lazyload() {
            var eles = document.querySelectorAll('img[data-original][lazyload]');
            Array.prototype.forEach.call(eles, function (item, index) {
                var rect
                if (item.dataset.original === "")
                    return
                rect = item.getBoundingClientRect()// 用于得到页面中某个元素的左,上,右和下分别相对浏览器视窗的位置
                if (rect.bottom >= 0 && rect.top < viewHeight) {
                    !function () {
                        var img = new Image()
                        img.src = item.dataset.original
                        img.onload = function () {
                            item.src = img.src
                        }
                        item.removeAttribute("data-original");//移除属性,下次再也不遍历
                        item.removeAttribute("lazyload");
                    }()
                }
            })
        }
        lazyload()//刚开始还没滚动屏幕时,要先触发一次函数,初始化首页的页面图片
        document.addEventListener("scroll", lazyload);

    </script>
</body>

</html>
复制代码

7.HTTP 和 HTTPS 的共同点和区别算法

1.https 协议须要到 ca 申请证书,通常免费证书较少,于是须要必定费用。
2.http 是超文本传输协议,信息是明文传输, https 则是具备安全性的ssl加密传输协议。
3.http 和 https 使用的是彻底不一样的链接方式,用的端口也不同,前者是80,后者是443。
4.http 的链接很简单,是无状态的; HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。
复制代码
相关文章
相关标签/搜索