我有一个从数据库中获取信息的页面。它导出了大量信息,因此加载需要几秒钟。我确实有一个动画,但它的表现并不像我希望它的表现。当用户点击链接时,我希望立即加载动画,直到页面上的数据实际加载为止。
这是它实际做的事情: 当我点击链接时,我等待5秒钟,然后页面加载动画,然后加载数据。问题是我想让动画立即运行,而不是等待5秒,然后运行半秒,然后加载数据。
这是我目前的JQuery代码:
$(document).ready(function() {
$("#content").hide();
$(window).load(function() {
$("#content").show();
$("#content-loading").hide();
})
})
内容是加载需要一段时间的内容,内容加载有加载动画。
答案 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/
如果你想添加一个载荷.....看这个。