Dati jQuery () di stoccaggio
-
10-10-2019 - |
Domanda
Può uno mi dove i negozi jquery data()
i dati e dire quando è ottenere cancellati e come?
C'è un problema di prestazioni se uso questo per memorizzare ajax risultato chiamata?
Ad esempio:
$("body").data("test", { myData: 'abcd'});
Soluzione
vedere il contenuto da jquery
Il metodo jQuery.data () ci dà la possibilità dati di qualsiasi tipo ad elementi DOM in un modo che è sicuro da riferimenti circolari e quindi senza perdite di memoria. jQuery assicura che i dati viene rimosso quando elementi DOM vengono rimossi tramite metodi jQuery, e quando le foglie utente pagina. Siamo in grado di impostare diversi valori distinti per un singolo elemento e recuperarli in seguito:
Altri suggerimenti
Tutti i dati sono memorizzati all'interno di una proprietà dell'oggetto jQuery
nome cache
. Entra il contenuto del $.cache
nella vostra console per vedere tutti i dati e gli eventi associati con qualsiasi elemento DOM.
Il modo jQuery collega un oggetto DOM con un oggetto in questa cache è manipolando l'oggetto DOM. Supponiamo di avere un elemento di input
<input type="text" value="hello" />
che ha una chiave di dati denominato "foo"
$(e).data("foo", "bar");
Ora jQuery mantiene una stringa casuale di forma jQuery<current time in ms>
, ad esempio, jQuery1291790929680
, che è accessibile da $.expando
anche. jQuery aggiunge questa stringa expando come una chiave per ogni oggetto DOM che ha un elemento di dati associato o evento. Quindi l'oggetto DOM per l'elemento di input sopra conterrà questa chiave expando con un valore intero tale:
jQuery1291790929680: 4
4 è solo un esempio casuale, ma questo numero indica un indice nell'oggetto $.cache
, in cui sono memorizzati i dati associati ed eventi per questo oggetto DOM. Quindi, dato queste informazioni, per recuperare i dati del elemento di input sopra, possiamo indirettamente scrivere:
$.cache[4]["foo"]
, che dovrebbe tornare "bar", che è un modo indiretto di scrivere $(e).data("foo")
.
illustrato esempio del dialogo sopra:)