この記事は、javascriptのプログラミング記事です。日々、webサイトのプログラミングをしています。そこでの出来事です。
Chromeのjavascriptをデバッグしていると、タイトルにあるような違反メッセージがよく表示されます。黄色で表示されます。何か気持ち悪いメッセージのため、調べてみました。と言ってもしっかり調べたわけではありません。
少しかじった程度ですが、気にしなくてもいいようなメッセージのようです。
以下のサンプルですが、
これは、'load'ハンドラーで処理時間が591msかかっていますというメッセージで、だからと言って、特にどうこうしなさいという強制的なことではないようです。
確かに、このロードを完了するまで591msかかっていますが、この時間は単にロードするだけにしては、コンピュータにとっては長い時間のようです。
この長い時間は、auto_start()に時間がかかっているからです。実は、このauto_start()では、初期処理を行っています。これに時間がかかっているためです。javascriptエンジンではこんなことにも神経を使っているのかと感心しました。
一つの処理に長時間かけるのはよくないのかもしれません。
確かにこの間に、多くのリスナーの登録を行っています。それらに時間がかかっています。でも、たかだか591msですが。
1秒もかかってはいませんが、コンピュータにとっては長いのでしょうね。
一つのイベント処理に長時間かけてはよくないのかもしれません。
たとえば、クリックのイベントリスナーでもこのViolationメッセージは表示されます。
サンプル1
[Violation] 'load' handler took 591ms
window.addEventListener('load', function () {
console.log("▼操作卓▼ 61 スクリプト実行 auto_start()");
auto_start("yL0hMUSgjFU");
});
次のサンプルは、
サンプル2
09:54:21.077 menu_test.js:1421 [Violation] 'click' handler took 11530ms
document.querySelector("#status").addEventListener('click', () => {
alert("ページでクリックされました。");
return false;
});
これは、このClickリスナーで、alert()メッセージを表示していますが、この時、中々OKボタンを押さないでいると上記のような11530msというメッセージが表示されます。約11秒間押さなかったので、このリスナー処理が終了しなかったためです。
デバッガーでは様々なエラーや警告メッセージが表示されています。日々、それらのエラーと格闘しています。最近、頭の中がこんがらがって来ています。中々、エラーが取れないからです。ソースコードもぐちゃぐちゃになっています。いちから作り直すのも面倒なので、ある程度動作したら、一度、整理をしたいとは思っていますが、果たして実行できるか、不安もあります。