事件处理
事件处理机制提供了一种方法,可以在网页的整个生命周期中捕获和处理事件。下面的简单程序,打印所有页面事件的调用顺序和事件名称。
网页事件处理器由 PageEvent 定义,并被分成三个类别,以处理三个不同阶段的事件:
- CrawlEvent - 处理在 crawl loop 中的事件
- LoadEvent - 处理在加载、解析流程中的事件
- BrowseEvent - 处理在网页浏览阶段的事件,譬如和浏览器交互,以触发相关字段被加载或者显示
class PrintFlowEvent: DefaultPageEvent() {
private val sequencer = AtomicInteger()
private val seq get() = sequencer.incrementAndGet()
init {
loadEvent.apply {
onNormalize.addLast {
url ->
println("$seq. load - onNormalize")
url
}
onWillLoad.addLast {
url ->
println("$seq. load - onWillLoad")
null
}
onWillFetch.addLast {
page ->
println("$seq. load - onWillFetch")
}
onFetched.addLast {
page ->
println("$seq. load - onFetched")
}
onWillParseHTMLDocument.addLast {
page ->
println("$

博客介绍了事件处理机制,它能在网页整个生命周期捕获和处理事件。网页事件处理器由 PageEvent 定义,分为 CrawlEvent、LoadEvent、BrowseEvent 三类,分别处理 crawl loop、加载解析流程、网页浏览阶段的事件,并给出示例程序输出。
最低0.47元/天 解锁文章
1284

被折叠的 条评论
为什么被折叠?



