在Node JS中创建我自己的事件触发器

时间:2014-03-07 07:23:13

标签: javascript node.js events

我只是一名学生,也是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服务器在资源发生变化时将资源推送给我?

0 个答案:

没有答案