В настоящее время я разрабатываю календарь со всеми стандартными представлениями (день, неделя, месяц).
Для загрузки событий календаря я использую JSON. Когда события загружены, я должен отобразить их в активном представлении (день, неделя или месяц).
Для каждого просмотра мне нужен только определенный набор событий, событий между диапазоном дат текущего просмотра (= таймфрейм).
Итак, возможно ли отфильтровать события (по дате) для каждого представления, не просматривая весь объект JSON?
Сейчас я делаю это:
$(eventCache.Events).each(function() {
//CHECK IF THIS EVENT SHOULD BE DISPLAYED
});
Но список событий может доходить до пары сотен, поэтому этот метод замедляет работу календаря ...
Это пример моих данных:
{
"d":{
"__type":"GetEventsCacheResult",
"Events":[
{
"Subject":"Subject",
"CalendarId":"139c9edd-b01b-47cf-bae9-18f3e3dca655",
"ColorCode":"#093647",
"Id":"0dab7ad9-46c7-e230-294e-0933e78eadae",
"Description":null,
"DTStartDate":" \/Date(1244596500000)\/",
"DTEndDate":"\/Date(1244610000000)\/",
"StartDate":"10/06/2009 1:15:00",
"EndDate":"10/06/2009 5:00:00",
"AppointmentType":0,
"AllDay":false
},
{
"Subject":"Subject",
"CalendarId":"139c9edd-b01b-47cf-bae9-18f3e3dca655",
"ColorCode":"#093647",
"Id":"0fddb3a0-65f1-08c7-daf2-13da605b499b",
"Description":null,
"DTStartDate":" \/Date(1245823200000)\/",
"DTEndDate":"\/Date(1245832200000)\/",
"StartDate":"24/06/2009 6:00:00",
"EndDate":"24/06/2009 8:30:00",
"AppointmentType":0,
"AllDay":false
},
{
"Subject":"Subject",
"CalendarId":"139c9edd-b01b-47cf-bae9-18f3e3dca655",
"ColorCode":"#093647",
"Id":"a95b8a2b-7c8a-677f-dc58-1c9836d72748",
"Description":null,
"DTStartDate":" \/Date(1247633100000)\/",
"DTEndDate":"\/Date(1247646600000)\/",
"StartDate":"15/07/2009 4:45:00",
"EndDate":"15/07/2009 8:30:00",
"AppointmentType":0,
"AllDay":false
}
],
"Dates":{
"StartDate":"\/Date(1238022000000 )\/",
"EndDate":"\/Date(1285106400000)\/"
}
}
}