我创建了一个插件来显示DOM元素中的忙碌指示符,比如正文或div,但我对下面的情况有疑问
$("body").BusyIndicator(true,"Please wait")
validateAndSubmitForm();
$("body").BusyIndicator(true,"Saving")
问题是第一条消息"请稍候" 未显示,功能 validateAndSubmitForm 似乎会阻止浏览器,以及何时它已解锁,直接显示消息"正在保存"
有人知道如何确保在执行函数validateAndSubmitForm之前确实显示第一条消息?
答案 0 :(得分:4)
浏览器有一个线程来解释javascript并更新界面。它不能同时做到这两点。您必须花一些时间访问浏览器,以便更新界面:
$("body").BusyIndicator(true,"Please wait");
setTimeout(function() {
validateAndSubmitForm();
$("body").BusyIndicator(true,"Saving");
}, 0);
定时器为0的 setTimeout
告诉浏览器在能够更新界面之后尽快执行该功能(并做一些其他的事情,如处理用户输入,......)