jQuery: по возможности предотвращать изменение отключенного состояния элемента

#jquery

#jquery

Вопрос:

У меня есть приведенный ниже код. Сначала все кнопки с классом редактирования не будут отключены.

Затем он выдает get-запрос, чтобы увидеть, какие файлы заблокированы, и соответственно отключает кнопки.

Это работает нормально. Однако, поскольку люди могут редактировать все время, оно выполняется с интервалом в X секунд, поэтому обновляется для пользователя по мере просмотра страницы.

Если я установлю для него значение, равное второму, любая кнопка, которую необходимо отключить, сначала будет активна, а затем отключена — проблема в том, что оттенок зеленого меняется, поэтому кажется, что он пульсирует.

Надеюсь, это имеет смысл. Каков наилучший способ обойти это.

Всего около 500 кнопок, представляющих 500 разных записей, поэтому чего я не хотел делать, так это перебирать каждую кнопку и проверять, существует ли она в массиве, который я получаю обратно, поскольку думал, что это может быть неэффективно, особенно если большинство строк заблокированы.

JSON, который я получаю обратно, имеет вид:

 [ { "id": "4", "name": [ "Jo Bloggs" ] } ]
  

Функция

 function checkLock() {
    $("button.edit").prop('disabled', false);
    $.get('/listLockedFiles/json', function(data) {
        var id;
        var name;
        var currentUser;
        data = $.parseJSON(data);

        $.get('/currentUser', function(cu) {
            $.each(data, function(i, item) {
                id = data[i]["id"];
                name = data[i]["name"];

                if (name !== cu) {
                    $("button.edit[data-id="" id ""]").prop('disabled', true);
                }
            });
        });
    });
}