Jquery Периодическое обновление, как проверить, отличается ли извлеченное содержимое от извлеченного старого. - PullRequest
1 голос
/ 19 марта 2020

Я пытаюсь реализовать ajax .periodicalUpdater , как у Prototype js, но с Jquery. Моя цель состоит в том, чтобы, как только страница загружалась, она загружала содержимое любого URL, который я поместил бы в параметр. Теперь, если содержимое, извлеченное после интервала секунды, совпадает с тем, которое было извлечено ранее, я хотел бы увеличить задержку для следующей проверки, чтобы уменьшить нагрузку на сервер.

Это то, что я сделал

     <div id="div_a_updater" class="div_a_updater">Mettre ici</div> 

<script>

function mettreajour_periodique(span_id, url_traitement, nos_parametres, our_frequency, our_decay, our_decay_to_reset)
{

jQuery(document).ready(function(){

jQuery("#"+span_id).load(url_traitement);

setInterval(function(){
jQuery("#"+span_id).load(url_traitement)
}, our_frequency);

});


}


mettreajour_periodique('div_a_updater', 'brouillons_touse.php', '&membre=', 15000, 2000, 3600);

</script> 

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

1 Ответ

0 голосов
/ 19 марта 2020

Вот , как это реализовано в Prototype . В общих шагах:

  1. затухание по умолчанию равно 1 (не влияет на интервал), но может быть присвоено значение больше 1.
  2. запрошена конечная точка, и ответ назначен переменная.
  3. ответ сравнивается с предыдущим ответом (если имеется). Если они одинаковы, то затухание умножается само по себе и присваивается обратно себе (экспоненциальный рост). Если они различаются, тогда установите для параметра decay обратно его первоначальное значение
  4. следующий запрос запланирован как интервал * decay
  5. предыдущее значение ответа обновляется с использованием самого последнего значения
  6. element на экране обновляется значение ответа
  7. go до 2

Главное здесь то, что вы не хотите использовать setInterval для планирования этого, а скорее setTimeout, поскольку это позволяет вам каждый раз получать новое значение для задержки между запросами.

...