Код Flex и PHP с проблемой IE Cache или POST - PullRequest
0 голосов
/ 13 сентября 2009

У меня есть приложение Flex, которое использует богатый интерфейс. Пользователь может создавать данные и мгновенно отображать их в списке созданных ими данных. Данные хранятся в базе данных MySQL с помощью запросов POST HTTPService из приложения Flex и форм PHP для обработки данных на стороне сервера. Для объяснения, скажем, данные просто вопрос. Как в Safari, так и в Firefox данные мгновенно отображаются так, как они должны быть добавлены в базу данных, а затем вызваны для перезагрузки. Тем не менее, при использовании IE данные добавляются в базу данных, но они не отображаются сразу, как следует. Иногда требуется, чтобы пользователь очистил кеш, а иногда ему может потребоваться выйти из IE и перезапустить его. Тем не менее, все время он добавляется в базу данных. Форма PHP использует простой оператор MySQL SELECT для получения данных из базы данных.

Известны ли проблемы с кэшированием этих данных в IE в течение длительного времени? Есть ли способ заставить его этого не делать?

Ответы [ 2 ]

1 голос
/ 15 сентября 2009

В последнее время я использую инструмент под названием Fiddler , который позволяет вам просматривать веб-трафик в вашей системе и даже изменять запросы и ответы. В вашем случае вы захотите установить его и настроить его как обратный прокси , чтобы ваше гибкое приложение связывалось через него с уровнем PHP.

После того, как это настроено, вы можете легче отслеживать, что происходит с вашими данными. (Я нашел для меня плагин JSON, который позволяет мне просматривать структуру JSON в виде дерева, но изначально поддерживает представление XML)

Как только вы немного лучше поймете и объясните трафик, я смогу вам помочь. Это не похоже на проблему HTTP 304. Убедитесь, что данные возвращаются в IE.

0 голосов
/ 06 октября 2010

IE славится кэшированием таких вещей, как запросы ajax. Общая большая проблема - для важных запросов, которые не должны кэшироваться, убедитесь, что заголовок прагмы установлен в no-cache ....

так в вызове php:

    header("Pragma: no-cache");

до того, как содержимое будет отображено / возвращено в браузер. Или добавьте метку времени в качестве дополнительного параметра к URL-адресу ajax. Оба подхода означают, что любые промежуточные службы кэширования будут проходить через (например, Redis, прокси-серверы Squid и т. Д.), Что может повлиять на нагрузку на ваш сервер.

Более подробную интерпретацию можно найти здесь: http://thecodeabode.blogspot.com/2010/10/cache-busting-ajax-requests-in-ie.html

...