私は次のようなjs関数を作成しています:
-新しいdivを作成します-
新しく作成されたdivのxy座標を既存の他のdivと比較します
-デフォルトの座標が既存のdivによってすでに占有されている場合は、新しいdivを斜めにバンプします
したがって、ボタンをクリックして新しいdiv(ドラッグ可能なボックス)を作成した場合、ページ上にすでにあるすべてのボックスの座標をすばやくスキャンし、すでに座標が含まれているボックスを見つけた場合は、ページに配置されている新しいボックスの、その新しいボックスを少し左下にぶつけます。最初のバンプがそれをさらに別のボックスに正確にドロップする場合に備えて、おそらくそれをループに入れます。
それが応答を磨くなら、私もjqueryを使用しています。私はすでにコーディングの方法を知っています。私の質問はアプローチです。
比較するためにどちらがより速く処理されるのだろうかと思います:
- 既存のすべてのdiv座標ペアがすでにjs配列に格納されており(div /ボックスがドラッグされると更新され、実際には次のアプローチを先制的に使用します)、インデックスが存在するかどうかをチェックする関数を実行します
-または- - すべてのボックスdivをループするjs関数(すべてに共通のcssクラスがあります)、ページ上で直接すべての既存のdiv座標をチェックします(配列に格納されているものを探すのとは異なります)
他の理由で座標を配列に格納する必要はないので、そもそもそれが望ましいアプローチでなければ、それは不要です。座標を配列に格納することは、基本的に後者のアプローチと同じプロセスを実行しますが、その配列を突き抜けるjavascriptが、最初に座標をチェックするプロセスよりも高速であるかどうかを知りたいです。
パフォーマンスの違いは特に重要ではないと思いますが、どちらのアプローチが賢明か興味があります。