Jquery 应该使用什么策略来最小化页面初始化抖动?

Jquery 应该使用什么策略来最小化页面初始化抖动?,jquery,html,Jquery,Html,当使用诸如jQuery/UI之类的框架(例如按钮小部件)时,页面将随着页面加载处理布局而抖动。我想知道什么是最好的策略,以尽量减少这一点 我将body标记设置为display:none,然后将$(function(){${'body').show();})设置为有效,尽管我不得不怀疑是否有更好的方法。最无缝的解决方案是为元素提供jQueryUI在初始化后提供的类/结构 以jQuery UI按钮为例,下面是: <input type="submit" value="A submit butt

当使用诸如jQuery/UI之类的框架(例如按钮小部件)时,页面将随着页面加载处理布局而抖动。我想知道什么是最好的策略,以尽量减少这一点


我将
body
标记设置为
display:none
,然后将
$(function(){${'body').show();})
设置为有效,尽管我不得不怀疑是否有更好的方法。

最无缝的解决方案是为元素提供jQueryUI在初始化后提供的类/结构

以jQuery UI按钮为例,下面是:

<input type="submit" value="A submit button" />

下面是:

<input type="submit" value="A submit button" class="ui-button ui-widget ui-state-default ui-corner-all" role="button" aria-disabled="false">


如果在实际html中使用after而不是before,则抖动(也称为FOUC)当您使用jQuery UI初始化该按钮时,该按钮将不再出现,因为它已经有了类。

不确定,但这似乎是一种经常使用的方法。我注意到许多站点在其元素完全加载之前不会显示数据。如果您为元素提供jQuery UI在初始化时将提供的类/结构如果将它们具体化,抖动将不那么明显,甚至可能消失。谢谢Kevin,对于简单的按钮来说,这是一个很好的解决方案,但是对于更复杂的元素,比如表(我使用jqGrid)呢还有jQuery/UI选项卡控件?你认为像我现在这样使用隐藏/显示
body
有什么内在的危险吗?在这种情况下,尽管你得到了一个FOWC:)嗯,隐藏/显示body并不能真正阻止FOUC,它只是使它更加统一。你可以在所有jQuery UI内容上使用同样的技术(包括选项卡),但是对于网格,您可以通过隐藏网格本身直到它准备好,或者让它最初以“加载…”状态显示,从而使其变得更好。