質問
誰もがjqueryどこにあるか教えてもらえますか data()
データを保存し、いつ消去されますか?
これを使用してAJAXコールの結果を保存する場合、パフォーマンスの問題はありますか?
例えば:
$("body").data("test", { myData: 'abcd'});
解決
jqueryのコンテンツを参照してください
jquery.data()メソッドにより、円形の参照から安全な方法で任意のタイプのデータをDOM要素に添付することができます。 jQueryは、jqueryメソッドを介してDOM要素が削除されると、ユーザーがページを離れるときにデータが削除されることを保証します。単一の要素のいくつかの異なる値を設定して、後でそれらを取得できます。
他のヒント
すべてのデータは、のプロパティ内に保存されます jQuery
名前のオブジェクト cache
. 。の内容を記録します $.cache
コンソールで、任意のDOM要素に関連付けられているすべてのデータとイベントを確認します。
jQueryがこのキャッシュのオブジェクトとDOMオブジェクトをリンクする方法は、DOMオブジェクトを操作することです。入力要素があるとします
<input type="text" value="hello" />
「foo」という名前のデータキーがあります
$(e).data("foo", "bar");
これで、jQueryはフォームのランダムな文字列を維持します jQuery<current time in ms>
, 、 例えば、 jQuery1291790929680
, 、それにもアクセスできます $.expando
. 。 jQueryは、この拡張文字列を、関連するデータ項目またはイベントを備えた各DOMオブジェクトのキーとして追加します。したがって、上記の入力要素のDOMオブジェクトには、次のような整数値を備えたこの拡張キーが含まれます。
jQuery1291790929680: 4
4は単なるランダムな例ですが、この数値は $.cache
このDOMオブジェクトの関連データとイベントが保存されるオブジェクト。したがって、この情報を考えると、上記の入力要素のデータを取得するために、間接的に書くことができます。
$.cache[4]["foo"]
どちらが「バー」を返す必要があります。これは間接的な書き方です $(e).data("foo")
.
an 図解例 上記のナンセンスの:)