Проблемы с производительностью при попытке приписать заголовок DropDownlist с помощью jQuery - PullRequest
0 голосов
/ 02 июня 2011

Я использую код ниже, чтобы выбрать все выпадающие списки, используя jQuery и присвоив ему значение заголовка.

jq("select option").each(function () {
   jq(this).attr({ 'title': jq(this).html() });
});

Но проблема в том, что если в DropDown имеется огромное количество значений, атрибуту значения заголовка требуется много времени.

Как я могу улучшить производительность моего кода?

1 Ответ

2 голосов
/ 02 июня 2011

Использование этого должно повысить производительность, так как оно действует на прямой объект, а не через jQuery:

Вариант 1: повышение производительности jQuery

$('select > option').each(function() {
    this.title = this.text;
});

Скрипка: http://jsfiddle.net/ZJaKF/

Вариант 2: использовать "vanilla Javascript"

Неиспользование .each также увеличит производительность, так как внутренне анонимная функция должна вызываться на каждой итерации. Если вы действительно хотите производительность, просто используйте «ванильный» Javascript:

var options = document.getElementById('selectId').options,
    i = options.length;

while (--i > -1) options[i].title = options[i].text;

Вариант 3: использовать имплантацию на стороне сервера

При выводе формы просто установите атрибут title на содержимое опции. Это было бы самым быстрым решением.

См. Сравнение сравнительных тестов с использованием различных методов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...