Утечка памяти при использовании jquery-ui / datepicker - PullRequest
6 голосов
/ 26 мая 2011

Я использую эти сценарии (где jquery-ui []. Custom.js - плагин datepicker):

<script src="../../Scripts/jquery-1.5.1.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.8.13.custom.js" type="text/javascript"></script>
<script id="formvalidation" type="text/javascript">
$(document).ready(function () {
    $(".datepicker").datepicker({ dateFormat: 'dd/mm/yy' });
});
</script>

Для этого элемента ввода (внутри формы):

<input type="text" name="Date" class="datepicker" />

Страница загружается нормально, и когда я щелкаю в поле ввода, средство выбора даты появляется правильно, но я получаю утечку памяти (в каждом браузере), как только дата выбрана, а средство выбора даты исчезает.Это приводит к сбою этого бита JS или замедлению работы браузера из-за утечки памяти в jquery-1.5.1.js:

Строка: 1520 Ошибка: недостаточно памяти

При отладке я вижу строку ошибки в 2310

jQuery.event.remove( elem, type + types );

Небольшой контекст:

// Unbind all events for the element
if ( !types || typeof types === "string" && types.charAt(0) === "." ) {
    types = types || "";
    for ( type in events ) {
        jQuery.event.remove( elem, type + types );
    }
    return;
}

Я делаю что-то не так или, может быть, это ошибка в jquery?Я также использую плагин проверки, но такая же ошибка возникает, когда я отключаю его.

[Решено?] Поскольку я не могу опубликовать свой ответ в течение 8 часов:

Устранена утечка с помощьюпереход на минимальную версию jquery (jquery-1.5.1.min.js и jquery-ui-1.8.13.custom.min.js).Похоже, есть некоторое несоответствие между минимальной версией и версией разработчика.

Дополнительный вопрос: где было бы хорошее место, чтобы поднять это, если это уже не проблема?

Ответы [ 2 ]

1 голос
/ 30 мая 2011

Устранена утечка путем перехода на минимальную версию jquery (jquery-1.5.1.min.js & jquery-ui-1.8.13.custom.min.js) Похоже, что есть некоторое расхождение между минимальной версией и версией разработчика.

Дополнительный вопрос: где было бы хорошее место, чтобы поднять это, если это уже не проблема?

0 голосов
/ 26 мая 2011

Возможно, вы хотите

$(document).ready(function () {
    $(".datepicker").datepicker({ dateFormat: 'dd/mm/yy' });
});

Приведенная выше конструкция передаст вашу функцию jQuery в качестве селектора с вероятными непредвиденными последствиями.

...