Обновлять интерфейс, только если данные, полученные через AJAX, отличаются - PullRequest
0 голосов
/ 02 февраля 2020

У меня есть список HTML, который заполняется данными, собранными с помощью вызова ASHX AJAX. Этот вызов AJAX запускается каждые 1/2 секунды.

Я хочу, чтобы #menu обновлялся только в том случае, если данные, полученные из вызова AJAX, отличаются от существующих данных в списке. Как мне этого добиться?

$(document).ready(function() {
  loadMenuHandler();

  function loadMenuHandler() {
    $.ajax({
      url: 'MenuHandlerAsync.ashx',
      method: 'get',
      dataType: 'json',
      async: true,
      success: function(data) {
        if (!isCreated) {
          buildMenu($('#menu'), data); //$('#menu') is a ul list
          isCreated = true;
        }

        setTimeout(function() {
          $("#menu").empty();
          buildMenu($('#menu'), data);
          loadMenuHandler();
          showCorrectMenu();
          showCorrectMenuMobile();
          ProcessNotifications();
        }, 1000);
      },
      error: function(err) {
        console.log(err.statusText);
      }
    });
  }
});
...