弹出窗口的数量会影响页面加载速度吗?
Does the number of popovers affect page load speed?
我有一个页面可能有 2000 个弹出窗口,使用 bootstrap 4。
弹出窗口的数量会影响页面速度吗?我对 javascript 框架了解不够,无法理解加载 10 个弹出窗口是否与加载 2000 个弹出窗口具有相同的效果。这就是我想了解的。
弹出窗口的内容由 javascript 加载。
我用来尽量减少此类影响的一种方法是使用单个 popover/modal/dialog/etc.. 然后在它显示之前更改它的内容。这样你就不会在 DOM 中有 2k 额外的元素,99% 的时间什么都不做。
我通过在父元素上启用它来使用 selector
选项和委托制作了 bootstrap 弹出窗口的示例。看来他们可能已经解决了任何开销问题。
如果您检查示例的正文,您会看到一个弹出窗口 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>
我有一个页面可能有 2000 个弹出窗口,使用 bootstrap 4。
弹出窗口的数量会影响页面速度吗?我对 javascript 框架了解不够,无法理解加载 10 个弹出窗口是否与加载 2000 个弹出窗口具有相同的效果。这就是我想了解的。
弹出窗口的内容由 javascript 加载。
我用来尽量减少此类影响的一种方法是使用单个 popover/modal/dialog/etc.. 然后在它显示之前更改它的内容。这样你就不会在 DOM 中有 2k 额外的元素,99% 的时间什么都不做。
我通过在父元素上启用它来使用 selector
选项和委托制作了 bootstrap 弹出窗口的示例。看来他们可能已经解决了任何开销问题。
如果您检查示例的正文,您会看到一个弹出窗口 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>