Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery+;Fullcalendar-使用jquery对象进行大量迭代_Javascript_Jquery_Fullcalendar - Fatal编程技术网

Javascript JQuery+;Fullcalendar-使用jquery对象进行大量迭代

Javascript JQuery+;Fullcalendar-使用jquery对象进行大量迭代,javascript,jquery,fullcalendar,Javascript,Jquery,Fullcalendar,我正在尝试渲染大量事件(大约50个,可能更多) for(var eventIndex=0;eventIndex

我正在尝试渲染大量事件(大约50个,可能更多)

for(var eventIndex=0;eventIndex

这需要几秒钟,有时浏览器会要求我中止scipt执行。所以,我想,我需要一种方法来完成它,就像异步并行执行脚本的最后一部分一样。你能给我一些工具之类的建议吗?Thx

修改环路本身可能在某种程度上有所帮助。阅读这篇文章

还有这个

通常,循环的最快方式是
,而
反向循环,简化了测试条件:

var i = arr.length; while (i--) {/*....*/}

你必须一个接一个地渲染吗?为什么不先设置一个类似JSON数组的数组,然后将其添加到eventSources?日历呈现大量事件的最佳方式是让Fullcalendar为您完成这项工作。在我看来,你们正在尝试做fullcalendar内部已经做过的事情。检查下面的例子,这是如果你必须做这个客户端,我会做这个服务器端

          var jsonarray = [];    
          for (var eventIndex = 0; eventIndex < resp.select_events.length; eventIndex++){

               /* c.fullCalendar('renderEvent',{
                    id: event.id,
                    title: eventName,
                    start: event.event_date,
                    description: eventDesc,
                    write: event.write
                },true);*/
               var event = resp.select_events[eventIndex];
               var myevent = {
                    "id": event.id,
                    "title": eventName,
                    "start": event.event_date,
                    "description": eventDesc,
                    "write": event.write
               }; 
               jsonarray.push(myevent); 
            }

            c.fullCalendar('addEventSource', jsonarray);
var jsonarray=[];
对于(var eventIndex=0;eventIndex

如果您有任何疑问,请告知em

您是否需要逐一提交?为什么不先设置一个类似JSON数组的数组并将其添加到eventSources中呢?thx,我刚刚发现了这种方法)我不知道,这种方法要快得多)我认为开发人员应该在文档中提到这一点)我想他提到了一些东西……很高兴我能提供帮助。顺便说一句,您应该在服务器端而不是客户端执行此过程,只需将已构建的json数组从服务器传递到客户端,您只需在客户端执行addEventSource操作,因为您不知道每个用户计算机的处理能力;)
          var jsonarray = [];    
          for (var eventIndex = 0; eventIndex < resp.select_events.length; eventIndex++){

               /* c.fullCalendar('renderEvent',{
                    id: event.id,
                    title: eventName,
                    start: event.event_date,
                    description: eventDesc,
                    write: event.write
                },true);*/
               var event = resp.select_events[eventIndex];
               var myevent = {
                    "id": event.id,
                    "title": eventName,
                    "start": event.event_date,
                    "description": eventDesc,
                    "write": event.write
               }; 
               jsonarray.push(myevent); 
            }

            c.fullCalendar('addEventSource', jsonarray);