だから私はJavascriptで(私の観点から)かなり複雑なクライアント側のWebアプリを構築しています。
プログラムが基本的に行うことは、ユーザーから (かなり巨大な) 文字列データのセットを取得し、ユーザーからキーワードのリストを取得し、検索を実行して true/false の配列を返すことです。
非常に明白に、そのように機能します:
var userData = ["lorem ipsum", "dolor sit amet", " consectetur adipisicing"];
var userKeywords = ["et","or"];
var isMatch = false;
for (var x in userData){
var y = 0;
while (y<userKeywords.length && !isMatch){
isMatch = (userData[x].match(userKeywords[y]) !== null)? true : false;
y++;
}
}
// That would return [true, true, true]
(それはあなたに主なアイデアを与えるためでした)
かなり大量のデータ (50K ++) とキーワード (~50) を扱っているため、私のプログラムは数分間実行できます。巨大なプログラムが実行されているときにパニックに陥ったり待ったりしないことはわかっていますが、私のユーザーはそうしません...
そのため、基本的なプログレス バーのようにプログラムが実行されているときに、プログラムの実行に関するフィードバックを提供したかったのですが、方法が見つかりませんでした。
プログラムに実行を依頼しているタスクの長さを計算し、カウンターをインクリメントして結果を DOM に投稿できることはわかっていますが、ループ内で DOM にアクセスするのは問題ではないでしょうか?
var userData = ["lorem ipsum", "dolor sit amet", " consectetur adipisicing"];
var userKeywords = ["et","or"];
var isMatch = false;
var myTask = userData.length * userKeywords.length ;
var myCounter = 0;
for (var x in userData){
var y = 0;
while (y<userKeywords.length && !isMatch){
isMatch = (userData[x].match(userKeywords[y]) !== null)? true : false;
y++;
myCounter++;
console.log("Ran " + myCounter + " calculations out of " + myTask);
}
}
では、プログラムの実行についてユーザーにフィードバックするにはどうすればよいでしょうか? ありがとう!