如果db更改,则Fullcalendar自动刷新

时间:2014-11-24 17:47:00

标签: php mysql fullcalendar

我正在使用Fullcalendar v1开发应用程序。

我成功地将连接集成到mysql数据库,因此我的事件从db作为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毫秒获得一次结果会减慢应用程序..

你有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我有类似的结构..从DB获取数据为JSON ......

我为改变事件做了一个模态...

当我按下调用我的数据库的按钮来更新事件时..

我在jQuery上使用了一个函数(.trigger(&#39;点击&#39;))所以...

 $('.fc-prev-button').trigger('click');
 $('.fc-next-button').trigger('click');
  //Hide Modal.. button have a data-dismiss="modal"
 $('#closeEdit').trigger('click');

这是我的解决方案,因为当加载fullCalendar时这个调用事件.. param谁从我的数据库中获取数据...所以当你改变月份时再次调用这个数据来重新加载数据并且不加载整个月有数据..

对不起我的英语,我希望能帮到你,Happy Coding !!