请教一个JS执行顺序的问题

CallMe丶学渣 2018-02-27 03:51:01
下面代码片段是easyui GridView里面的一个按钮事件,本来目的是点击以后弹出遮罩层,然后执行提交动作,但是现在遇到的问题是点击了以后,先执行下面的代码,然后才弹出遮罩层(点击先弹出1,然后弹出123,然后1条数据执行成功!然后才弹出遮罩层),在调试状态下逐行执行代码的时候是正常的。
请大神指点一下.谢谢

text: '提交审批',
iconCls: 'icon-ok',
handler: function () {
$("#bg,.loading").show(); //弹出遮罩层
alert(“1”);
for (var i = 0; i < rows.length; i++) {
alert("123");
}
alert("1条数据提交成功!");
}
...全文
196 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2018-02-27
  • 打赏
  • 举报
回复
当然是异步请求比较好。 同步会阻塞浏览器对用户操作的响应。只有万不得以时才用
CallMe丶学渣 2018-02-27
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
页面的渲染线程与js代码的执行线程是互斥的。不会同时进行。 在一个js代码的线程中对页面元素的更改,要等到这个js代码的线程执行结束,页面才会重新渲染。 有的浏览器在用alert()或confirm()中断线程时页面也会重新渲染,(如ie浏览器) 但有的浏览器在中断线程时页面不会重新渲染,(如谷歌浏览器) 对于谷歌浏览器这种情况我们可以重新开一个线程,在新线程中弹出对话框

                    text: '提交审批',
                    iconCls: 'icon-ok',
                    handler: function () {
                        $("#bg,.loading").show();   //弹出遮罩层
                        setTimeout(function(){
	                        alert(“1”);
	                        for (var i = 0; i < rows.length; i++) {
	                            alert("123");
	                        }
	                        alert("1条数据提交成功!");
                        }, 0);
                    }

刚才试了一下,可以实现我需要的效果!非常感谢~ 另外问一下,这样写会不会有点非主流呢? 我的需求是这样的: 客户选择多条数据,然后ajax提交到后台进行处理,同时显示执行进度~ 我的想法是在循环里面进行多次ajax请求(同步),所以才出现了上面问的问题~ 还有一种是异步请求,然后再ajax的成功回调里面每次返回的时候判断一下所选的数据是否全部执行完成~ 哪种是常用写法呢?好久没写前端,实在不是很懂了。。
天际的海浪 2018-02-27
  • 打赏
  • 举报
回复
页面的渲染线程与js代码的执行线程是互斥的。不会同时进行。 在一个js代码的线程中对页面元素的更改,要等到这个js代码的线程执行结束,页面才会重新渲染。 有的浏览器在用alert()或confirm()中断线程时页面也会重新渲染,(如ie浏览器) 但有的浏览器在中断线程时页面不会重新渲染,(如谷歌浏览器) 对于谷歌浏览器这种情况我们可以重新开一个线程,在新线程中弹出对话框

                    text: '提交审批',
                    iconCls: 'icon-ok',
                    handler: function () {
                        $("#bg,.loading").show();   //弹出遮罩层
                        setTimeout(function(){
	                        alert(“1”);
	                        for (var i = 0; i < rows.length; i++) {
	                            alert("123");
	                        }
	                        alert("1条数据提交成功!");
                        }, 0);
                    }

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧