私は何か間違っているかどうかわかりませんが、JSの中では実際に使っていませんが、dbに行があるかどうかを5秒ごとにチェックしたいと思います条件が満たされていないときにajaxコールを使用します。javascript do whileがハングしてブラウザがメモリ不足になる
これは私の呼び出しです:エントリはデシベルで、それがモーダルポップアップを閉じますどのtrueにcheckForDocを設定しない場合は、存在する場合
var checkForDoc = false;
var i = 0;
do {
$timeout(function() {
$http({
url: 'http://localhost:52876/api/Admin/CheckForDoc',
method: "POST",
async: false,
params: { loanID: $scope.loanIdPopup }
}).success(function (data, status) {
if (data === 'OK') {
checkForDoc = true;
}
else{
i++;
}
if (i == 23) {
checkForDoc = true;
}
}).error(function (data, status) {
console.log(data);
});
}, 5000);
} while (!checkForDoc);
if (checkForDoc) {
$uibModalInstance.close();
}
だから私は、5秒ごとにチェックしたいと思います。 2分後に行が存在しない場合はポップアップも閉じますが、最初に述べたように、デバッガのdo行に到達すると、ブラウザは応答を停止し、しばらくしてこのメッセージが表示されます
感謝と幸せな休日の誰も
私は、「while」ループを実行するたびに「健全性チェック」変数を追加することを常にお勧めします。 'while(何でも){sanityCheck ++; if(sanityCheck> 100)デバッガ。 *残りのループ*} 'このプラクティスは、ブラウザーのクラッシュからあなたを救うことができ、何が起こっているのかを調べることができるように問題点ですぐに一時停止します。 – machineghost