js 执行一个耗时操作时,比如一个大的遍历,如何才能真正实现异步,让浏览器界面不会假死。 异步浏览器js 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 showbo 于 2014-11-12 10:22:05 编辑 setTimeout 也就相当于延后放到队列里面 这样做 是否相当于变相的自己切了时间片? 我想到了用html5中的worker对象,在后台线程中执行耗时逻辑,就不会影响页面渲染了 JS是单线程模型,settimeout也只是给延迟了而已,还是会卡顿页面。楼主可以了解下html5中的worker,这个可以让JS多线程。 用setTimeout还是可以很大程度上避免界面卡顿的,主体思想是把这个大任务分解成很多个小任务,等小任务做完了,大任务自然也就做完了。但是这种方法也会有其他方面的明显不足。还有一种解决方案就是把这种阻塞界面的耗时运算交给服务器做。 setTimeout 也就相当于延后放到队列里面 这样做 是否相当于变相的自己切了时间片?差不多这个意思,setTimeout会脱离当前执行环境变为异步回调,不会挂起UI,和多线程语言一样启动了一个另外一个线程执行长时间的任务不会导致ui线程假死#3贴错了代码。。应该是 var Connect = function () { var iMax = 10, jMax = 10, kMax = 1000, i = 1, j = 1, k = 1; execFor(iMax, jMax, kMax, i, j, k) };贴成for循环的了,和没改一样 css相对定位的令人十分疑惑的难题。。。 javascript document.getelementid() 为空或不是对象 widget开发中,浏览器如何解析icon 九宫游戏javascript代码 请教如何实现在一个按钮上触发的事件:1.单击第一次改变按钮的value值 2.单击第二次弹出新窗口? 一个进度条的问题 如何在当页面打开时,图片的大小自动填满屏幕??? 怎样编写一个ACTIVEX控件,用户下载以后操作加密狗?请大家指点 listbox的问题!! 请问window.onbeforeunload与$(window).unload区别 关于注册页面的实现问题 如何用正则表达式在字符串中筛选\"modifiedDate\":new Date(1347448176000)这段字符串并替换为空格。
setTimeout 也就相当于延后放到队列里面 这样做 是否相当于变相的自己切了时间片?
楼主可以了解下html5中的worker,这个可以让JS多线程。
用setTimeout还是可以很大程度上避免界面卡顿的,主体思想是把这个大任务分解成很多个小任务,等小任务做完了,大任务自然也就做完了。但是这种方法也会有其他方面的明显不足。
还有一种解决方案就是把这种阻塞界面的耗时运算交给服务器做。
setTimeout 也就相当于延后放到队列里面 这样做 是否相当于变相的自己切了时间片?差不多这个意思,setTimeout会脱离当前执行环境变为异步回调,不会挂起UI,和多线程语言一样启动了一个另外一个线程执行长时间的任务不会导致ui线程假死#3贴错了代码。。应该是
var Connect = function () {
var iMax = 10, jMax = 10, kMax = 1000, i = 1, j = 1, k = 1;
execFor(iMax, jMax, kMax, i, j, k)
};贴成for循环的了,和没改一样