在DOM准备好但在呈现UI之前,如何使用jquery做些什么?

时间:2009-07-28 12:50:38

标签: javascript jquery

我有一个jQuery脚本,可以更改<img>的src属性和一些其他页面元素。

我的脚本使用$()连接到文档就绪回调。当我刷新页面时,我看到原始内容半秒钟。我想避免这种情况。

我的脚本是否有办法在之后执行,但 之前

5 个答案:

答案 0 :(得分:8)

不是真的,但你可以很好地假装它。尝试将图像设置为display ='none'。设置src属性后,可以使用$('#myImage')显示图像.show()。

答案 1 :(得分:3)

我不认为这是可能的。目前,浏览器在DOM构建完成之前就开始渲染UI。

答案 2 :(得分:2)

我会在渲染后立即隐藏身体......

<body>
<script type="text/javascript">document.body.style.display = 'none';</script>

然后在jQuery代码执行后显示它......

 $(document).ready(function() {
   // Whatever you gotta do here
   document.body.style.display = '';
 });

这将确保您的网站在禁用Javascript时正常运行。

答案 3 :(得分:1)

使用CSS属性隐藏您不想显示的内容:

display: none;

或者如果您不想弄乱页面的布局:

visibility: hidden;

有点难以延迟呈现UI的整个过程,因为网页的性能取决于UI的呈现速度。标签通常会阻止UI的呈现,因为Javascript解释器会通过您的代码,但这种情况可能发生得如此之快,以至于您无法获得所需的功能。

答案 4 :(得分:1)

顺便说一句,您通常可以在关闭标签后立即访问该元素。在较大的复合元素(如div)上,它可能已经开始渲染了。

<img src="nothin.jpg" id="dynamicImage" />
<script type="text/javascript">$('#dynamicImage').hide();</script>