欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ResizeObserver?loop?limit?exceeded報(bào)錯(cuò)原因及解決方案

 更新時(shí)間:2023年09月21日 11:41:44   作者:只愛喝白開水  
這篇文章主要給大家介紹了關(guān)于ResizeObserver?loop?limit?exceeded報(bào)錯(cuò)原因及解決的相關(guān)資料,公司項(xiàng)目監(jiān)聽系統(tǒng)中發(fā)現(xiàn)一個(gè)高頻錯(cuò)誤ResizeObserver loop limit exceeded,而瀏覽器的console中卻沒有提示,需要的朋友可以參考下

背景

? 公司內(nèi)部搭建了前端監(jiān)控系統(tǒng)Sentry,我把一些項(xiàng)目接入進(jìn)去,一周后發(fā)現(xiàn)上報(bào)數(shù)量最多的事件是ResizeObserver loop limit exceeded。這些事件上報(bào)得太多,給Sentry服務(wù)造成很大壓力,于是研究一番準(zhǔn)備解決之。

問題原因

  • element ui中table組件的resize回調(diào)代碼如下
/* istanbul ignore next */
export const addResizeListener = function(element, fn) {
  if (isServer) return;
  if (!element.__resizeListeners__) {
    element.__resizeListeners__ = [];
    element.__ro__ = new ResizeObserver(resizeHandler);
    element.__ro__.observe(element);
  }
  element.__resizeListeners__.push(fn);
};
  • 如果在一個(gè)動(dòng)畫幀內(nèi),ResizeObserver不能處理所有的observations,就會(huì)觸發(fā)這個(gè)ResizeObserver loop limit exceeded

解決方案

  • 阻止table的重繪,例如給所有列都增加width,但是這個(gè)方案不好,無法自適應(yīng)寬度。

    <el-table :data="tableData" style="width: 100%">
      <el-table-column prop="date" label="日期" width="180"> </el-table-column>
      <el-table-column prop="name" label="姓名" width="180"> </el-table-column>
      <el-table-column prop="address" label="地址" width="180"> </el-table-column>
      <el-table-column prop="address" label="地址" width="180"> </el-table-column>
      <el-table-column prop="address" label="地址" width="180"> </el-table-column>
    </el-table>
  • resize時(shí),給回調(diào)進(jìn)行節(jié)流,使其1幀內(nèi)最多執(zhí)行一次。代碼如下:

    import Vue from 'vue';
    import ElementUI, { Table } from 'element-ui';
    import 'element-ui/lib/theme-chalk/index.css';
    import App from './App.vue';
    // 解決 ElTable 自動(dòng)寬度高度導(dǎo)致的「ResizeObserver loop limit exceeded」問題
    const fixElTableErr = (table) => {
        const oldResizeListener = table.methods.resizeListener;
        table.methods.resizeListener = function () {
            window.requestAnimationFrame(oldResizeListener.bind(this));
        };
    };
    // 一定要在Vue.use之前執(zhí)行此函數(shù)
    fixElTableErr(Table);
    Vue.use(ElementUI);
    new Vue({
        el: '#app',
        render: (h) => h(App),
    });
  • element ui 在最新的版本中已經(jīng)使用decounce方法修復(fù)了這個(gè)問題,源碼如下:

    /* istanbul ignore next */
    export const addResizeListener = function(element, fn) {
      if (isServer) return;
      if (!element.__resizeListeners__) {
        element.__resizeListeners__ = [];
        element.__ro__ = new ResizeObserver(debounce(16, resizeHandler));
        element.__ro__.observe(element);
      }
      element.__resizeListeners__.push(fn);
    };

總結(jié) 

到此這篇關(guān)于ResizeObserver loop limit exceeded報(bào)錯(cuò)原因及解決方案的文章就介紹到這了,更多相關(guān)ResizeObserver loop limit exceeded報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 談?wù)剬?duì)Vue?Router的理解

    談?wù)剬?duì)Vue?Router的理解

    vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁面應(yīng)用,這篇文章主要介紹了對(duì)Vue?Router的理解,需要的朋友可以參考下
    2022-11-11
  • 一文了解axios和vue的整合操作

    一文了解axios和vue的整合操作

    axios作為Vue生態(tài)系統(tǒng)中濃墨重彩的一筆,我學(xué)習(xí)這個(gè)東西也是花了一定的時(shí)間的,下面這篇文章主要給大家介紹了關(guān)于axios和vue整合操作的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Vue3計(jì)算屬性和異步計(jì)算屬性方式

    Vue3計(jì)算屬性和異步計(jì)算屬性方式

    這篇文章主要介紹了Vue3計(jì)算屬性和異步計(jì)算屬性方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue的watch和computed方法的使用及區(qū)別介紹

    Vue的watch和computed方法的使用及區(qū)別介紹

    Vue的watch屬性可以用來監(jiān)聽data屬性中數(shù)據(jù)的變化。這篇文章主要介紹了Vue的watch和computed方法的使用及區(qū)別,需要的朋友可以參考下
    2018-09-09
  • vue?動(dòng)態(tài)style?拼接寬度問題

    vue?動(dòng)態(tài)style?拼接寬度問題

    這篇文章主要介紹了vue?動(dòng)態(tài)style?拼接寬度問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue中el-input綁定鍵盤按鍵(按鍵修飾符)

    vue中el-input綁定鍵盤按鍵(按鍵修飾符)

    這篇文章主要介紹了vue中el-input綁定鍵盤按鍵(按鍵修飾符),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • vue element ui使用選擇器實(shí)現(xiàn)地區(qū)選擇兩種方法

    vue element ui使用選擇器實(shí)現(xiàn)地區(qū)選擇兩種方法

    這篇文章主要給大家介紹了關(guān)于vue element ui使用選擇器實(shí)現(xiàn)地區(qū)選擇的兩種方法,Element UI是一套基于Vue.js開發(fā)的UI組件庫,其中包含了地區(qū)選擇器(Cascader)組件,需要的朋友可以參考下
    2023-09-09
  • vue中如何解除數(shù)據(jù)之間的雙向綁定

    vue中如何解除數(shù)據(jù)之間的雙向綁定

    這篇文章主要介紹了vue中如何解除數(shù)據(jù)之間的雙向綁定,具有很好的參考價(jià)值,希望對(duì)
    2022-09-09
  • vue中使用element組件時(shí)事件想要傳遞其他參數(shù)的問題

    vue中使用element組件時(shí)事件想要傳遞其他參數(shù)的問題

    這篇文章主要介紹了vue中使用element組件時(shí)事件想要傳遞其他參數(shù)的問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 利用vue組件自定義v-model實(shí)現(xiàn)一個(gè)Tab組件方法示例

    利用vue組件自定義v-model實(shí)現(xiàn)一個(gè)Tab組件方法示例

    這篇文章主要給大家介紹了關(guān)于利用vue組件自定義v-model實(shí)現(xiàn)一個(gè)Tab組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12

最新評(píng)論