nodejs抓取动态网页(event.json抓取动态网页就是异步的(图))
优采云 发布时间: 2022-01-18 14:03nodejs抓取动态网页(event.json抓取动态网页就是异步的(图))
nodejs抓取动态网页就是异步的。event.timeout变化,数据也会更新。动态网页加载量大,但同时反映出网页访问量的变化。如果用event.connect().then(),动态网页异步,同时会有耗时异步方法,可能会造成加载动态网页丢失数据的情况。比如考虑加载一个即将下载的网页,加载的结果css变化有时候对性能的影响。
性能并不一定影响加载原网页的效率。因为不同状态变化频繁,带来并发情况的话,异步加载也可能达不到最优性能。推荐直接用event.json()来保存性能相对高的异步信息。
同步与异步的区别我相信你肯定想过这个问题,那么同步与异步有什么样的区别呢?简单来说就是同步就是在一段时间内的同一个任务上执行同一个步骤,如果发生了异步就会说这段时间里面不同步了,先执行要执行的步骤,然后还要等待后一个步骤的执行结果。按照这个定义我相信你应该能够理解异步与同步的区别。那么现在咱们再来看看,同步和异步都有什么样的特点,或者说他们应该是什么关系呢?关于这个问题相信有一些小伙伴可能并不是很了解。
那我也就举个通俗的例子来解释一下:比如说你做了一道菜,但是今天你对菜的质量非常满意,可是如果你一周之后再吃这道菜的话你就会觉得这个菜不好吃了。那么这个时候你会怎么办呢?我相信很多小伙伴肯定会说我就吃一周以后再吃,然后给大家说道理的话,可能很多小伙伴就会说我马上吃,下周再吃,下下周再吃,那么对于这个时候来说同步就是你昨天做好的饭今天今天吃,那么对于异步来说呢,他今天晚上之前做好的饭,你一周之后再吃那就是这顿饭不好吃,他今天晚上之前做好的饭,一周之后再吃,那就是这顿饭好吃。
至于通过一个晚上来把什么都做好,做得过程中等待成功的事情呢?我觉得这个其实是不需要的,比如今天晚上要是你做菜的话,你要把今天晚上做好的饭明天才煮出来,那么相当于你就可以把今天做好的饭,明天晚上吃,而不是今天晚上做好,明天吃,另外如果你明天不吃,就算做出来这顿饭也会把它端出去没人吃,那么这个时候就是同步了。
简单来说,如果我需要今天晚上做好了,明天才吃的话,那么就是同步。那么今天晚上做好明天晚上可以不吃的话,就是异步。(由于eventjson()()返回的数据都是同步的所以此时可以不讲)那同步异步和回调函数怎么理解呢?回调函数的话呢其实与一个定时器的执行方式比较相似,他可以理解为定时器的方式来执行而已,而nodejs的异步模块就非常像回调函数,他们一样都是同步调用的。先来看看他们的整体结构:nodejs异步模块jsonjs模块,然后具体。