8

次のコードにのコードにブレークポイントを追加しました。私はconsole.log("...")が実行される前に毎回クロムがそこに止まると思った。しかし、私の驚きには、それは1回だけ止まります。例をテストするにはChromeデバッガが停止しません

  1. 実行この時点で、クローム
  2. で以下のスニペット
  3. Chromeを開き、開発ツール
  4. ドラッグドロップエリア内の別のWebサイトから画像

クロムはブレークポイントで停止します。しかし、コンソールを見ると、console.logステートメントが2回以上実行されたことがわかります。

なぜこのようなことが起こっているのですか。 (スレッディングの問題??)

この行でコードをデバッグしたい場合、どうすればこの問題を解決できますか?

$(document).ready(function() { 
 

 
    $('#drop-area').on("dragover", function(event) { 
 
    event.preventDefault(); 
 
    event.stopPropagation(); 
 
    $(this).addClass('dragging'); 
 
    }); 
 

 
    $('#drop-area').on("dragleave", function(event) { 
 
    event.preventDefault(); 
 
    event.stopPropagation(); 
 
    $(this).removeClass('dragging'); 
 
    }); 
 

 
    $('#drop-area').on("drop", function(event) { 
 
    event.preventDefault(); 
 
    event.stopPropagation(); 
 

 
    var count = 1; 
 
    var dropObj = event.originalEvent.dataTransfer; 
 
    for (var i = 0; i < dropObj.items.length; i++) { 
 
     var aDropItm = dropObj.items[i]; 
 
     if (aDropItm.kind == "file") { 
 
     //ignore 
 
     } else { 
 
     aDropItm.getAsString(function(_str) { 
 
      debugger; //The debugger should stop here every time before the string is printed to the console 
 
      console.log("This was called [" + count++ + "] times"); 
 
     }); 
 
     } 
 
    } 
 
    }); 
 

 
});
#drop-area { 
 
    background-color: red; 
 
    width: 400px; 
 
    height: 400px; 
 
}
<div id="drop-area">Drop files here...</div> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

EDIT
私はここにこれをバグとして報告:問題はもう起こらない https://bugs.chromium.org/p/chromium/issues/detail?id=748923

+1

[Chromium buglist](https://bugs.chromium.org/p/chromium/issues/list)のクイック検索がソースマップ([ex](https:// bugs) .chromium.org/p/chromium/issues/detail?id = 459499))、これはここでプレーしていません。誰も明白な何かを指摘していない場合は、おそらくそこに報告する価値があります。最適化の結果であれば驚くことはありませんが、その中に 'debugger;'ステートメントで最適化されたコードを見るのは驚くべきことです。 –

+1

私はそれがバグか私の間違いであるかわかりませんでした。私が解決策に来ないと、私はバグリストに投稿します。 – Lars

+0

クロムバグへのリンクをここに追加して、他の人が見つけられるようにしてください:) "回答" – styfle

答えて

1

。それはクロムのバグだったようだ。

関連する問題