Как бесконечно ждать, пока страница загрузится в тестовом примере javascript

У меня есть синтетический скрипт для мониторинга производительности javascript. Я хочу знать, могу ли я применить оператор для ожидания загрузки страницы, поскольку он имеет много перенаправлений и требует времени.

В настоящее время используется...

$browser.sleep(80000);

Я хочу заменить его на неопределенное ожидание загрузки страницы.


person Salman    schedule 08.02.2019    source источник


Ответы (2)


Да, вы можете бесконечно проверять/ждать, пока страница загрузится, с помощью window.onload JavaScript.

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

var status = false;
window.sleep = function() { 
    return setTimeout(() => {
        console.log("=> Waited for 2 seconds...");
    }, 2000);
}
var getStatus = function() {
    for(var i = 0;; i++) {
        if(window.onload = function() {
            return true;
            }) {
            status = true;
            console.log(i+"). Loaded ? "+status);
            break;
        } else {
            console.log(i+"). Loaded ? "+status);
            sleep();
        }
    }
    return status;
}
getStatus();

getStatus() вернет true после успешной загрузки страницы, в противном случае он ничего не вернет, пока страница не будет загружена.

person Ali CSE    schedule 08.02.2019

Вы можете использовать для этого clearTimeout().

function timeOutFunction() {
  myTimeOut = setTimeout(function()
    { 
     $browser.sleep() }, 80000);
    }

function stopTimeOutFunction() 
    {
      clearTimeout(myTimeOut);
    }

stopTimeOutFunction перезапишет функциональность функции timeOutFunction, тем самым предотвратив тайм-аут.

person Code_Tech    schedule 08.02.2019