在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  HTML/ 為什么select控件多了,會(huì)明顯影響響應(yīng)速度

為什么select控件多了,會(huì)明顯影響響應(yīng)速度

為什么頁(yè)面中select控件多了,會(huì)明顯影響響應(yīng)速度, 如何優(yōu)化?

vue綁定json數(shù)據(jù)

data(){
    return {
        form:{
            //...,
            rows:[{ // 假設(shè)rows有100條數(shù)據(jù),每行3個(gè)select
                sel1Val:'' // select選中值
                selList:[ // select下拉框
                {option_id:'1', option_name:'1'},
                {option_id:'2', option_name:'2'}]
            },
            {
                sel2Val:''
                selList:[
                {option_id:'2-1', option_name:'2-1'},
                {option_id:'2-2', option_name:'2-2'}]
            },
            //...
            ]
        }
    }
}

HTML

<table>
<el-form>
    <thead>
        <tr>
            <th></th>
        </tr>
    </thead>
    <tbody>
        <tr v-for="(item, $index) in form.rows">
            <td>
                <el-select v-model="item.sel1val">
                    <el-option v-for="opt in item.selList" :value="opt.option_id" :lalbel="item.option_name"></el-option>
                </el-select>
            </td>
            <td>
                <el-select v-model="item.sel2val">
                    <el-option v-for="opt in item.selList" :value="opt.option_id" :lalbel="item.option_name"></el-option>
                </el-select>
            </td>
            <td>
                <el-select v-model="item.sel3val">
                    <el-option v-for="opt in item.selList" :value="opt.option_id" :lalbel="item.option_name"></el-option>
                </el-select>
            </td>
            <!--略-->
        </tr>
    </tbody>
</el-form>
</table>

clipboard.png

回答
編輯回答
做不到

// 假設(shè)rows有100條數(shù)據(jù),每行3個(gè)select

首先這句話就很值得優(yōu)化,為什么會(huì)有100行,實(shí)際業(yè)務(wù)當(dāng)中必然是會(huì)做分頁(yè)或者懶加載處理的,所以不會(huì)存在100行如此之多的數(shù)據(jù)。

再者,實(shí)際當(dāng)中會(huì)遇到的應(yīng)用場(chǎng)景是,每個(gè)select他們需要渲染的數(shù)組是從不同的數(shù)據(jù)字典當(dāng)中獲取的。那么就盡量一次請(qǐng)求獲取多個(gè)select數(shù)據(jù),切忌發(fā)送多次請(qǐng)求,從http的角度進(jìn)行優(yōu)化,暫時(shí)寫這兩個(gè)。。。開(kāi)會(huì)去了

2017年4月2日 04:34
編輯回答
巷尾

不要在進(jìn)入之前或者 數(shù)據(jù)綁定時(shí)同時(shí)獲取所有數(shù)據(jù)

不然一進(jìn)來(lái)光請(qǐng)求他肯定影響進(jìn)程

先給每個(gè)select 設(shè)置默認(rèn)值 或者 placeholder 給用戶(假)信息 每次change 或者click 時(shí)候去獲取數(shù)據(jù)

但具體看產(chǎn)品需求 實(shí)現(xiàn)對(duì)應(yīng)功能

你可以看看每次進(jìn)入加載多少js 以及多少其他文件

可能無(wú)用文件影響你的速度

2018年6月20日 03:56
編輯回答
款爺

建議布局也不要用table,用flexbox,table布局渲染也會(huì)拖慢速度

2017年10月14日 19:40
編輯回答
傻叼

每一個(gè)select控件在渲染的過(guò)程中都是一次for循環(huán),所以多了就會(huì)影響性能

2017年12月6日 21:44
編輯回答
瞄小懶

遇到同樣的問(wèn)題,感覺(jué)是數(shù)據(jù)驅(qū)動(dòng)dom在大量渲染導(dǎo)致卡慢

2017年8月23日 04:57