Javascript 为什么我会得到“闪光”;联合国;页面底部有JS的内容?

Javascript 为什么我会得到“闪光”;联合国;页面底部有JS的内容?,javascript,jquery,html,optimization,Javascript,Jquery,Html,Optimization,我之前在专业网站管理员上问过一个问题,关于使用jQuery的$(document.ready())时HTML的使用。答案是JS必须等待整个DOM加载,因此JS代码的位置没有区别 然而,实际上情况似乎并非如此。我正在使用一个表排序插件,当加载底部带有jQuery的页面时,我首先看到未排序的表。然后JS开始工作,对表格进行排序,并在标题中添加箭头(这也改变了表格的宽度)。这类似于CSS中经常出现的“FOUC”(未格式化内容的Flash) jQuery位于页面顶部时,页面加载时表已排序,没有跳跃 为什

我之前在专业网站管理员上问过一个问题,关于使用jQuery的
$(document.ready()
)时HTML的使用。答案是JS必须等待整个DOM加载,因此JS代码的位置没有区别

然而,实际上情况似乎并非如此。我正在使用一个表排序插件,当加载底部带有jQuery的页面时,我首先看到未排序的表。然后JS开始工作,对表格进行排序,并在标题中添加箭头(这也改变了表格的宽度)。这类似于CSS中经常出现的“FOUC”(未格式化内容的Flash)

jQuery位于页面顶部时,页面加载时表已排序,没有跳跃


为什么会发生这种情况?不管怎样,保持JS在顶部的唯一解决方案是什么?

另一个选项是保持表隐藏,然后使其作为$(document).Ready()中的最后一条语句可见

JavaScript通常保存在页面的底部,以便在JS处理开始之前让页面显示基本样式和内容


如果在JS运行之前需要正确显示表的内容,那么唯一的实际选择是使用适当的排序+样式来为表提供服务,而不是依赖JS为您提供服务。我建议无论如何都要这样做

另一个选项是隐藏表,然后使其作为$(document).Ready()中的最后一条语句可见

JavaScript通常保存在页面的底部,以便在JS处理开始之前让页面显示基本样式和内容


如果在JS运行之前需要正确显示表的内容,那么唯一的实际选择是使用适当的排序+样式来为表提供服务,而不是依赖JS为您提供服务。我建议无论如何都要这样做

之所以会发生这种情况,是因为一旦所有元素都放置在DOM中,文档就“准备就绪”,但不一定是在它们都完全加载之后。当库位于
标记中时,它将在插入DOM之前加载,但如果它位于
标记中,则在文档准备就绪时仍在加载

因此,即使文档准备就绪,它仍然必须完全加载库并执行所需的代码,这似乎比在
head
标记中花费的时间更长。事实上:这两种情况都会发生,但这种情况更明显

为防止出现差异:将页面的无javascript版本设置为与javascript版本相同(或尽可能接近相同)的样式


()

之所以会发生这种情况,是因为一旦所有元素都放置在DOM中,文档就“准备就绪”,但不一定是在它们都完全加载之后。当库位于
标记中时,它将在插入DOM之前加载,但如果它位于
标记中,则在文档准备就绪时仍在加载

因此,即使文档准备就绪,它仍然必须完全加载库并执行所需的代码,这似乎比在
head
标记中花费的时间更长。事实上:这两种情况都会发生,但这种情况更明显

为防止出现差异:将页面的无javascript版本设置为与javascript版本相同(或尽可能接近相同)的样式


()

您是否将代码包装在
$(文档)中。准备好了吗?如果您不需要,请将代码放在底部?如果您不需要,请将代码包装在
$(文档)中。准备好了吗,我通过将类添加到无论如何都会通过Javascript添加的标题中,解决了表大小调整问题。谢谢,我通过将类添加到无论如何都会通过Javascript添加的标题中,解决了表大小调整问题。