javascript 的 线程
首先我想实现一个有优先级队列/缓存/对象池的   connection   manager。   
 但现在受困于javascript的单线程。   
 场景1: 
 一个队列正逐个pop   command   去fire   request。这时候需要响应用户操作在两个command中插入一个高优先级的command。   
 思路1:一个command完了有一个interval,这段时间内有操作的话fire一个request,用它的回调更改这个command   queue。 
 思路2:一个command完了有一个interval,这段时间内有操作的话更改这个command   queue,将这个队列锁住,interval延长,完成后queue解锁,直接跑下一个command。   
 关键:interval内用户必须执行操作,要不command只能下次加入队列了。还是单线的   :)   
 场景2   : 
 在一个异步回调中不能发请求,有没有办法hack一下?这样我只用在主线程管队列,callback的线程里连接干活了。。   
 场景3: 
 队列正在工作,按序发请求,最后来了个command,要abort掉前面的操作,但send后服务器已经开始工作了,有什么办法可以让服务器停止处理这个请求么?     
 都是些粗浅的想法,大虾见笑了,纯属抛砖引玉~
------解决方案--------------------如果你要用多线程,模拟得真实一些的话,可以试试用iframe来实现
------解决方案--------------------:D 
 iframe果然不错。不过IE的alert很BT呢。。   
  <iframe style= "display:none; ">  </iframe>  
  <script type= "text/javascript ">  
 window.onload = function () { 
 	var frame = window.frames[0], i = 0; 
 	var func = frame.window.func = function () { 
 		document.getElementById( "status ").innerHTML = i ++; 
 		frame.window.setTimeout(func, 1000); 
 	} 
 	frame.window.func(); 
 	window.setTimeout( "alert(1) ", 5000); 
 }; 
  </script>  
  <div id= "status ">  </div>
------解决方案--------------------虽然和我发的那个执行iframe的setTimeout不同不过FF的alert和IE的不同。。。 
 对于 
 2. 先前贴子里那个alert阻塞了哪个线程? 问题。。应该已经是答案了吧。。   
 对于XMLHTTP貌似可以实现多线程的效果。。。不过没具体测试过。。。 
 因为它可以实现一次弹出多个alert(在IE里) 
 http://www.zhb.org.cn/wc/ajax/ 
 这个是xmlHTTP的测试。。IE是若干个alert,FF则是一个。。。   
 下面的code是测试iframe的IE和FF差别结果。。   
  <iframe style= "display:none; ">  </iframe>  
  <script type= "text/javascript ">  
 window.onload = function () { 
 	var frame = window.frames[0], i = 0; 
 	var func = frame.window.func = function () { 
 		document.getElementById( "status ").innerHTML = i ++; 
 		frame.window.setTimeout(func, 1000); //这个IFRAME的ALERT不会阻止 
 		//另外iframe里还可以这样写IE则不行 
 		//*****this.setTimeout(this.func, 1000)  		 
 		//window.setTimeout(func, 1000); //这个则会阻止 
 	} 
 	frame.window.func(); 
 	window.setTimeout( "alert(1) ", 5000); 
 }; 
  </script>  
  <div id= "status ">  </div>
------解决方案--------------------  1. 异步回调是不是多线程? 
 2. 先前贴子里那个alert阻塞了哪个线程?   
 首先,一个page在脚本运行只有一个thread,如果能够调用activeX做的muti-thread,那是另外一回事。   
 应该说这两个问题都是不属于脚本方面的事了 
 因为如果你用XMLHTTP的话,XMLHTTP的异步是ActiveX(ie7.0以下版本)管的事,activeX拥有多线程的性质。ActiveX本身的性质发出的request,属脚本不可控制范围(除了几个API)。但如果回到脚本之后,仍然是单线程。   
 题外的一些话:alert在IE里和mozilla里都不一样的,但它们的参考里都是这个意思: 
 Displays a dialog box containing an application-defined message。 
 但mozilla和IE的kernel不同,这得看具体情况而定   
 about: 
 Iframe很好 
 用Iframe处理可以并行的发一些请求,但本身自己的复杂性至少要上升一个数量级? 
 包括sibling间的交互.top-iframes间的交互。   
 这个要看怎么处理了,这中间多了一个交互的代码,关键看怎么处理和控制iframe。封装得好的话应该问题不大,把iframe看作是一个thread对象,用一个object来管理,用一个array当作线程池。