等待脚本在另一个之前完全加载的正确方法是什么

时间:2012-11-25 04:33:49

标签: javascript jquery html

我正在制作一个由多个部分划分的网站

<div id='section-1' class='section'>web content</div>
<div id='section-2' class='section'>web content</div>

我的网页上有十个部分,当文档准备就绪时,每个部分的高度都设置为用户窗口高度

$('.section').height($(window).height());

我的网页上的某些效果(如幻灯片)需要计算部分的高度才能正常工作。因此,我总是在文档准备好的情况下使用类似的东西作为解决方案。

setTimeout(startslideshow,1000);
setTimeout(startanimations,1000); ...etc  

要确保幻灯片代码开始之前的部分高度是用户窗口高度,因为加载网页后,部分无法立即更改为用户窗口高度会在我的幻灯片代码中产生严重问题,例如错误的计算位置

因此,在页面加载后会出现这种情况,在一切正常工作之前,大约会有一秒钟被搞砸,我怎么能避免被用户看到?我尝试$(document).hide()$('html,body').hide(),然后在一秒后淡入,但我得到其他奇怪的问题,特别是在ipad上,我的固定位置顶部导航栏将始终变为“未修复”# 39;当用户滚动时。

由于我是一名自学者,我担心我的方法不典型。 我想知道真正的网络程序员在将网页划分到不同的部分并将其高度设置为窗口高度时通常会做什么,然后确保其他效果取决于部分高度的工作原理正确地避免等待高度变化一秒钟?

1 个答案:

答案 0 :(得分:2)

您应该查看chaining Asynchronous calls.

建议不要依赖于计时器,因为脚本可能在不同的浏览器,硬件等上以不同的速度执行。