Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.07.2012, 15:22
wUI wUI вне форума
Аспирант
Отправить личное сообщение для wUI Посмотреть профиль Найти все сообщения от wUI
 
Регистрация: 19.04.2012
Сообщений: 78

Ajax, проблемы в IE.
Всем доброго времени суток!
Наверное самая избитая тема: IE и Ajax.
Есть элемент кода:

function onDataReceived(w){
...//обработка получаемых данных
}

function requestData() {
                $.ajax({
                    async: false,
                    url: './engine/modules/getData/lineChart.php',
                    dataType: 'Json',
                    success: onDataReceived
                });
            }
requestData();


При первоночальной загрузке странице IE отрабатывает как нужно, подтягивает данные аяксом. Но при необходимости повторного вызова requestData(); - тишина. В Опере, FF повторный вызов послушно отрабатывает и подтягивает свежие данные.

Помогите советом.=)

update_1: дебагом выяснил, что повторный вызов все таки вызывает функцию onDataReceived(), но вот данные повторно перебирать отказывается IE.

Последний раз редактировалось wUI, 05.07.2012 в 15:27.
Ответить с цитированием
  #2 (permalink)  
Старый 06.07.2012, 04:31
Аватар для cmd
cmd cmd вне форума
Профессор
Отправить личное сообщение для cmd Посмотреть профиль Найти все сообщения от cmd
 
Регистрация: 19.03.2011
Сообщений: 177

Я не спец, но скажу, что писал бы иначе.
1. используя анонимную функцию в success
2. а что за параметр w? почему не передаете?

function onDataReceived(w){
...//обработка получаемых данных
}

function requestData() 
{

$.ajax({
	async: false,
	url: './engine/modules/getData/lineChart.php',
	dataType: 'Json',
	success: function(data){
		onDataReceived(data.somevalue);
	}
});

}

requestData();
__________________
Cogito, ergo sum
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2012, 04:38
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

success: function(data){
alert( "Data received: " + data );
}
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2012, 06:08
wUI wUI вне форума
Аспирант
Отправить личное сообщение для wUI Посмотреть профиль Найти все сообщения от wUI
 
Регистрация: 19.04.2012
Сообщений: 78

cmd и Deff, пробовал использовать анонимную функцию, результат как и пржде в Опере и FF все работает, а вот IE загружает и отрабатывает только при старте страницы, но при повторном вызове молчит.
DebugBar для IE выдает такую странную строку в timing по выполнению повторного запроса: "All request retrieved from cache (no server request)."
Думаю следует в заголовке php файла, отправлять не кешировать страницу. Ща попробую
Ответить с цитированием
  #5 (permalink)  
Старый 06.07.2012, 06:15
wUI wUI вне форума
Аспирант
Отправить личное сообщение для wUI Посмотреть профиль Найти все сообщения от wUI
 
Регистрация: 19.04.2012
Сообщений: 78

Мои подозрения по поводу кеширования оказались верны

Добавил в начале документа php (отвечающего за получение данных) эти заголовки:
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");


cmd и Deff, спасибо за помощь!
Ответить с цитированием
  #6 (permalink)  
Старый 06.07.2012, 06:26
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

wUI,
Гы - Вы хоть бы пердупредили, что повторный запрос той же страницы

стандатрный выход такой:
$.ajax({ 
	                    async: false, 
	                    url: './engine/modules/getData/lineChart.php?'+Math.random(),
	    dataType: 'Json',
	    success: function(data){
Ответить с цитированием
  #7 (permalink)  
Старый 06.07.2012, 06:41
wUI wUI вне форума
Аспирант
Отправить личное сообщение для wUI Посмотреть профиль Найти все сообщения от wUI
 
Регистрация: 19.04.2012
Сообщений: 78

Deff,
Выглядит лаконичней моего решения, проверю! спасибо.
Ответить с цитированием
  #8 (permalink)  
Старый 06.07.2012, 14:54
Аватар для cmd
cmd cmd вне форума
Профессор
Отправить личное сообщение для cmd Посмотреть профиль Найти все сообщения от cmd
 
Регистрация: 19.03.2011
Сообщений: 177

Интересно, а так сработало бы?
$.ajax({ 
	    async: false, 
	    cache: false,
	    dataType: 'Json',
...
__________________
Cogito, ergo sum
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма обратной связи на AJAX проблемы с модальным окном pavel87 AJAX и COMET 0 26.05.2011 14:30
Проблемы с кодировкой в AJAX alxcube Общие вопросы Javascript 3 18.01.2011 12:09
Проблемы с кодировкой в ajax Axenic Общие вопросы Javascript 3 27.07.2010 09:30
js + ajax проблемы insy AJAX и COMET 0 04.04.2010 14:58
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37