gpt4 book ai didi

javascript - CasperJS 中是否有任何 onResourceTimeout 等效项?

转载 作者:行者123 更新时间:2023-11-29 15:36:00 25 4
gpt4 key购买 nike

当打开一个页面需要很长时间时,我想中止运行 casper。在 PhantomJS 中,您可以设置一个名为 resourceTimeout 的页面设置。此属性定义超时,在该超时后,任何请求的资源将停止尝试并继续处理页面的其他部分。当我查看 CasperJS 文档时,CasperJS 不支持页面的这个属性。我知道我们可以使用 stepTimeout 选项来控制每个步骤所花费的时间,但我不想设置全局值来影响所有步骤。我只想限制代码的页面打开步骤。CasperJS 中是否有任何等效设置可以做到这一点?或任何其他停止加载时间很长的页面的建议?

谢谢,

最佳答案

CasperJS 建立在 PhantomJS 之上,因此您可以简单地使用底层 page 实例通过访问 casper.page 来注册此事件。

page 实例在 casper.start() 被调用之前不会被创建,所以你需要在 中创建页面后立即注册事件>page.created 事件:

casper.on("page.created", function(){
this.page.onResourceTimeout = function(request){
// do whatever you need to do
};
});

casper.start(url, then).run();

你不太可能需要它(多个不同的事件处理程序),但你也可以使用 CasperJS 的事件系统:

casper.on("page.created", function(){
casper.page.onResourceTimeout = function(request){
casper.emit("resource.timeout", request);
};
});

casper.on("resource.timeout", function(request){
// do whatever you need to do
});

casper.start(url, then).run();

关于javascript - CasperJS 中是否有任何 onResourceTimeout 等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29092652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com