我只是一名学生,也是NodeJS的新手,如果这是一个愚蠢的问题,请原谅我。
我想创建自己的事件触发器,但不知道如何去做,如果我确实有一些想法,我不确定它是否是最好的方式,因为我没有&# 39;不知道NodeJS中的事件是如何工作的。例如,如果我为“悬停”设置了触发器。或其他什么,它是否经常在幕后轮询鼠标,直到光标坐标与悬停边界匹配或什么?
这是我试图实现的实际实现:
我希望我的程序在BBC.com/news有新消息的时候向控制台打印新闻。
var request = require('request');
var parser = require('xml2json');
request('http://feeds.bbci.co.uk/news/rss.xml?edition=int', function (error, response, body) {
if (!error && response.statusCode == 200) {
var xml = body;
var newsitems = JSON.parse(parser.toJson(xml)); //returns a string containing the JSON structure by default
var item = newsitems.rss.channel.item[0];
console.log(item.title+": "+item.link);
}
})
目前,这只是同步。每次运行程序时,它都会打印最新的新闻文章。我想要的是它无限运行,它会在它发生变化时自动打印最新的新闻文章。
Ofc,在我的脑海中,我能想到的就是在幕后进行一段时间循环,不断轮询资源,并在资源与之前的状态不同时触发事件(当它改变时)。
对我来说,这听起来好像会降低整个系统的速度,因为你有100%的时间都在查询BBC服务器。我的问题是,有没有更有效的方法来解决这个问题?我是否应该实现一个每分钟轮询的计时器,或者是否有办法判断资源是否已经更改,或者是否有办法让BBC服务器在资源发生变化时将资源推送给我?