0

javascript ライブラリ Sigmajs を使用して、wordpress と github のアクティビティをグラフ ネットワークとして表現したいと考えています。Google フィード API を使用してすべてのアクティビティの RSS フィードを取得し、それらをグラフのノードとエッジに変換しています。

しかし、フィード API は RSS の結果を非同期で返します。私が知る限り、sigmajs はこれをネイティブにサポートしていないため、未定義の参照が取得されます。この時点で、ノードは 20 ~ 30 程度しかありません。可能な解決策は次のとおりです。

  1. Google フィード API が結果を同期的に返すように強制します。(これを行う方法はわかりませんが、適切な閉鎖と関係があると思いますか?)

  2. すべてのフィード結果に対して sigma インスタンスを作成し、すべてのグラフ オブジェクトを単一のインスタンスにプッシュします。(可能かどうかわからず、ライブラリが十分に文書化されていないため、試すことができません)

  3. 結果が返されるたびにイベントを起動して、sigma が一度に 1 つのみ処理するようにします。(繰り返しますが、これを行う方法がわかりません)

どんなガイダンスでも大歓迎です。ありがとう。

これまでの私の仕事は次のとおりです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 に答える