Опубликовано 10 мая, 201114 г. comment_8394481 Не могу добиться, чтобы аjax-jquery выводил изображение, сформированное php-GD в IE Собственно, код: var start=0; $('#gallery a#next_g').click(function(next1){ next1.preventDefault(); start++; var fotolist=$(this).attr('href'); var queryfoto=fotolist.slice(fotolist.indexOf('?')+1); $.ajax({ url: "ajaxfoto.php", type: "post", dataType: "html", data: queryfoto+'&start='+start, beforeSend: function (){ $('#image_loader_2').show(); }, success: function(data, status){ $('#imageslider img').attr('src', 'ajaxfoto.php?'+queryfoto+'&start='+start); }, complete: function(){ $('#image_loader_2').hide(); } }); }); Вручную если ввожу параметры query_string, то все работает как надо во всех браузерах, включая и IE Пробовал использовать // Date in the past header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // always modified header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // HTTP/1.1 header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); // HTTP/1.0 header("Pragma: no-cache"); в Php-скрипте, все равно не помогает. Выручайте, коллеги. Жалоба
Опубликовано 11 мая, 201114 г. Автор comment_8395594 Пробовал. На самом деле проблема оказалась в том, что надо было post а не get использовать.)) IE отличается отсутствием сообразительности, в отличие от других браузеров. Банальная невнимательность - как следствие программирования в 5 часов утра)) Жалоба
Опубликовано 11 мая, 201114 г. comment_8395764 А зачем вы два раза загружаете одну и тоже изображение? Жалоба
Опубликовано 11 мая, 201114 г. comment_8395785 Кстати да, на кой черт тут вообще аякс-то? Просто src меняете у картинки, и оно само загрузится. Если хочется показывать картинку только после того, как она загрузилась - показывайте в ее onload. Со спиннером аналогично - включаете перед подменой src, выключаете в onload. И да, зачем для картинки кэш-то отключать? Жалоба
Опубликовано 11 мая, 201114 г. Автор comment_8395792 А зачем вы два раза загружаете одну и тоже изображение? Изображения разные, так как параметр start увеличивается при каждом клике на 1 и соответственно на единицу большее значение передается в строке параметров для запроса из базы. Жалоба
Опубликовано 11 мая, 201114 г. Автор comment_8395834 Кстати да, на кой черт тут вообще аякс-то? Просто src меняете у картинки, и оно само загрузится. Если хочется показывать картинку только после того, как она загрузилась - показывайте в ее onload. Со спиннером аналогично - включаете перед подменой src, выключаете в onload. И да, зачем для картинки кэш-то отключать? С аяксом посовременнее смотрится, можно показать индикатор загрузки, которые многие так любят))) А кеш я отключал, я просто слышал много историй про глюки IE с изображениями, сгенерированными скриптами php в духе <img src=index.php> Он их типа кэширует и с обновлением изображений возникают сложности. Вернул его обратно. В моем случае проблема в другом оказалась. Жалоба
Опубликовано 11 мая, 201114 г. comment_8397022 Кстати да, на кой черт тут вообще аякс-то? Просто src меняете у картинки, и оно само загрузится. Если хочется показывать картинку только после того, как она загрузилась - показывайте в ее onload. Со спиннером аналогично - включаете перед подменой src, выключаете в onload. И да, зачем для картинки кэш-то отключать? С аяксом посовременнее смотрится, можно показать индикатор загрузки, которые многие так любят))) Индикатор можно показать и без двух запросов за одной картинкой. У вас вообще результат аяксового запроса не обрабатывается, так зачем же он тогда? Жалоба
Опубликовано 11 мая, 201114 г. Автор comment_8397086 С чего вы взяли что он не обрабатывается? Все отлично обрабатывается. Жалоба
Опубликовано 11 мая, 201114 г. comment_8397100 С чего вы взяли что он не обрабатывается? Все отлично обрабатывается. Ну у вас там код коллбека как бэ написан. В котором данные, пришедшие в ответ, не используются. Жалоба
Опубликовано 11 мая, 201114 г. Автор comment_8397135 С чего вы взяли что он не обрабатывается? Все отлично обрабатывается. Ну у вас там код коллбека как бэ написан. В котором данные, пришедшие в ответ, не используются. Ajax запрос возвращает вот это: success: function(data, status){ $('#imageslider img').attr('src', 'ajaxfoto.php?'+queryfoto+'&start='+start); }, то есть скрипт присваивает картинке в блоке новый путь, а по новому пути браузер ждет новое изображение, сгенерированное скриптом. Просто data по сути это рисунок, так как скрипт возвращает header("content: image/{jpeg, gif, png}"), и этот же рисунок определяется по ссылке ajaxfoto.php?'+queryfoto+'&start='+start Если я заменю на ссылку на data, что доказывает практика, ничего не изменится. Жалоба
Опубликовано 11 мая, 201114 г. comment_8397147 Внимание, вопрос. Что изменится, если вместо всего аякса оставить только коллбек? Жалоба
Опубликовано 11 мая, 201114 г. comment_8397172 А кеш я отключал, я просто слышал много историй про глюки IE с изображениями, сгенерированными скриптами php в духе <img src=index.php> Он их типа кэширует и с обновлением изображений возникают сложности. Вернул его обратно. В моем случае проблема в другом оказалась. Я так и не понял в чём) Жалоба
Опубликовано 11 мая, 201114 г. Автор comment_8397232 Внимание, вопрос. Что изменится, если вместо всего аякса оставить только коллбек? И правда, ничего не изменится. Действительно, тогда в данном случае в аяксе нет никакой необходимости... Урезал скрипт в 2 раза по размеру) Жалоба
Опубликовано 11 мая, 201114 г. Автор comment_8397235 А кеш я отключал, я просто слышал много историй про глюки IE с изображениями, сгенерированными скриптами php в духе <img src=index.php> Он их типа кэширует и с обновлением изображений возникают сложности. Вернул его обратно. В моем случае проблема в другом оказалась. Я так и не понял в чём) В нехватке знаний) Жалоба
Не могу добиться, чтобы аjax-jquery выводил изображение, сформированное php-GD в IE
Собственно, код:
var start=0; $('#gallery a#next_g').click(function(next1){ next1.preventDefault(); start++; var fotolist=$(this).attr('href'); var queryfoto=fotolist.slice(fotolist.indexOf('?')+1); $.ajax({ url: "ajaxfoto.php", type: "post", dataType: "html", data: queryfoto+'&start='+start, beforeSend: function (){ $('#image_loader_2').show(); }, success: function(data, status){ $('#imageslider img').attr('src', 'ajaxfoto.php?'+queryfoto+'&start='+start); }, complete: function(){ $('#image_loader_2').hide(); } }); });Вручную если ввожу параметры query_string, то все работает как надо во всех браузерах, включая и IE
Пробовал использовать
// Date in the past header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // always modified header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // HTTP/1.1 header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); // HTTP/1.0 header("Pragma: no-cache");в Php-скрипте, все равно не помогает.
Выручайте, коллеги.