Flex HTTPService, cache del browser e IE

11

Inviato il: 2008/02/08 | By: | tshanky In: Manifestazioni / conferenze , RIA - Flex / AIR / PDF / Ajax

Questa mattina ho parlato a un evento di Flex a Hyderabad (India). nostri (Saven Technologies) i membri del team a Hyderabad ha progettato e organizzato questo evento fantastico. E 'stato un evento pubblico. Oltre 200 persone hanno partecipato entusiasti all'evento.

Ho sinceramente apprezzato lo sforzo degli organizzatori e ringraziare i partecipanti per aver reso un evento di successo.

Uno dei partecipanti mi ha fatto una domanda sui problemi con Flex HTTPService e la cache del browser IE. Ho promesso di fornire una soluzione dettagliata al problema, quindi qui è:

Problema: HTTPService ripetute chiamate effettuate da quando Flex (in esecuzione all'interno di un'istanza del browser IE) molte volte finisce senza HTTP chiamata esterna. Sembra il dato è servita dalla cache.

Motivo: Il Trasporta sulle spalle Flash Player nel browser per effettuare la chiamata HTTP. cache di IE la risposta del HTTP GET chiamate e sulla presenza dei rendimenti stesso URL la risposta dalla cache.

Soluzione: Il problema può essere risolto sia sul lato server o sul lato client.

soluzione lato server: Impostare le intestazioni HTTP della risposta per evitare di tornare risposta dalla cache.

In HTML: (nell'intestazione)

<META HTTP-EQUIV="Cache-Control" CONTENT="NO-CACHE">
<META HTTP-EQUIV="expires" CONTENT="0">

In PHP: (nello script)

header ("Cache-Control: no-cache, must-revalidate");
header ("Expires: Mon, 26 luglio 1997 05:00:00 GMT");

In JSP: (prima di scrivere nel flusso di output)

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

soluzione lato client: (1) Effettuare chiamate HTTP POST - solo le chiamate HTTP GET sono serviti dalla cache o (2) Assicurarsi che l'URL HTTP GET è diverso ogni volta.

(1) Effettuare chiamate HTTP POST -
set method = "POST" e gestire la chiamata opportunamente

(2) Aggiungere un parametro unico per la chiamata HTTP GET in modo che l'URL sia diverso ogni volta. Un timbro di tempo unico è una buona scelta.
Il seguente codice di esempio, può fare il lavoro:

var timeStampForNocache: Date = new Date ();
params.noCacheControlVar = timeStampForNocache.getTime (). toString ();
Ho chiamato il parametro "noCacheControlVar". È possibile denominare qualsiasi altra cosa che vi piace. Il nome non ha importanza. Ciò che conta è che il timestamp rende il HTTP GET URL univoco.

Questo è tutto! Speranza che aiuta e IE non ti HTTPService problemi quando si utilizzano più.

Commenti

Ciao,

Abbiamo appena imbattuto in un problema serio di ieri, in cui stiamo usando per fare HTTPService xmlrpc. Noi lo facciamo attraverso i posti con il as3rpclib (sul codice google) ed ha trovato che, se proviamo a fare due domande in rapida successione le prime opere e il secondo restituisce un errore. Utilizzando il Fiddler2 posso vedere le richieste, secondo e primo e entrambi sono infatti posti, e il ritorno risultati corretti sia dal server.

Quando il debug sto vedendo il risultato della seconda chiamata per attivare un # 2032: Errore di Stream.

Avete un'idea di qualsiasi arounds di lavoro in questo caso?

Grazie e saluti
Marchio

grazie molto ¡¡¡¡
Avevo passato un sacco di tempo a cercare questo ¡¡¡.
Ci ho provato e funziona ¡¡¡
Grazie ancora.

Ehi
Grazie per questo post.
Ci ho provato, e ho lavorato bene
Ma oggi mentre sto testando il mio progetto, cache di nuovo ..
tutto u altra cosa consiglia di fare.

Grazie in anticipo

la ringrazio molto per il posto. questo mi ha aiutato a atleast poche ore.

la ringrazio molto per il POST

Grazie mille, questo risolve esattamente il mio problema!

Grazie!

Grazie mille .. :)

La modifica arriva a post non è una soluzione accettabile. Essi non sono uguali ...

La tua soluzione lato server non ha risolto il problema. Ecco una soluzione molto migliore
http://faindu.wordpress.com/2008/04/18/ie7-ssl-xml-flex-error-2032-stream-error/

Invia un commento

FireStats icona Powered by FireStats