2016-07-22 19 views
0

私はこの奇妙な問題を抱えています。私はアプリケーションがあり、開始ページからwindow.openをやっています。私は以下のようにコードを書かれている:Window.openポップアップでデスクトップ全体がフリーズする

i=1; 
while i>0 
{ 
if (!mywindow.closed) 
{ 
mywindow.focus() 
} 
else { 
1--; 
} 

} 

これは、それが閉じている場合を除き、ポップアップウィンドウが常に焦点にとどまることを確認することです。 しかし、問題は、ポップがそこにあるとき、デスクトップ全体がフリーズしているということです。私たちはそれを閉じるまで何もしません。デスクトップ全体ではなくアプリケーションをフリーズすることを意図していました。どうすればこの問題を解決できますか?前もって感謝します。

+0

あなたのコードで '1 - 'は実際に 'i - 'ですか? – Jacob

答えて

1

JavaScriptはマルチスレッドではありません。 whileループを実行すると、JavaScriptの実行全体が拘束されます。つまり、mywindow.closedは変更されることはありません。

変化するものに応答する場合は、ポーリングループを使用しないでください。代わりにイベントを使用してください:

// Not sure if this would work, but illustrates using events. 
mywindow.addEventListener('blur', function() { 
    mywindow.focus(); 
}); 
+0

こんにちは、お返事ありがとうございます。私の問題はアプリケーションではなく、デスクトップ全体をフリーズしています。ポップアップが閉じられていない限り、自分のメールをチェックしたり、ドキュメントやその他のものを開いたりすることができません。それは期待されていますか? – Tiya

+0

その小さなループはできるだけ多くのCPUを占有します。デスクトップがフリーズするかどうかは、スペアCPUが残っているかどうかによって決まります。したがって、それが起こっているのは理にかなっています。 – Jacob

+0

それはそれを説明します。ありがとうございました。 :) – Tiya

関連する問題