2013-11-28 98 views
0

我想呈現大量的事件(大約50,它可能會更多)。JQuery + Fullcalendar - 與jQuery對象迭代大量

    for (var eventIndex = 0; eventIndex < resp.select_events.length; eventIndex++){ 
        var event = resp.select_events[eventIndex]; 
        c.fullCalendar('renderEvent',{ 
         id: event.id, 
         title: eventName, 
         start: event.event_date, 
         description: eventDesc, 
         write: event.write 
        },true); 
       } 

這需要幾秒鐘的時間,有時瀏覽器會要求我中止scipt執行。所以,我認爲,我需要一種方式來實現它,比如異步 - 與執行腳本的最後部分平行。你能建議一些工具或類似的東西嗎? Thx

+0

你有渲染逐一?爲什麼不先設置像JSON數組這樣的數組並將它添加到eventSources中? –

回答

0

你有渲染逐一?爲什麼不先設置像JSON數組這樣的數組並將它添加到eventSources中?讓您的日曆呈現大量活動的最佳方式是讓Fullcalendar爲您完成這項工作。在我看來,你正在嘗試在內部完成fullcalendar。檢查下面的例子,這是如果你必須做這個客戶端,我會做這個服務器端。

  var jsonarray = [];  
      for (var eventIndex = 0; eventIndex < resp.select_events.length; eventIndex++){ 

       /* c.fullCalendar('renderEvent',{ 
        id: event.id, 
        title: eventName, 
        start: event.event_date, 
        description: eventDesc, 
        write: event.write 
       },true);*/ 
       var event = resp.select_events[eventIndex]; 
       var myevent = { 
        "id": event.id, 
        "title": eventName, 
        "start": event.event_date, 
        "description": eventDesc, 
        "write": event.write 
       }; 
       jsonarray.push(myevent); 
      } 

      c.fullCalendar('addEventSource', jsonarray); 

讓他們知道,如果您有任何疑問

+0

thx,我只是現在找到這種方式)我不知道,這種方式快得多)我認爲開發人員應該在文檔中提到) – GeraldIstar

+0

我認爲他提到的東西...很高興我可以幫助。順便說一句,你應該做這個過程服務器端而不是客戶端,只是將已經構建的json數組從服務器傳遞到客戶端,並且您將只在客戶端執行addEventSource事情,因爲您不知道每個用戶計算機的處理能力;) –