Ответ HTML по сравнению со старым HTML - PullRequest
0 голосов
/ 23 мая 2010

У меня есть ответ от AJAX-запроса с использованием jQuery, возвращенного как 'response'

Мне нужно сравнить его со старым HTML. Если он отличается, он просто сделает несколько CSS.

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

var oldHTML = $("#container").html();
$.ajax({  
        url: "ajax/log.php",  
        cache: false,
        dataType: "JSON",
        success: function(response){
            if(oldHTML != response)
            {
                $("#container").css({"border":"1px solid red"}),
                $("#container").animate({"border":"none"}); 
            }
        }

Он не всегда обнаруживает изменение или отсутствие изменения. Он также зацикливает анимационный бит.

Ответы [ 2 ]

1 голос
/ 23 мая 2010

Могут быть изменения в html при его добавлении в DOM.Я бы сохранил HTML в элементе как объект данных как есть, чтобы сохранить его копию.

Например,

   // get the saved response, if any, that was saved on the last ajax request
    var oldHTML = $("#container").data('oldHTML');
    $.ajax({  
                    url: "ajax/log.php",  
                    cache: false,
                    dataType: "JSON",
                    success: function(response){
                      if(oldHTML != response){
                         $("#container").css({"border":"1px solid red"});
                         $("#container").animate({"border":"none"}); }
                        // assign the original server response to oldHTML
                         $("#container").data('oldHTML', response);
                        // shove response into the DOM
                         $("#container").html(response);
                       }else {
                          // i guess you're doing nothing here?
                      }
           });

или что-то подобное, надеюсь, что это передает идею

0 голосов
/ 23 мая 2010

Я бы перефразировал ваш вопрос, чтобы упомянуть jQuery & AJAX - мне потребовалась секунда, чтобы увидеть теги.

Я бы использовал сравнение файлов, такое как WinMerge (бесплатно), чтобы увидеть, в чем разница.

Полагаю, это может быть связано с интервалом, и в этом случае вы можете использовать функцию обрезки.

Также, если вы разместите свой код, это будет полезно.

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