当使用sync方式的ajax加载时会导致dom操作被挂起,有此问题的浏览器有chrome,IE8,9等(未详测),
举例:
代码如下 | 复制代码 |
dialog = new Dialog({}).open(); // sync方式的ajax $.ajax({ url: "some/url", async: false, // load data with sync call // other params }); |
以上代码中,dialog是个对话框对象,正常情况下应该是先弹出对话框,然后执行ajax,但这个地方ajax使用了sync方式就会出现只有在ajax请求结束后才弹出框的问题(dom更新是需要时间的,在此可以看出某些浏览器中其优先级低于sync方式的ajax)。
解决方法有二:
1.给sync的ajax设置timeout,比如10ms,2.使用async(异步)方式
时间: 2024-10-26 20:51:19