0

こんにちは、Fullcalendar のフォロワーです。サーバー側のスレッドを使用してイベントをカレンダーにロードしようとしています。これにより、イベントのロードのパフォーマンスが向上します。つまり、次のことを意味します。

1 - evenSource フィードが 1 つしかない:

eventSources: [othersources.funcmap] //Employee calendar MAP

2 - サーブレット (私は Java に取り組んでいます):

I am gathering all JSON objets from different sources and joining them together in one large big object (with threads) that i want to send back to Fullcalendar.

2.1 - 個別に送信した場合 ([othersources.vacations、othersources.faults などを意味する複数の ajax 呼び出し]) には文字列 (JSON FORMAT) があり、正常に動作し、すべてのフィードが読み込まれます。

 This is the JSON object in the "individual" String -> `[{"title":"Vacation day","start":"02-09-2013", etc etc etc}]`

問題

問題は、それらを結合すると、次のようにオブジェクトを作成することです。

[ 
   [{"title":"Vacation day","start":"02-09-2013", etc etc etc},{"title":"Vacation day","start":"02-09-2013", etc etc etc}],
   [{"title":"Fault day","start":"02-09-2013", etc etc etc},{"title":"Faul day","start":"02-09-2013", etc etc etc}],
   [{"title":"Birthday fault","start":"02-09-2013", etc etc etc},{"title":"Birthday fault","start":"02-09-2013", etc etc etc}]

 ]

これは実際には有効なJSONオブジェクトです(「etc etc etc」はもちろんありません:P)が、機能しません。fullcalendar はイベントをレンダリングしません...

Fullcalendar が理解できる 1 つの大きなオブジェクトにそれらを結合するにはどうすればよいですか? または、Fullcalendar は単純な JSON オブジェクトの読み取り方法しか知りませんか?

前もって感謝します。

4

2 に答える 2

1

最も簡単な解決策は、イベント配列を FullCalendar に渡す前に平坦化することでしょう。しかし、どうしてもというのであれば、FullCalendar でイベントソースとして機能を提供することで可能です。

関数のドキュメントはこちら: http://arshaw.com/fullcalendar/docs/event_data/events_function/

そして、これはそれを行う基本的な方法です:

eventSources: [function (start, end, callback) {

    var eventArrays = [
        [{
            "title": "Vacation day",
            "start": new Date()
        }, {
            "title": "Vacation day",
            "start": new Date()
        }],
        [{
            "title": "Fault day",
            "start": new Date()
        }, {
            "title": "Faul day",
            "start": new Date()
        }],
        [{
            "title": "Birthday fault",
            "start": new Date()
        }, {
            "title": "Birthday fault",
            "start": new Date()
        }]
    ];

    // Using underscore.js to flatten the array
    var events = _.flatten(eventArrays);

    callback(events);
}]

ここで実際の例を確認できます: http://jsfiddle.net/kvakulo/q5HET/1/

于 2013-07-10T16:42:09.980 に答える
0

結局、これはまったく意味がありません。複数の AJAX 呼び出しは、サーブレット内のスレッドでもすべてを返すものを作成しようとするよりも高速です。

しかし、サブ配列なしで [{},{}...] をすべて結合した Flat JSON で動作しました。

于 2013-07-11T15:29:20.380 に答える