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, время: 02:06. |