在加载整个网站之前'加载'div

时间:2011-10-12 02:58:43

标签: jquery ajax

在加载所有文件(图像,脚本,js文件)时,有没有办法显示加载DIV?

实际上我认为可以用jQuery / AJAX完成,但我不确定是因为我还没有找到任何解决方案。

一个很好的例子是Google Adwords(对于那些在那里拥有帐户的人)。

我的脚本有很多图像和js文件,如果你问我这些文件中的一些非常重,所以我想在所有内容加载时向用户显示一些内容。

注意:我不认为SetTimeout是完美的解决方案,因为它不是真正的工作 - 它只是模拟它。

2 个答案:

答案 0 :(得分:3)

jQuery有几种方法可以处理这个问题。我认为最简单的方法是创建<div id="loading">并使用高z-index来覆盖您的网页。然后,使用

 $(window).load(function() { 
     $('#loading').hide(); 
 });

在文档完全加载时隐藏它。

注意:这不一定等到所有javascript方法都已完成处理。它将在从服务器接收到图像,JS文件等之后触发。但是,如果你有一个繁重的JS方法来处理页面(例如包装div中的每个单词,然后对此进行复杂的算法),那么你需要在该方法的末尾插入一个隐藏加载对话框的回调。

答案 1 :(得分:0)

我通常使用以下方法:放置2个div:一个容器和一个加载div。装载div应该具有位置:固定在css中并使其占据100%的宽度和高度。

在加载时,我会添加:

$("#container").load(url, myFunction);

其中“url”是应该注入容器div的HTML 片段(不是完整页面)的路径。 myFunction是一个函数指针,应包含如下内容:

$("#loading").fadeOut(500);

将加载div淡出500 ms。

请确保调用$(document).load()而不是$(document).ready(),因为ready会在加载图像之前触发。