Как проверить, содержит ли страница str с помощью XMLHttpRequest без загрузки всего файла?

#javascript #stream #xmlhttprequest

#javascript #поток #xmlhttprequest

Вопрос:

Я хочу проверить, содержит ли файл (полученный с помощью XMLHttpRequest) заданную строку. Я не хочу загружать весь файл, потому что он огромный. Как остановить загрузку файла при любом появлении данной строки?

Ответ №1:

Вам нужно использовать потоковую передачу XHR. Примером может быть:

 var xhr = new XMLHttpRequest();
xhr.open('GET', '/stream');
xhr.seenBytes = 0;

xhr.onreadystatechange = function() { // 1
  if(xhr.readyState > 2) {
    var newData = xhr.responseText.substr(xhr.seenBytes); // 2
    // process newData

    xhr.seenBytes = xhr.responseText.length; // 3
  }
};
  
  1. Подписаться на уведомления о состоянии и прогрессе

  2. Извлечение новых данных из частичного ответа

  3. Обновить обработанное смещение в байтах