Javascript <;部门>;在睡眠方法之前不显示
我有一个Javascript <;部门>;在睡眠方法之前不显示,javascript,html,Javascript,Html,我有一个 <div id="myModal" class="modal"> <div class="modal-content"> <span class="close">×</span> <font size="6"> <p>Message Text</p>
<div id="myModal" class="modal">
<div class="modal-content">
<span class="close">×</span>
<font size="6">
<p>Message Text</p>
</font>
</div>
</div>
我从stackoverflow的某个地方获取的睡眠功能
function sleep(delay) {
var start = new Date().getTime();
while (new Date().getTime() < start + delay);
}
功能睡眠(延迟){
var start=new Date().getTime();
while(new Date().getTime()
这里我想要的是,当我单击按钮时,div显示,然后等待3秒,然后它保留代码,因为它会发布数据,然后返回到同一页,因为我在这里得到的是睡眠3秒,显示div,然后它几乎会立即刷新我的页面,这样就没有时间看到预期的消息。您正在阻止浏览器线程3秒钟,因此在完成之前它无法绘制更新 简单的规则是:永远不要阻止浏览器线程 任何时候你发现自己有这样的事情:
doSomething();
wait3Seconds();
doSomethingElse();
你真正想要的是:
也就是说,将代码安排在3秒钟后运行,而不是试图在3秒钟内阻止所有内容。阻塞是不好的。您正在阻塞浏览器线程3秒钟,因此在完成之前它无法绘制更新 简单的规则是:永远不要阻止浏览器线程 任何时候你发现自己有这样的事情:
doSomething();
wait3Seconds();
doSomethingElse();
你真正想要的是:
也就是说,将代码安排在3秒钟后运行,而不是试图在3秒钟内阻止所有内容。阻塞不好。应该使用setTimeout完成
$("#ButtonID").click(function()
{
setTimeout(function() {
if (validate stuff) {//code here}
else {modal.style.display = "block";}
}, 3000);
});
应该使用setTimeout来完成
$("#ButtonID").click(function()
{
setTimeout(function() {
if (validate stuff) {//code here}
else {modal.style.display = "block";}
}, 3000);
});
您正在阻止浏览器线程3秒钟,因此在完成之前它无法绘制更新。不要像那样阻塞浏览器线程。如果希望某件事情在3秒后发生,请使用
setTimeout()
将其安排在3秒后发生。永远不要阻止线程。@David嗯,我想要的是在显示块后等待3秒钟,我已经找了几个小时了,有什么建议吗?你正在阻止浏览器线程3秒钟,所以在完成之前它无法绘制更新。不要像那样阻塞浏览器线程。如果希望某件事情在3秒后发生,请使用setTimeout()
将其安排在3秒后发生。永远不要阻塞线程。@David嗯,我想在显示阻塞后等待3秒钟,我已经找了几个小时了,有什么建议吗?