Flex HTTPService, кэш браузера и IE

8

Опубликовано: 02-08-2008 | Автор: tshanky | В: Общественные события / Конференции, РИА - Flex / AIR / PDF / Ajax

Сегодня утром я говорил на мероприятии Flex в Хайдарабаде (Индия). Наш (SAVEN технологий) членам команды в Хайдарабаде спланировали и организовали это фантастическое событие. Это было общественное мероприятие. Enthusiatic Более 200 человек приняли участие в мероприятии.

Я искренне ценю усилия организаторов и поблагодарить посетителей за что делает его успешным мероприятием.

Один из участников задал мне вопрос о проблемах с гибким HTTPService и кэш браузера IE. Я обещала предоставить подробные решения этой проблемы, так вот она:

Проблема: HTTPService Повторные вызовы, когда из Flex (работает внутри экземпляра браузера IE), многие разы заканчивается без каких-либо внешних вызовов HTTP. Похоже, данные подаются из кэша.

Причина: Flash Player piggybacks в браузере, чтобы позвонить HTTP. IE кэширует ответ от HTTP GET звонки и на возникновение одного и того же URL возвращает ответ из кэша.

Решение: Эта проблема может быть решена либо на стороне сервера или на стороне клиента.

Сервер стороны решение: Установить HTTP заголовков ответа, чтобы избежать возвращения ответа из кэша.

В HTML: (в заголовке)

<META HTTP-EQUIV="Cache-Control" CONTENT="NO-CACHE">
<META Http-equiv="Expires" CONTENT="0">

В PHP: (в сценарии)

Header ( "Cache-Control: No-Cache, должна-раз подтверждают");
Header ( "Expires: Mon, 26 июля 1997 05:00:00 GMT");

В JSP: (прежде чем писать в выходной поток)

response.setHeader ( "Cache-Control", "No-Cache");
response.setDateHeader ( "Expires", 0);

Клиент сторона решения: (1) Сделать HTTP POST звонок - только HTTP GET звонки обслуживаются из кэша или (2) Убедитесь, HTTP GET URL это каждый раз разные.

(1) сделать HTTP POST звонок --
установить методы = "POST" и обрабатывать вызовы надлежащим

(2) добавлять уникальный параметр для HTTP GET вызова, что URL это каждый раз разные. Уникальный штамп времени является хорошим выбором.
Следующий пример кода, может сделать работу:

VAR timeStampForNocache: Дата = New Date ();
params.noCacheControlVar = timeStampForNocache.getTime (). ToString ();
Я назвал свой параметр "noCacheControlVar". Вы можете назвать ее как угодно, что угодно. Название не имеет значения. Важно то, что метка делает HTTP GET URL уникальным.

Вот и все! Надеемся, что она помогает и то есть не беспокоить вас при использовании HTTPService больше.

Комментариев

[...] Источника [...]

Привет,

Мы только что натолкнулся на серьезную проблему вчера, где мы используем HTTPService сделать XMLRPC. Мы делаем это с помощью сообщений с использованием as3rpclib (на Google Code) и обнаружил, что если мы попытаемся сделать 2 просьба в быстрой последовательности из первых работ, а вторая возвращает ошибку. Использование Fiddler2 я вижу, второй и первой просьбы и как действительно должности, и как вернуть правильный результат с сервера.

При отладке я вижу результат из второго вызова, чтобы вызвать # 2032: Stream Error.

Есть ли у вас идеи каких-либо работ обходные в этом случае?

Спасибо и уважением
Марка

Большое спасибо ¡¡¡¡
Я потратил много времени на поиски этой ¡¡¡.
Я попробовал и оно работает ¡¡¡
Еще раз спасибо.

Эй
Спасибо за этот пост.
Я пробовал, и я работал штрафа
Но сегодня, когда я пытаюсь использовать мой проект, он кэширует снова ..
ничего у предлагаю сделать.

Спасибо вперед

Благодарю вас за сообщение. Это помогло мне Atleast несколько часов.

Спасибо большое за POST

Спасибо большое, это именно исправления моей проблемы!

Спасибо!

Опубликовать комментарий

FireStats значок Powered By FireStats