PDA

Просмотр полной версии : Flash приложение не работает в Explorer


Infestum777
10.03.2009, 13:37
Здравствуйте, может подобная проблема уже поднималась на этом форуме, но я увы не нашел, так что не обессудьте, если повторюсь)

В общем, есть флэш файл, на нем изображена карта( просмотреть можно здесь http://www.kaunovandenys.lt/lt/zemelapis/flash.php ), при нажатии на определенный район флэш посредством GET массива передает переменную PHP файлу, который в зависимости от значения переменной передает данные таблице, во всех браузерах это работает кроме Internet Explorer, который подгружает данные один раз и впоследствии они остаются неизменны. Не могли бы вы подсказать с чем может быть связана проблема и как можно её решить, может быть кто-нибудь сталкивался в подобным. Заранее спасибо.

Air_mAn
10.03.2009, 13:47
во всех браузерах это работает кроме Internet Explorer, который подгружает данные один раз и впоследствии они остаются неизменны. Данные наверно кэшируются. В запросе к скрипту можно поставить какое нибудь рандомное число или unix time как дополнительный параметр GET, тогда строка запроса будет каждый раз разной и браузер не будет брать данные из кэша.

Infestum777
10.03.2009, 15:04
Данные наверно кэшируются. В запросе к скрипту можно поставить какое нибудь рандомное число или unix time как дополнительный параметр GET, тогда строка запроса будет каждый раз разной и браузер не будет брать данные из кэша.

Спасибо за ответ, только я уже пробовал это делать через хэдер, в принципе как тут описано спешл фо Explorer:

In order to make Internet Explorer 6 (probably also 7) not to cache pages you should use only these headers:

header("Cache-Control: no-cache");
header("Expires: -1");

as suggested by Microsoft itself [source: http://support.microsoft.com/kb/234067]

но он все равно отображает одно и то же, просто этот флэш был подкорректирован(до этого он и в Explorer работал), он был сохранен в 7-ой версии - подкорректировав сохранил в 8-ой, но после этого бага пробовал снова в 7-ой версии, происходит то же самое.

Infestum777
18.03.2009, 15:31
В общем, если кому то интересно, основная проблема заключалась из-за неправильной интерпретации эксплорером символов "<" и ">"(при том что поля текста было не HTML типа) из-за чего собственно динамический текст на странице подвисал, как ни странно другие браузеры интерпретировали переменные переданные через PHP вполне адекватно, только эксплорер требовал себе индивидуального подхода.

antony_fop_kiev
04.04.2009, 13:12
У меня возникла подобная проблема и тоже пришлось искать всевозможные варианты решения.
1. Кеширование данных зачастую полезно, и совсем обрубать эту штуку не советую. Делайте только для тех данных, которые действительно быстро изменяются. В примере автора топика как раз не тот случай.
2. В PHP обязательно укажите достоверную информацию про передаваемые данные. Если скрипт формирует XML то ПЕРЕД выводом хоть чего-то наружу укажите для данных без кеширования:

header("Content-type: text/xml; charset=utf-8");
header("Cache-Control: no-cache");
header("Expires: -1");

У меня ошибка возникала в IE до тех пор, пока было "text/plain" из примера. И вот тут как раз IE начинал некорректно воспринимать символы < и >.
3. Не обязательно, но рекомендуется, валидно формировать данные. Мало того что флеш работает в utf-8, так еще и браузеры могут ругаться, если после обязательных
<?xml version="1.0" encoding="utf-8" ?>
желательно сделать ОДИН ОБЩИЙ УЗЕЛ (ноду). То есть
<node_global>
<datanode>1</datanode>
<datanode>4</datanode>
</node_global>
У меня не было одного корневого узла. Я использовал nextSibling, однако иногда браузер меня обламывал и не передавал корректно данные.
Вот как-то так.