質問

誰もが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 図解例 上記のナンセンスの:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top