Как заставить XMLRequest ждать определенное количество времени, пока не будет сделан запрос GET? - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь получить HTML-содержимое страницы с помощью XMLHTTPRequest. Страница завершает загрузку через несколько секунд, но для данных, которые мне нужно заполнить, требуется больше времени.

Я могу получить HTML-содержимое страницы, но нужные мне данные отсутствуют в ответе, так как запрос сделан мгновенно.

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

(заранее извиняюсь, если терминология вопроса не идеальна, просто начал использовать эти типы запросов).

// My current request:

async function getHTMLContent() {
    return new Promise( (resolve, reject) => {
        var XMLRequest = new XMLHttpRequest();
        XMLRequest.open('GET', "myURL", true);
        XMLRequest.send();
        XMLRequest.onload = () => {
            if (XMLRequest.readyState == 4 && XMLRequest.status == 200) {
                return resolve(XMLRequest.responseText);
            } else {
                return reject('There was an error retrieving the data');
            }
        }
    });

}

Токовый выход:

<div class="abc"></div>

без содержания между ними.

Я бы хотел, чтобы содержание было:

<div class="abc">"The data"</div>.

1 Ответ

0 голосов
/ 02 июля 2019

Если данные добавляются на страницу после их загрузки, то это потому, что JavaScript в них манипулирует DOM.

Вы не можете просто ждать появления этих данных.Вам нужно запустить JavaScript (или эквивалентный JavaScript).

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

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