jQuery fullcalendar: события (как канал json) и события (как функция) возникают в IE - PullRequest
0 голосов
/ 18 октября 2010

Я использую полный календарь jQuery с Grails. Ранее я использовал события (как канал json), и когда пользователь нажимает prev / next или изменяет представления, URL канала json вызывается каждый раз.

Поскольку мне нужно также проверить сеанс пользователя, я изменил с событий (в виде потока json) на события (как функции), как показано ниже. Проблема в первый раз, когда он работает, но в следующий раз запрос ajax не отправляется на сервер, а IE показывает из кэша. Если я очищаю кеш браузера, то он снова получает его с сервера.

Так что проблема в том, что IE кеширует объекты событий. Могу ли я знать, что я делаю не так? Странно, что это работает штрафы в Firefox и Chrome.

//events: calendarEventsURL            
        events: function(start, end, callback) {
            $.ajax({
                url: calendarEventsURL,
                data: {
                    start: Math.round(start.getTime() / 1000),
                    end: Math.round(end.getTime() / 1000)
                },
                success: function(msg) {
                    if(msg == "no-session"){                    
                        $("#wait").html(invalidSessionMsg).fadeIn('fast',function(){
                            $("#wait").fadeOut(2000,function(){
                                window.location= "/" + $("#appName").val() + "/";
                            });    
                        });                    
                    } else {
                        var events = [];
                        for(var c = 0; c < msg.length; c++){
                            events.push({
                                id: msg[c].id,                                
                                title: msg[c].title,
                                allDay: false,
                                start: msg[c].start,
                                end: msg[c].end
                            });
                        }
                        callback(events);
                  } 
                } , error: function(){                                  
                      $("#wait").html(errorMsg).fadeIn('fast',function(){
                    });    
                  }
            });
        }

Ответы [ 2 ]

5 голосов
/ 18 октября 2010

Попробуйте установить для свойства кэша значение false:

//events: calendarEventsURL            
        events: function(start, end, callback) {
            $.ajax({
                cache: false,
                url: calendarEventsURL,
                data: {
                    start: Math.round(start.getTime() / 1000),
                    end: Math.round(end.getTime() / 1000)
                },
                success: function(msg) {
                    if(msg == "no-session"){                    
                        $("#wait").html(invalidSessionMsg).fadeIn('fast',function(){
                            $("#wait").fadeOut(2000,function(){
                                window.location= "/" + $("#appName").val() + "/";
                            });    
                        });                    
                    } else {
                        var events = [];
                        for(var c = 0; c < msg.length; c++){
                            events.push({
                                id: msg[c].id,                                
                                title: msg[c].title,
                                allDay: false,
                                start: msg[c].start,
                                end: msg[c].end
                            });
                        }
                        callback(events);
                  } 
                } , error: function(){                                  
                      $("#wait").html(errorMsg).fadeIn('fast',function(){
                    });    
                  }
            });
        }
0 голосов
/ 18 октября 2010

просто отправьте случайное число с вашим запросом в качестве параметра Get.

примерно так: url = yoururl?unique=45686541654 -> (уникальный номер)

таким образом, каждый запрос уникален

Вы можете проверить мой ответный пост здесь для аналогичной проблемы / решения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...