Не работает ajax от jQuery в IE
Возникла такая проблема:
Есть html-таблица, куда через ajax от jquery попадают каждую секунду данные из json-файла (php забирает данные из json и этот php уже обрабатывается и из него берутся необходимые значения). Всё работает в Firefox, Google Chrome, но в IE код не срабатывает. Версия IE восьмая, пробовалось в 7-й, 11-й - аналогично. Данные загружаются в ячейки и тут же замирают - обновление стопорится. Так же есть див, в который помещено текущее время сервера - оно тоже загружается один раз и стопорится - следущая секунда уже не рефрешится. Использую функцию getJSON. Вот часть кода для определённой части таблицы: function getJSON(url) { $.getJSON( url, function( data ) { $.each( data, function( key, val ) { $.each(val, function(k, v) { $('#' + key + '-' + k).removeAttr('class').addClass("alert-" + v.alert).html(v.value); if((parseFloat(v.value)) < -32000 ) { $('#' + key + '-' + k).addClass("number").text("N/D"); }; $('#clock').html("JSON time: " + data.XBO001.DTS); }); }); }); } Кто-нибудь сталкивался с такой проблемой? Как её можно устранить? |
Цитата:
getJSON("get_json.XBO.php"); getJSON("get_json.tgk.php"); getJSON("get_json.reg.php"); setInterval(function() { getJSON("get_json.XBO.php"); getJSON2("get_json.tgk.php"); getJSON3("get_json.reg.php"); }, 10000); }); function getJSON(url) { $.getJSON( url, function( data ) { $.each( data, function( key, val ) { $.each(val, function(k, v) { $('#' + key + '-' + k).removeAttr('class').addClass("alert-" + v.alert).html(v.value); if((parseFloat(v.value)) < -32000 ) { $('#' + key + '-' + k).addClass("number").text("N/D"); }; $('#clock').html("JSON time: " + data.XBO001.DTS); }); }); }); } $(document).ready(function() { getJSON(); setInterval(getJSON2, 1000); }); function getJSON2() { $.getJSON( "get_json.tgk.php", function( data ) { $.each( data, function( key, val ) { $.each(val, function(k, v) { $('#' + key + '-' + k).html(v.value); if((parseFloat(v.value)) > 100.00) { $('#' + key + '-' + k).addClass("alert-3"); } else {$('#' + key + '-' + k).removeClass("alert-3")}; }); }); }); } $(document).ready(function() { getJSON(); setInterval(getJSON3, 10000); }); function getJSON3() { $.getJSON( "get_json.reg.php", function( data ) { $.each( data, function( key, val ) { $.each(val, function(k, v) { $('#' + key + '-' + k).html(v.value); if((parseFloat(v.value)) > 1000.00) { $('#' + key + '-' + k).addClass("alert-3"); } else {$('#' + key + '-' + k).removeClass("alert-3")}; }); }); }); } |
EvgLuch,
какая версия jQuery? |
Цитата:
Пробовал менять версии - не помогало. Может, шило на мыло менял. ))) Какая версия актуальная для данной ситуации, можете подсказать? |
А ты вешал вызов функции на кнопку, не по таймеру?
Если щелкаешь по кнопке с периодичностью в одну секунду, данные нормально обновляются? =) |
EvgLuch,
поддержка ие была до версии 1.9.1 попробуйте jquery-migrate он возвращает поддержку старых браузеров пример |
Цитата:
|
Кто-нибудь может ещё что-нибудь предложить? :help:
Неужели нет решения для IE? |
EvgLuch, поставьте jQuery версии 1.8.
|
Цитата:
|
Цитата:
|
Для эксперимента убрал всё "большое" с кода и оставил минимум: html, css, собственно сам jQuery, php-скрип с запросом текущего времени (с секундами) и js-скрипт с функцией setTimeout, который раз в секунду берёт данные с php и вставляет их в див html.
Ситуация такая же! В IE 8,9,10 обновления простейшего таймера не происходит (в див загружаются данные единыжды и на этом всё встаёт), а в остальных браузерах скрипты успешно работают! Скрипт в файле js для загрузки файла php: setTimeout(function() { updateInfo(); }, 1000); function updateInfo() { $.ajax({ type: "GET", url: "time_server.php", success: function(data){$('#timeServer').html('Server Time: ' + data)} }); }; Скрипт в файле php для получения текущего времени: <?php echo date("H:i:s"); ?> В чём может быть загвоздка? :help: |
Ок. Эту проблему решил: указал вместо типа GET тип POST. Теперь понятно: IE не любит GET, а любит POST. :)
А как теперь основной код, где используется getjson перевести в POST? Кто-нибудь сталкивался с такой задачей? |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 06:29. |