Javascript 我没那么快就清醒过来

Javascript 我没那么快就清醒过来,javascript,jquery,internet-explorer,dom,Javascript,Jquery,Internet Explorer,Dom,我也有同样的问题。 这是DOM在IE中刷新速度不够快的问题 第一步,jQuery(“内容”).mask(“处理…”) 第二步,ajax 第三步,jQuery(“#content”).unmask() 我在第一步设置了一个断点。 按下调试按钮[跳过]后 mask div在firefox中立即显示,而在IE和chrome中则不显示 修正了这个问题,通过调焦面具div后调用加载它??? 你能详细解释一下吗? 一些操作,比如jQuery(“#content”).focus() 原谅我的英语不好。IE通常

我也有同样的问题。 这是DOM在IE中刷新速度不够快的问题

第一步,jQuery(“内容”).mask(“处理…”)

第二步,ajax

第三步,jQuery(“#content”).unmask()

我在第一步设置了一个断点。 按下调试按钮[跳过]后 mask div在firefox中立即显示,而在IE和chrome中则不显示

修正了这个问题,通过调焦面具div后调用加载它??? 你能详细解释一下吗? 一些操作,比如jQuery(“#content”).focus()


原谅我的英语不好。

IE通常会将屏幕上的更改延迟到Javascript线程完成之后。他们(微软)觉得这是一种优化。毕竟,顺序

  • 显示遮罩屏幕
  • 做些工作
  • 移除遮罩屏幕
  • 实现与相同的(永久)屏幕效果

  • 做些工作
  • 解决方案通过将控制权交还给IE本身来结束线程。通过调用
    setTimeout
    以0毫秒的延迟执行此操作

  • 显示遮罩屏幕
  • setTimeout以0毫秒延迟调用下一个函数
  • 做些工作
  • setTimeout以0毫秒延迟调用下一个函数
  • 移除遮罩屏幕

  • 如果这只是调试器中的一个问题,那么您应该知道,在单步执行调试器时,不同的浏览器会选择在不同的时间刷新页面。这是单步执行代码的工件,不会影响代码的正常运行。这不仅仅是调试器中的问题。删除断点后,firefox的工作方式与我预期的一样。在IE中,我看不到面具,就好像它从未出现过一样。