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. |
Я не спец, но скажу, что писал бы иначе.
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(); |
success: function(data){
alert( "Data received: " + data ); } |
cmd и Deff, пробовал использовать анонимную функцию, результат как и пржде в Опере и FF все работает, а вот IE загружает и отрабатывает только при старте страницы, но при повторном вызове молчит.
DebugBar для IE выдает такую странную строку в timing по выполнению повторного запроса: "All request retrieved from cache (no server request)." Думаю следует в заголовке php файла, отправлять не кешировать страницу. Ща попробую:) |
Мои подозрения по поводу кеширования оказались верны:)
Добавил в начале документа 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, спасибо за помощь! |
wUI,
Гы - Вы хоть бы пердупредили, что повторный запрос той же страницы стандатрный выход такой: $.ajax({ async: false, url: './engine/modules/getData/lineChart.php?'+Math.random(), dataType: 'Json', success: function(data){ |
Deff,
Выглядит лаконичней моего решения, проверю! спасибо. :) |
Интересно, а так сработало бы?
$.ajax({ async: false, cache: false, dataType: 'Json', ... |
Часовой пояс GMT +3, время: 08:05. |