没有一种很好的方法可以防止一起闪烁,但是您可以将其最小化。
问题在于,除了您遇到的任何其他瓶颈之外,您还必须首先下载并解析大量 javascript 文件。 Bootstrap-Select依赖于Bootstrap,而 Bootstrap 本身依赖于jQuery。当所有的 javascript 被加载时,页面可能已经被渲染了。
您可以做的一件事是尽量减少闪烁,使select元素的样式尽可能与最终产品相似,以便它们占用相同数量的屏幕空间。当插件加载时,它无论如何都会隐藏这个控件并用它自己的实现替换它。使用您要传递给selectpicker()函数和样式的选择器,如下所示:
.selectpicker {
width: 220px;
height:34px;
margin-bottom: 10px;
}

注意:我故意通过使用延迟加载时间,setTimeout因此差异更加明显。
setTimeout(function() { $(".selectpicker").selectpicker(); }, 500);
如果这仍然不可接受,您可以显示加载图形,直到页面完全加载。
改编自加载屏幕示例:
将此添加到您的 HTML:
<div id="loader"></div>
在 CSS 中这样设置样式:
#loader {
position: fixed;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
z-index: 9999;
background: url('http://i.imgur.com/ntIrgYXs.gif') 50% 50% no-repeat grey;
}
加载页面后,使用以下 JavaScript 将其删除:
$("#loader").fadeOut("slow");