目前浏览器都是在UI线程解析js,以火狐浏览器为例,我重新编译了js引擎,并且在js引警中添加了sleep方法,该方法调用c语言的线程睡眠函数.
将方法附加到Object上,方法签名为sleep();无参数.默认休眠1秒钟,如果你在js中调用该函数,浏览器UI界面将被阻碍。
另外如果你的js函数存在死循环,浏览器的js解析会检测到js执行超时会提醒你是否终止执行本页面的js.
最后提供新编译的js引擎,将它们替换firefox下的js引擎即可.
然后你可以写一段js玩一玩,比如"testSleep".sleep();因为我是在Object添加的,所以你可以在任何js对象上调用这个函数.
使用说明:
主要是需要网站访问者需要安装您定制的浏览器。
你自已发布火狐客户端不就行了,如果你的项目真需要.
必须指定我们自已的浏览器,就像要求用户必须安装flash插件一样简单.
附件:firefox_js.rar