Цель этого вопроса - исключить любые ошибки в моем коде javascript, поскольку я новичок в этом языке.
Согласно ответу это, я использую следующий код для перезагрузки веб-сайта в контексте phantomJS в случае, если начальная загрузка занимает больше времени, чем определенный порог:
var timer; // Define timeout outside function
this.onLoadFinished = function(){ // If page is loaded
window.clearTimeout(timer); // Clear timeout function
console.info("Page loaded - CLEAR timeout"); // Announce cleared timeout
timer = window.setTimeout(function(){ // And set new timeout
console.info("SET Timeout for page load"); // Announce set timeout
window.location.reload(); // Reload page
console.info("PAGE reloaded") // Announce reload
}, 90000); // After 90 sec
};
В полученном Ghostdriver.log я вижу, что тайм-аут был установлен и очищен. Также указана перезагрузка.
Однако перезагрузки не происходит, потому что мой скрипт бесконечно зависает.:
phantomjs://platform/console++.js:263 in error
Page loaded - CLEAR timeout
SET Timeout for page load
PAGE reloaded
[INFO - 2018-03-30T01:40:56.448Z] SessionManagerReqHand -
_cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW
[ERROR - 2018-03-30T01:37:11.140Z] RouterReqHand -
_handle.error - {"name":"Missing Command Parameter","message":.....[shortened]
Вопрос:
Как правильно перезагрузить страницу в случае тайм-аута в javascriptphantomJSконтекст?
Еще одно решение, которое я пробовал, - это:
this.settings.ressourceTimeout = 90000
this.onRessourceTimeout = function(){
this.reload();
Это тоже не сработало по причинам, подробно описанным здесь (в двух словах, начиная с phantomJS 1.9.8 и его встроенного Ghostdriver, resourceTimeout не будет применяться Ghostdriver).
Я пробовал это и обновил свой вопрос - поведение такое же, как с window.location.reload (true)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


window.location.reload(true);?