美文网首页
性能优化大合集

性能优化大合集

作者: 拾钱运 | 来源:发表于2022-01-04 15:05 被阅读0次
    例如有些项目用到了图表(echarts),可以按需引入依赖包,不用加载整个echarts库。
    
     vue项目打包的时候将.map文件忽略,不需要编译打包出来。这样文件就会小很多
    (注意:dist 文件,想要恢复。需要有.map文件 通过source-map还原)
    
    1. https://segmentfault.com/a/1190000018428170
    - input 防抖 (在某个时间段内只执行最后一次)
    - 上拉加载 节流 (执行一次之后,在一段时间之后才可以再次执行) 
    实现方法:
    - 可通过setTimeOut(fn,delay)  延时 
    - 也可以使用时间戳 相减大于这个范围才可以再次执行
    ( 什么时候使用防抖和节流,需要根据业务需求)
    

    4.解决H5页面缓存问题 (服务渲染,可以防止缓存问题 为什么 在ajax 知识点中
    dataType 属性中)

    1.在ajax发送请求前加上 anyAjaxObj.setRequestHeader(“Cache-Control”,”no-cache”)。
    2.在url后面加上一个随机数“fresh=”+Math.random()
    3.在url后面加上要给时间戳 “newTime=”+new Date().getTime()  
    

    5.按钮的节流操作

    在规定的时间内不许可重复点击,防止多次请求后台接口。
    

    6.v-for v-if

    禁止不在同一级中使用,解决方法:1.将v-if放在v-for循环外面  2. 利用计算属性对数组进行操作,然后在循环
    

    7.v-for key key的主要作用时高效的更新虚拟dom

    key 用数组中的唯一性  id 尽量不用index 
    如果使用key =index  只是进行渲染还好,如果还对数组进行操作,就会出现bug了
    
    因为你如果删除或者增加元素的时候,index都会变化,当为选择功能的时候,选择的时候就会不准确,出现问题。或者渲染的时候,删除的当前元素后面的所有都重新渲染一遍,因为当前index改变了,后面的都会受到影响,导致性能降低。
    
    input textarea 编辑提交的时候,要过滤html<>标签。,并且要把尖括号转义。防止提交<html></html>代码影响前端。例如:走马灯标签代码
    
    每次切换路由的时候都让页面回到最顶部
    
    scrollBehavior (to, from, savedPosition) {
      return { x: 0, y: 0 }
    }
    写在  配置路由项的下边
    

    10.禁止htmlF12调试

    //禁止调试
    setInterval(function() {
      check()
    }, 1000);
    var check = function() {
      function doCheck(a) {
        if (("" + a/a)["length"] !== 1 || a % 20 === 0) {
            console.log('调试')
            // 
          (function() {
          }
          ["constructor"]("debugger")()
          )
        
        } else {
            // window.location.href='https://www.jb51.net/article/196924.htm'
          (function() {}
          ["constructor"]("debugger")()
          )
        }
        doCheck(++a)
      } 
      try {
        doCheck(0)
      } catch (err) {}
    };
    check();
    

    检测当前实在pc还是app中

        var sUserAgent = navigator.userAgent.toLowerCase();
    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
    var bIsMidp = sUserAgent.match(/midp/i) == "midp";
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
    var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
    var bIsAndroid = sUserAgent.match(/android/i) == "android";
    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
    if(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
      //app
    } else {
    //pc
    // window.location.href='https://www.jb51.net/article/196924.htm'
    }
    

    相关文章

      网友评论

          本文标题:性能优化大合集

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