0

我想使用 javascript 库 Sigmajs 将我的 wordpress 和 github 活动表示为图形网络。我正在使用谷歌提要 api 来获取所有活动的 RSS 提要,并将它们翻译成图上的节点和边。

但是 feed api 异步返回 rss 结果。据我所知,sigmajs 本身并不支持这一点,所以我得到了未定义的引用。此时它只有大约 20-30 个节点。一些可能的解决方案是:

  1. 强制 google feed api 同步返回结果。(不知道怎么做,但我假设它与适当的关闭有关?)

  2. 为每个提要结果创建 sigma 实例,并将所有图形对象推送到单个实例中。(不确定它是否可能,并且库没有足够的文档来尝试)

  3. 每次返回结果时触发一个事件,以确保 sigma 一次只处理一个。(再次,不知道如何去做)

非常感谢任何指导。谢谢。

这是我迄今为止的工作http://fraseraddison.com 更多示例和来源http://sigmajs.org/

4

1 回答 1

0

我采用的解决方案是触发自定义事件。由于 javascript 的同步事件处理队列,似乎可以正常工作。

function getFeed()
{
    return function callback(result) 
    {
        if (!result.error)
        {
            console.log("Feed retrieved.");
            fireFeed(result.feed);
        }
        else 
            console.log("Feed retrieval failed!");
    }
}

function fireFeed(feed)
{
    //console.log(feed);
    var event = new CustomEvent(
    "newFeed",
    {
        detail: {
            message: feed
        },
        bubbles: true,
        cancelable: true
    }
    );
    document.dispatchEvent(event);
}

document.addEventListener('newFeed', function(e)
        {
            var feed = e.detail.message;
            console.log('feed triggered');
            //console.log(feed);
            buildFeed(feed);
        },true);
于 2012-12-20T07:42:15.117 回答