阻止fc-next-button重新获取事件

时间:2017-07-05 09:11:22

标签: javascript jquery json ajax fullcalendar

我现在正在使用fullcalendar很长一段时间并围绕它构建了一个大型应用程序。

在寻找一些性能改进时,我发现了一些行为,如果可能,我想“关闭”或解决。

所以这就是我拥有的和发生的事情。当按下.fc-next-button按钮时,我通过AJAX调用触发脚本,这有助于我从数据库中读取正确的数据,并告诉日历需要显示多少天和哪个视图。在此ajax调用之后,我通过$('#calendar').fullCalendar('refetchEvents')重新审核了这些事件,并将日历发送到了正确的日期$('#calendar').fullCalendar('gotoDate', wishdate)

这很好用。

但是,在寻找Chrome浏览器控制台中的更多性能时,只要我点击.fc-next-button,日历就会重新启动事件。

看起来像这样:

ajax_events.asp - >用于为eventSources [] part

构建json的文件 ?

ajax_manipulate_event.asp ACT =操纵&安培; pager_forward = 1&安培; pager_up_down =加 - >用于计算要显示的日期和视图的脚本

ajax_events.asp - >再次建立json的文件。

所以ajax_events.asp的第一次调用就在我按下按钮后发生,并且不需要。其他电话很好,恰好在恰当的时间发生。我可以停止执行第一个电话吗?

我使用的代码如下:

$(".fc-next-button").click(function()
{
    $('#loading').show();
    var StrEvent = "act=manipulate&pager_forward=1&pager_up_down=plus";
    $.ajax ({					
        type: "POST",
        url: "<%= fullcalendar_path %>ajax_manipulate_event.asp?"+StrEvent,
        data: "order=" + StrEvent,
        dataType: "html",
        cache: false,
        success: function(data)
        {
            var str = data;
            dummy = str.split("XXX")[0];
            wishdate = str.split("XXX")[1];
            asset_id = str.split("XXX")[2];
            wish_date_up_down = str.split("XXX")[3];
            change_view_to = str.split("XXX")[4];
            $('#calendar').fullCalendar('refetchEvents');
            $('#calendar').fullCalendar('gotoDate', wishdate);
            if (change_view_to == "month")
            {
                $('#calendar').fullCalendar('changeView', 'month');
                $("#selectservice").hide(1000);
                $("#<%= session("reservierung_wishdate_from") %>").hide(500);
                $("#wishdateupdown").hide(250);
                $("#external-events").fadeOut(250);
            };
            if (change_view_to == "day")
            {
                if (asset_id == "0")
                {
                    $('#calendar').fullCalendar('changeView', 'agendaDay');
                }
                else
                {
                    $("#selectservice").show(1000);
                    $("#<%= session("reservierung_wishdate_from") %>").show(500);
                    $("#wishdateupdown").show(250);
                    $("#external-events").fadeIn(250);
                    if (wish_date_up_down == "1")
                    {
                        <% if session("agenda_is_app_backend") = 1 or session("agenda_is_app_frontend") = 1 then %>
                            $('#calendar').fullCalendar('changeView', 'agendaSingleDay');
                        <% end if %>
                        <% if session("agenda_is_backend") = 1 then %>
                            $('#calendar').fullCalendar('changeView', 'agendaTwoDay');
                        <% end if %>
                    };
                    if (wish_date_up_down == "2")
                    {
                        $('#calendar').fullCalendar('changeView', 'agendaThreeDay');
                    };
                    if (wish_date_up_down == "3")
                    {
                        $('#calendar').fullCalendar('changeView', 'agendaFourDay');
                    };
                    if (wish_date_up_down == "4")
                    {
                        $('#calendar').fullCalendar('changeView', 'agendaFiveDay');
                    };
                    if (wish_date_up_down == "5")
                    {
                        $('#calendar').fullCalendar('changeView', 'agendaSixDay');
                    };
                };
            };
            if (change_view_to == "sevendays")
            {
                $('#calendar').fullCalendar('changeView', 'agendaSevenDay');
            };
        }
    });
});

0 个答案:

没有答案