前提
JavaScriptを用いて自社ショッピングサイトの販売情報を取得する拡張機能を作っています。
実現したいこと
- 繰り返し処理(ループ)してしまう原因を突き止めたい
発生している問題・エラーメッセージ
Window.onloadとSettimeoutを用いてちゃんとページがローディングされたことが確証されてからDOMの収集処理を行うようにしていますが、なぜか1秒おきにループしてしまうのです。
・window.onloadは1回しか動かないことは、ネットで検索して調べました
・SetIntervalはループするが、setTimeoutはループしない認識です
なので、なぜループしてしまうのかが分かりません。
該当のソースコード
JavaScript
1/** 2 * Initialize 3 */ 4let MYSERVER_HOST_0 = "http://localhost:8030" 5let MYSERVER_HOST_1 = "https://" 6 7let hostName = MYSERVER_HOST_0 8 9 10 11/** 12 * Start the process 13 */ 14window.onload = function(){ 15 console.log("読み込んだよ") 16 17 18 //ちゃんとロード後に動かしたいため、念のためロード連絡後、1秒待つ 19 setTimeout(function(){ 20 console.log("1秒経ちましたので、処理開始します。") 21 22 let colorSizeVariation = document.getElementsByTagName("li") 23 dd(colorSizeVariation) 24 25 for(let i = 0; i < colorSizeVariation.length; ++i){ 26 //dd(colorSizeVariation[i].outerHTML) 27 } 28 29 30 //------------------------------------ 31 //販売状況を通知 32 //------------------------------------ 33 $(function(){ 34 $.ajax({ 35 type: "post", 36 url: hostName + "http://localhost:8030/api/....., 37 data: { 38 "data" : colorSizeVariation 39 }, 40 dataType : "json" 41 }).done(function(data){ 42 console.log(data); 43 dd("3秒後に管理ページに戻ります。"); 44 setTimeout(function(){ 45 alert("デバッグ用アラート:window.location = hostName + "); 46 }, 3000); 47 }).fail(function(XMLHttpRequest, status, e){ 48 //alert(e); 49 console.log("[ERR]: " + e); 50 }); 51 }); 52 53 console.log("END"); 54 }, 1000); 55} 56 57function dd(str){ 58 console.log(str); 59}
補足情報(FW/ツールのバージョンなど)
使用言語:JavaScript(Chrome 拡張機能)
なぜループしてしまうのでしょうか?知見をお持ちの方がおりましたら、ご教授いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー