使用JQuery加载页面时显示动画

时间:2011-07-12 00:29:14

标签: javascript jquery html css

我有一个从数据库中获取信息的页面。它导出了大量信息,因此加载需要几秒钟。我确实有一个动画,但它的表现并不像我希望它的表现。当用户点击链接时,我希望立即加载动画,直到页面上的数据实际加载为止。

这是它实际做的事情: 当我点击链接时,我等待5秒钟,然后页面加载动画,然后加载数据。问题是我想让动画立即运行,而不是等待5秒,然后运行半秒,然后加载数据。

这是我目前的JQuery代码:

$(document).ready(function() {
  $("#content").hide();
  $(window).load(function() {
    $("#content").show();
    $("#content-loading").hide();
  })
})

内容是加载需要一段时间的内容,内容加载有加载动画。

3 个答案:

答案 0 :(得分:3)

$(document).ready()只会在DOM完成下载时运行,基本上是在页面末尾下载</html>时。如果您的数据库数据是页面的一部分,那么它将在DOM ready事件触发时加载。同时,$(window).load()将在页面上的所有资源都已加载时触发;所有图像,外部样式表等。

也许你可以在隐藏内容的数据之前有一个样式表,然后是在页面底部的内部样式表,在数据之后,这会使内容显示和#content-loading元素隐藏?

否则,您可以使用AJAX或框架以某种方式异步加载数据。

答案 1 :(得分:0)

在整个页面加载之前,你的动画不会运行(包括所有db的东西)。相反,加载一个只包含动画的页面,以及对db数据的AJAX调用。然后db调用是异步的。

答案 2 :(得分:0)

http://fgnass.github.io/spin.js/

如果你想添加一个载荷.....看这个。