【问题标题】:How can I populate sigma.js graph asynchronously with google feed API?如何使用 google feed API 异步填充 sigma.js 图?
【发布时间】:2012-12-18 13:47:23
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: javascript asynchronous rss visualization google-feed-api


    【解决方案1】:

    我采用的解决方案是触发自定义事件。由于 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      相关资源
      最近更新 更多