2017-04-19 93 views
0

我有一個頁面可能使用引導程序彈出2000.彈出數量是否會影響頁面加載速度?

彈出數量是否會影響頁面速度?我對JavaScript框架知之甚少,無法理解加載10個彈出窗口是否與加載2000相同的效果。這正是我想要理解的。

popovers的內容是通過javascript加載的。

+0

popovers?你的意思是像模態? – WilomGfx

+0

@WilomGfx我的意思是:https://v4-alpha.getbootstrap.com/components/popovers/ – Private

+0

頁面上HTML元素的數量會影響「頁面速度」,因爲瀏覽器必須將它們全部加載到DOM中。因爲大概是「彈出窗口」是DOM的一部分,是的,它們會影響性能。與大多數性能問題一樣,最好的答案是自己測試一下。 –

回答

1

我曾經用來最小化這種事情的影響的一種方法是使用單個彈出窗口/模式/對話框/等等,然後在顯示它之前改變它的內容。通過這種方式,您在DOM中沒有2k額外的元素,其中99%的時間無所事事。

我使用selector選項和委託,通過在父元素上啓用自舉彈窗的例子。看起來他們可能會遇到任何開銷問題。

如果您檢查示例的主體,您會看到一個單獨的popover div,當它顯示時附加到主體,並在隱藏時將其刪除。

$(function() { 
 
    var $table = $('#test'); 
 

 
    for(var i = 0; i < 20; i++) { 
 
    var row = $('<tr />'); 
 
    for(var j = 0; j < 100; j++) { 
 
     var td = $('<td />').attr({id: (i * 100) + j, tabindex: -1}); 
 
     row.append(td); 
 
    } 
 
    $table.append(row); 
 
    } 
 
    
 
    $table.popover({ 
 
    html: true, 
 
    container: 'body', 
 
    trigger: 'focus', 
 
    selector: 'td', 
 
    content: function() { 
 
     return '<p>This is my id: ' + $(this).attr('id') + '</p>'; 
 
    } 
 
    }); 
 
});
td { 
 
    height: 25px; 
 
    width: 25px; 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 
<table id="test"> 
 
</table>

+0

如果我有2k個不同的元素,我想添加彈出窗口,你能否擴展它的工作原理?真正的問題是因爲缺乏知識。這如何減少DOM元素的數量? – Private

+0

我從來沒有使用bootstrap彈出。試着爲你制定一個例子。我有編輯時會編輯。 – gforce301

+0

偉大的技能!感謝你們提供了一個很好的例子,並且很好地理解了我的問題。 – Private

相關問題