計算に時間がかかるから、連続クリック防止に計算ボタンを無効化しようと思ったら全然できない。
disabledにtrueを代入しても反映されるのは関数終了後っぽい?
普通に連続クリックしたら有効なまま連続処理入って大変な重さに。
これはもうjsとかブラウザの仕様なんかなぁ。なんのための無効化機能だよ。
あーこれjsの一大難題なんですね。
ページ移動とかsubmitで送信とかは見つけたけど僕の作ろうとしてるのとちょっと合わないので自分で考えた結果。
// HTML内のボタンの記述 // onclick="this.disabled = true; // setTimeout('searchPID()', 10); // this.disabled = false;" comp = 0x01234567; searchPID(){ if(comp == inputPID) return false; else comp = inputPID; // 超計算するよ! }
入力値が前回と変わっていない場合、関数を失敗させることにしました。
連続クリックされるとやっぱり重くなるんだけど、alert()してると処理がダブってるわけではないみたい。
じゃあなんで重くなるのって感じなんですが。nanndedaro...
処理はsetTimeoutで最後に回しているので、連続2回目以降はinputが同じなので処理されなくなります。
でも肝心の重さ対策が何にも出来てないから困る。ていうか防ぎようがあるのか。
その他。
検索結果の候補数を表示するようにした。
計算回数を半分に削減した。
ちょっと書き忘れで計算範囲も半分になっているので現状1/4ぐらい。ちゃんと1/2にしなくては。
適当に検索したら9000個とかヒットしたけど見なかったことにする。
予定。
ぶちの位置を固定して計算できるようにする。
色違いに対応させる。
結果をクリップボードへコピーできるようにする。