这个问题的目的是排除我的javascript代码中的任何错误,因为我是这种语言的新手。
根据this回答,我使用以下代码在phantomJS
上下文中重新加载网站,以防初始加载时间超过某个阈值:
var timer; // Define timeout outside function
this.onLoadFinished = function(){ // If page is loaded
window.clearTimeout(timer); // Clear timeout function
console.log("Page loaded - CLEAR timeout"); // Announce cleared timeout
timer = window.setTimeout(function(){ // And set new timeout
console.log("SET Timeout for page load"); // Announce set timeout
window.location.reload(); // Reload page
console.log("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]
问题:
如果在javascript phantomJS
上下文中超时,如何正确重新加载页面?
我尝试过的另一个解决方案是this:
this.settings.ressourceTimeout = 90000
this.onRessourceTimeout = function(){
this.reload();
这也没有成功,原因非常详细地总结here(简而言之,截至phantomJS
1.9.8及其嵌入式Ghostdriver
,{{1 } {}不会被resourceTimeout
)应用。