Я назначаю некоторые данные html-объектам с помощью jquery, который я создаю, дело в том, что когда я вызываю метод из плагина, данные, которые я назначил, больше не находятся в объекте.Как долго данные jquery, присвоенные данными() живут?
ответ
Это полезно, чтобы понять, как работает .data()
, чтобы понять, как долго жизнь данных. Когда вы храните что-то с .data()
, он переходит во внутреннюю структуру данных javascript в jQuery. Таким образом, в этом отношении это всего лишь переменная javsacript, и она живет так долго, как и любая другая переменная javascript.
Это означает, что после того, как вы покинете страницу, она полностью исчезла - как и все другие переменные javascript.
Другим способом удаления данных может быть, если какой-либо код javascript специально удалил данные из структуры данных. Обычно это произойдет, если вы используете метод jQuery, который намеренно удаляет объект DOM. Это можно сделать с помощью $(elem).remove()
или с помощью $(elem).html("some html)
и любых других методов jQuery, которые удаляют элементы из DOM. Поскольку эти методы удаляют объекты из DOM, jQuery «очищает» информацию .data()
, связанную с этими элементами. Единственным исключением является .detach()
, который удаляет элемент из DOM, но не удаляет его .data()
. Это делается специально, чтобы вы могли удалить его из DOM, но сохраните его состояние, предположительно, чтобы его можно было вернуть в DOM где-то еще или через некоторое время.
Примечание: если вы удалите DOM элемент из DOM без использования функции JQuery (например .removeChild()
или путем присвоения .innerHTML
), JQuery не будет знать, что вы удалили эти элементы DOM, и информация .data()
не будет очищена вверх - это будет просто просто тратить пространство в памяти. Это не наносит никакого вреда, кроме потребления некоторой дополнительной памяти. Если информация .data()
содержит ссылки на другие элементы javascript или DOM, это может привести к еще большему утечке памяти.
Если вы используете .data()
, он создает один случай, когда вы хотите придерживаться методов jQuery для всего, что может привести к удалению элементов DOM.Обычно с jQuery вы можете смешивать/сопоставлять простые javascript и jQuery, но это один случай, когда вы не должны.
выпуск решен спасибо !! – Johangsl
данные, используя .data()
жизнь до тех пор, как:
Jquery по-прежнему на вашей странице. jQuery использует internal cache для данных, используя
.data()
. Это никогда не было в DOM.до тех пор, как элемент, который вы связаны данные по-прежнему вокруг или удалены в DOM, она была удалена
.detach()
вы не перезагрузите страницу. данные, хранящиеся в
.data()
, не сохраняются при перезагрузке страниц.
Из jQuery.data()
документации:
Метод
jQuery.data()
позволяет присоединить данные любого типа к элементам DOM в пути, который является безопасным из циклических ссылок и, следовательно, свободны от утечек памяти. jQuery гарантирует, что данные удаляются, когда элементы DOM удаляются с помощью методов jQuery и когда пользователь покидает страницу. Мы можем установить несколько различных значений для одного элемента и получить их позже:
- 1. Как долго живут определенные источники данных Метеор?
- 2. PathBuf не живут достаточно долго
- 3. ошибка: `var` не живут достаточно долго
- 4. Займитесь закрытия фильтра, не живут достаточно долго
- 5. ошибка: ххх не живут достаточно долго
- 6. Заимствованные значение не живут достаточно долго
- 7. Как долго в транзакции покупки транзакцииВопросы данных живут?
- 8. Сохранение объекта функции черта в структуры не живут достаточно долго
- 9. Значение не живут достаточно долго, несмотря на то, вынуждены
- 10. «заимствовано значение не живут достаточно долго» при использовании шаблона строитель
- 11. Заимствованные значение не живут достаточно долго - струнный кусочек в HashMap
- 12. Где данные статического производства живут в рельсах?
- 13. Данные ввода поля печати живут с Javascript
- 14. долго опроса - JQuery + PHP
- 15. JQuery Мобильного делегата против живут против затруднительным
- 16. Данные Math.net, прочитанные в методе класса, не присвоенные члену класса
- 17. Данные формы POST с данными jQuery
- 18. ASP.NET MVC 1, данные по поиску и обновлению живут
- 19. Связать данные таблицы с данными диаграммы JQuery
- 20. Категории отображения, присвоенные сообщению
- 21. Regex захватов не живут так долго, как я думаю, они должны
- 22. Как вернуть ссылку на локально выделенную структуру/объект? AKA ошибка: `Foo` не живут достаточно долго
- 23. Как живут видео или аудиопотоки?
- 24. JQuery JQuery-1.7.1.min.js живут() устаревшее использование на()
- 25. Как долго redis хранит данные (значение ключа)?
- 26. Как долго сохраняются данные веб-SQL?
- 27. Данные отслеживания событий - как долго показывать?
- 28. Как долго сохранятся данные memcached в памяти
- 29. Как изменить данные в ширину долго
- 30. Облако хранения - Как долго хранятся данные?
можете ли вы отправить код? – Joseph
Данные хранятся в плагине, есть кнопка, которая вызывает событие в файле plugn, но когда я делаю это все данные, которые были до этого, его неопределенный – Johangsl
вы можете опубликовать код плагина? – Joseph