KickeRocK
@KickeRocK
FrontFinish

Отслеживание изменений запроса?

Доброго времени суток.
Есть простой парсер csv с некоего сайта(не суть какой):
parser.php:
$csv = array_map('str_getcsv', file('http://anysite.com/csv'));
echo json_encode($csv);

Я делаю к нему Ajax запрос через JS:
var request = new XMLHttpRequest();
request.onreadystatechange = function() {

  if(request.readyState === 4) {

    if(request.status === 200) {
      // обновляем элемент HTML
      createTable(JSON.parse(request.responseText),container);
    } else {
      // иначе выводим сообщение об ошибке
      container.innerHTML = 'Произошла ошибка при запросе: ' +  request.status + ' ' + request.statusText;
    }
  }
}
request.open('Get', 'parser.php');
request.send();

Получаю данные и записываю их в таблицу в .html(есть метод createTable, не суть).
Эти данные часто меняются.
Нужно раз в 5 секунд делать запросы еще раз и сравнивать то, что было, с тем что изменилось и менять ТОЛЬКО то, что изменилось, т.е. не перезаписывать всю таблицу заново, а, допустим, 2 строки.

Как и, что важнее, где это лучше реализовать? Синтаксис JS, пожалуйста.
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
Stalker_RED
@Stalker_RED
При первом запросе делаете свой "createTable, не суть", данные запоминаете.
При следующих запросах
  сравниваете свежие данные с предыдущими
  вычисляете разницу
  вносите обновления в таблицу.
  запоминаете эту порцию данных

Лучше на юге. Синтаксис JS, спасибо.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
// обновляем элемент HTML
это точно верный комментарий к
createTable
?

Возвращайте из PHP 2х-уровневый ассоциативный массив идентификаторов строк таблицы, содержащий только изменившиеся данные в формате: строка=>ячейка.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы