我正在使用 Fullcalendar v1 开发应用。
我成功地集成了与 mysql 数据库的连接,因此我的事件作为 json 数组从数据库加载。但是我的应用程序将在一瞬间使用超过 2 个人,所以我需要在我的数据库更改后自动刷新。如果一个用户删除事件,日历会为看到此日历的所有其他用户刷新。
我制作了一个实验脚本。它有效但不如我想要的。 我知道,这个脚本很糟糕,但我很沮丧。
<script>
var i = setInterval(function(){
last_id = $.cookie('last_id');
$.get("foo.php", function(data) {
var id = data;
if(last_id !== id) {
$('#calendar').fullCalendar('changeView', 'month');
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('refetchEvents');
$('#calendar').fullCalendar( 'rerenderEvents');
last_id = $.cookie('last_id', data);
}
});
},500);
</script>
它的工作非常简单...... foo.php 加载行数。如果这个数字不是最后保存在 cookie 中的数字,日历将被刷新。
这种方法有很多缺点和错误。它仅适用于删除和创建事件。不适用于移动等。它通过每 500 毫秒获取结果来减慢应用程序 ..
你有更好的解决方案吗?
最佳答案
我有类似的结构..从数据库中获取数据作为 JSON...
我制作了一个用于更改事件的模式...
当我按下调用我的数据库更新事件的按钮时..
我在后面使用...一个名为 (.trigger('click')) 的 jQuery 函数,所以...
$('.fc-prev-button').trigger('click');
$('.fc-next-button').trigger('click');
//Hide Modal.. button have a data-dismiss="modal"
$('#closeEdit').trigger('click');
这是我的解决方案,因为当加载 fullCalendar 时调用事件.. 从我的数据库中获取数据的参数...因此当您更改月份时,将再次调用它以重新加载数据并且不会加载完整月份的数据。 .
对不起我的英语,我希望能帮助你,快乐编码!!
关于php - 如果数据库更改,则全日历自动刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27110999/