次のような状況があります (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.
ヘルプ/手がかりをいただければ幸いです。
乾杯、別のオタク。