2012-12-18 32 views
0

我想使用javascript庫Sigmajs將我的wordpress和github活動表示爲圖形網絡。我正在使用google feed api獲取所有活動的RSS提要,並將它們轉換爲圖上的節點和邊緣。如何使用Google Feed API異步填充sigma.js圖形?

但是,feed api異步返回rss結果。據我所知sigmajs本身不支持這個,所以即時獲取未定義的引用。此時它只有大約20-30個節點。一些可能的解決方案如下:

  1. 強制google feed api同步返回結果。 (不知道如何做到這一點,但我認爲它與適當的關閉有關)

  2. 爲每個提要結果創建sigma實例並將所有圖形對象推送到一個實例中。 (不確定它的可能性和資料庫沒有足夠的記錄來嘗試)

  3. 每次返回結果時都會觸發一個事件,以確保sigma一次只能處理一個事件。 (同樣,不知道如何去做這件事)

任何指導是非常讚賞。謝謝。

這裏是我的工作至今http://fraseraddison.com 更多的例子和源在http://sigmajs.org/

回答

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);