js中奇怪的问题 同步ajax,modal遮罩层
奇怪问题一
今天有一段js执行的时候出现了问题
$.ajax({ ..., async:false, ... }); $('#myModal').modal('hide'); loadcurrentpage();
发现这个模态框在一个机器上执行可以顺利隐藏,在另外一个机器上模态框确实顺利隐藏,而背景却依然呈现遮蔽状态。
我在网上找到了解释:
1.同步请求会迅速阻塞UI渲染 ,不给UI渲染执行时间:
浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉。当我们执行异步ajax的时候没有问题,但当设置为同步请求时,其他的动作(ajax函数后面的代码,还有渲染线程)都会停止下来。
2.分析:
第一句同步请求时候就阻塞了UI,。。。?
奇怪问题二:
在firefox中运行,new Date("2015 12 31") 是Date 2015-12-30T16:00:00.000Z;但是 运行 new Date(2015,12,31) 时候时间就变 Date 2016-01-30T16:00:00.000Z 了。