我有以下情况(另见 jsFiddle -> http://jsfiddle.net/sMuWK/):
function CallBackStringHandler() {
this.callback = function(){return null};
};
CallBackStringHandler.prototype.doTheMagic = function(callback) {
var result = callback.call(this);
if(result == null)
alert("Nothing to handle yet...");
else
alert("End the result is: \n\n" + result);
};
function Action(){
var result = null;
var max = 10;
var index = 0;
var processor = setInterval(function(){
if(index <= max){ //Processing step
if(result == null)
result = "" + index;
else
result += index;
index++;
} else { //Done
clearInterval(processor);
alert(result);
}
},10);
return result;
};
function Run(){
var handler = new CallBackStringHandler();
handler.doTheMagic(Action);
};
Run();
脚本(一个 jQuery 插件)允许您指定一个必须返回字符串的回调。该字符串将由该脚本处理。
到目前为止,一切都很好。
为了性能和保持我的页面响应,我想以多线程方式构建这个字符串。由于这还不是 Web 标准,所以我在 setInterval 的帮助下进行了模拟。
现在才知道,这样做事的本质,不是等待结果。
但是我想不出一种方法来保持响应和快速并将完整结果返回给处理程序。
所以最终结果(在这个例子中)应该显示:012345678910。
任何帮助/线索将不胜感激。
干杯,另一个书呆子。