【发布时间】:2009-03-15 07:24:47
【问题描述】:
我想知道在脚本执行期间如何在用户屏幕上显示启动画面(如 gif 或 jpeg 文件)。
感谢您的帮助。
【问题讨论】:
-
你能说得更具体点吗?你是说 AJAX 加载器吗?
标签: php javascript jsp splash-screen
我想知道在脚本执行期间如何在用户屏幕上显示启动画面(如 gif 或 jpeg 文件)。
感谢您的帮助。
【问题讨论】:
标签: php javascript jsp splash-screen
诀窍是在启动启动显示后让渲染重新绘制,然后再继续长时间运行的 JS。为此,您可以使用 setTimeout 方法。
例如,假设您的初始显示位于显示样式为 none 的 div 中,您可以使用此函数来运行您的代码:-
function splash(splashDivId, fn)
{
var splashDiv = document.getElementById(splashDivId)
splashDiv.style.display = "block";
setTimeout(function() {
fn()
splashDiv.style.display = "none";
}, 100);
}
用法:-
splash("mySplashDiv", longRunner)
function longRunner()
{
//This may take a while
}
【讨论】:
我不知道现有的脚本,但我可以告诉你如何实现启动画面。
我建议使用JQuery,因为这是我选择的 JS 库,但其他的也不错。
首先,在您的 JS 方法中,您需要显示弹出窗口。您可以使用 JQuery Dialog widget 来完成此操作。用同样的方法,进行 ajax 调用。 Ajax 本质上是异步的,因此为调用完成和调用出错时设置一个方法。在这两种方法中,您应该做的第一件事是隐藏模式弹出窗口。
现在,还有最后一个技巧 - 您希望在意外情况下优雅地失败,例如失去连接。因此,当您显示对话时,您还需要设置一个javascript timeout 来处理任何错误情况,这样对话就不会永久显示。该方法应该只检查对话是否可见,如果是,则隐藏它(并可能显示错误消息)。
我希望这些信息足以让您继续前进。即使您是 JavaScript 新手,这也是一个值得学习的好项目,因为它应该不会太难。
【讨论】:
我使用 jQuery blockUI 插件来完成您所描述的。看看这些例子吧,它是高度可定制的,占用空间很小,并且可以通过简单的小调用来执行奇迹。
【讨论】: