RefetchEvents FullCalendar - PullRequest
       0

RefetchEvents FullCalendar

2 голосов
/ 06 января 2011

У меня есть два человека, которые имеют доступ к приложению FullCalendar одновременно, но с другого компьютера, они будут видеть обновления встреч другого, не нажимая кнопку обновления, я пробовал с RefetchEvents, но ничего. есть какие-либо предложения. Большое спасибо

1 Ответ

2 голосов
/ 18 марта 2011

refetchEvents должен получать события из всех источников и перерисовывать их, поэтому мне интересно, что не получается. Кроме того, когда есть изменения, как они передаются на ваш сервер? Или изменения остаются только на клиенте? Вам необходимо убедиться, что вы сохраняете события от каждого клиента на сервер, чтобы другой клиент мог их получить. Вы можете проверить, сохраняете ли вы в настоящее время новые события на стороне клиента, с помощью вызова clientEvents для FullCalendar. Посмотри, что он тебе вернет. Если это так, убедитесь, что при добавлении события с помощью select или любого другого метода, который вы используете для добавления событий, вы сохраняете его на сервере.

Вы можете опрашивать его на регулярной основе. Установите Javascript setInterval, который регулярно вызывает refetchEvents. Недостатком этого подхода является то, что он будет постоянно перекрашивать события. Вы также можете опросить сервер только для отметки времени, когда ваша база данных или другой источник, содержащий события, были обновлены, и при обновлении вызывайте только refetchEvents. Если вы используете сервер, который поддерживает его, вы также можете рассмотреть возможность использования кометы для передачи информации с вашего сервера.

Если бы я проводил какой-то опрос, вот что я бы попробовал:

// set this before calling the calendar
var timeLastUpdated = new Date().getTime(); 

function pollForNewEvents() {
    var url = "/path/to/server/check";
    $.get(url, {"timeLastUpdated": timeLastUpdated}, function(data) { 
        data = parseInt(data, 10); // assume data is milliseconds since epoch
        if(data > timeLastUpdated) {
            $("#calendar").fullCalendar('refetchEvents')
            timeLastUpdated = data;
        }
    });
}

setInterval("pollForNewEvents()", 10000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...