Javascript偶尔会失败(10%ish)

时间:2015-04-16 19:55:38

标签: javascript .net

我的javascript代码存在一个小问题。我正在尝试使用fullCalendar,并且90%的时间它完美无缺。但是,大约10%的时间,它似乎无法加载fullCalendar函数,我不知道为什么。

我在日历放入的div上方调用了3个外部脚本:

<script src="../../../../assets/lib/moment.min.js"></script>
<script src="../../../../assets/lib/jquery.min.js"></script>
<script src="../../../../assets/js/fullcalendar.js"></script>
<div id="calendar"></div>

以下是我的javascript:

//variables to pull the serialized data from c# through to javascript.
var dateStart = '<%=dateStartListToJS%>';
var dateEnd = '<%=dateEndListToJS%>';
var titles = '<%=titlesListToJS%>';
var links = '<%=linksListToJS%>';

//use JSON to parse into arrays.
var dateStartArray = JSON.parse(dateStart);
var dateEndArray = JSON.parse(dateEnd);
var titlesArray = JSON.parse(titles);
var linksArray = JSON.parse(links);

//initiate variable to handle our calendar events.
var JSONEvents = [];

//for testing...
//alert(dateStartArray + dateEndArray + titlesArray + linksArray);

//show the calendar and hide the buttons to switch between the calendar and list.
$("#calendar").show();
$(".viewAsList").hide();
$(".viewAsCalendar").hide();

//while we still have more calendar events to add, run this loop to add courses to the calendar.
//calendar currently only displays the start date of the course.
for (var i = 0; i < dateStartArray.length ; i++) {
    JSONEvents.push(
        {
            "title": titlesArray[i],
            "url": linksArray[i],
            "start": dateStartArray[i],
            "end": dateEndArray[i],
            "allDay": true,
            //"backgroundColor"       :   "#FFF"
        });
}

//function: createCalendar. creates the calendar
function createCalendar() {
    //using fullcalendar
    $('#calendar').fullCalendar({

        //setting up the header of the calendar.
        header: {
            center: '',
            right: 'prev,next',
            left: 'title'
            //right: 'month'
        },
        eventColor: '#FCFCFC',
        events: JSONEvents

    });
    $(".viewAsCalendar").show();
    $("#calendar").hide();

    $('.viewAsCalendar').click(function () {
        $(".viewAsCalendar").hide();
        $(".viewAsList").show();
        $("#courseDetailDisplay").hide();
        $("#calendar").show();

    });

    $('.viewAsList').click(function () {
        $(".viewAsCalendar").show();
        $(".viewAsList").hide();
        $("#courseDetailDisplay").show();
        $("#calendar").hide();


    });


}

//if the calendar can't load and an error is thrown, try reloading the calendar
//function loadCalendar() {
//    try {
//        createCalendar();
//    }
//    catch (err) {
//        //alert("test");
//        setTimeout(function () {
//            loadCalendar();
//        }, 4000);

//    }
//}

$(window).load(function () {
    createCalendar();

});

当我运行页面时,它通常可以正常工作,但是当它失败时,我在包含$('#calendar').fullCalendar({的行上收到错误,说:

  

未捕获的TypeError:undefined不是函数

有谁知道为什么会这样?我已经尝试使用(document).ready和(head).ready切换(窗口).load,并且都没有解决问题。

非常感谢任何帮助。

谢谢!

编辑:根据建议我尝试了以下内容:

将所有引号更改为双引号“” 添加了150ms的超时 检查网络选项卡以查看是否有任何文件未加载。

不幸的是,由于所有3个文件都在加载,所以上述任何一个都没有帮助,最大加载时间为50毫秒(通常约为10-15毫秒)。

还有其他建议吗?我在这里提供帮助

0 个答案:

没有答案