知识点

作者: Viewwei | 来源:发表于2021-04-01 22:37 被阅读0次

    前端性能优化

    减少 HTTP 数量
    1.合并文件
    2.图片映射,把多图拼成一张图
    3.行内图片 base64
    4.使用 CDN
    浏览器缓存
    对于一个网站来说 css js logo 图标这些资源图片更新频率比较低,而这些文件机会都需要 http请求,如果将这些文件缓存到浏览器中,可以极好的改善性能.通过设置 http 头中的cahce-control和 express 属性,可设置浏览器缓存.
    页面静态
    1.将 css 样式表放在顶部

    1. 将 JavaScript 脚本放到底部浏览器
      3.使用外部JavaScript 和 css
    2. 组件压缩
      5.图片优化

    jsonp原理

    通过前端创建一个 script 标签,给这个标签src设置跨域地址.跨域地址中存在前端一个函数名称,然后让服务器在response 中写入这个函数名称和参数

    http 状态码

    服务器状态码一般分成 5 类,
    1** 代表服务器收到请求,需要请求者继续执行,
    2成功,操作成功并处理,
    3
    重定向,需要进一步操作,
    4客户端错误,
    5
    服务端错误.
    200 代表成功 ,201 成功请求,并且创建了新的资源,202 已接受 305 使用代理,307 临时重定向,400 客户端请求语法错误,401 请求需要用户认证,403服务端理解请求客户端的请求,单拒绝执行请求,404 服务器无法根据客户端请求资源,405 客户端请求的方法被终止.500 服务器内部错误,501 服务器不支持请求功能

    http1.1和 2.0 区别

    • 2.0 使用多路复合的技术,做到同一个链接并发多个请求,并且并发请求的数量是 HTPP1.0 大好几个数量级
    • 1.1 中,HTTP 请求和响应都是由状态码,请求/响应头部,消息主体三部分组成,一般而言,消息的主体会经过 gzip 压缩,或者本身就传输压缩过的二进制文件,单状态和头部却没有经过压缩,直接已文本的形式传输.随着 web 功能越来越复杂,每个页面产生的请求越来越多,导致🎺在头部的流量越来越大.1.1 不支持 header 数据压缩,
    • 2.0 对头部进行压缩
      服务端推送是一种客户端请求之前发送数据的机制.网页使用了许多资源,HTML,样式表,脚本,图片.在 1.1 中这些资源必须有明确的请求.这是一个很慢的过程.浏览器从获取 HTML 开始,然后在它解析和评估页面的时候,增量的更多的资源.因为服务器必须等待浏览器做每一个请求
    • 为了改善延迟,2.0 引入了 server push,他允许服务端推送资源给浏览器,从浏览器明确请求之前,免的客户端再次创建连接发送请求到服务器获取.这样客户端可以直接本地加载这些资源

    本地化数据

    Cookie 非常小,大小的.主要用于保存登陆信息.cookie 机制:如果浏览器不设置过期时间,cookie 被保存到内存中.生命周期随着关闭而结束,
    localStore:保存到这个本地,如果不设置过期时间,不会自动清除.
    sessionStorage:他只是将一部分数据在当前会话中保存下来,刷新页面数据依旧有效,单页面关闭,sessionStorage 的数据会被清空

    水平垂直居中

        //absolute 定位+margin-top+margin-left =-宽度一半
    .c1 {
                    height: 300px;
                    width: 300px;
                    background: black;
                    position: relative;
                }
                
                .c2 {
                    height: 200px;
                    width: 200px;
                    position: absolute;
                    left: 50%;
                    top: 50%;
                    margin-top: -100px;
                    margin-left: -100px;
                    background: red;
                }
     left,right top bottom 加上 margin:auto 
        body {
                        background: black;
                    }
                    
                    .block {
                        height: 200px;
                        width: 200px;
                        position: absolute;
                        left: 0;
                        right: 0;
                        top: 0;
                        bottom: 0;
                        margin: auto;
                        background: red;
                    }
    table-cell
     body {
                                background: black;
                            }
                            
                            .block {
                                height: 200px;
                                width: 200px;
                                display: table-cell;
                                vertical-align: middle;
                                text-align: center;
                                background: red;
                            }
                            .a{
                                width: 100px;
                                height: 100px;
                                background: purple;
                            }
    //tranlate -50%
         .block{
                             width: 200px;
                             height: 200px;
                             position: relative;
                             /* position: absolute; */
                             /* left: 50%; */
                             /* top: 50%; */
                             /* transform: translate(-50%, -50%); */
                             /* transform: translate(-50%,-50%); */
                             background: purple;
                         }  
                         .a{
                            width: 100px;
                             height: 100px;
                             background-color: #808080;
                             position: absolute;
                            top: 50%;
                            left: 50%;
                            transform: translate(-50%,-50%);
                         }
    

    清除浮动

    添加伪元素:after
    给父元素添加 overflow:hidden,zoom:1
    BFC 清除浮动

    new 的实现

    • 首先新建一个对象,在新对象上面新建一个proto属性,并指向构造函数的原型.亦新建对象作为上下文运行函数.针对函数的返回,如果是对象,则返回对象,如果不是对象,则返回创建新对象

    相关文章

      网友评论

        本文标题:知识点

        本文链接:https://www.haomeiwen.com/subject/qcixkltx.html