我现在正在使用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');
};
}
});
});