Domanda

Sto cercando di limitare alcune stranezze in corso con le mie chiamate AJAX. I miei script PHP hanno questo all'inizio:

ob_start("ob_gzhandler");

Funziona alla grande con HTML. Ma ci sono problemi nel farlo con i dati application / json? Qualche problema del browser di cui qualcuno è a conoscenza?

È stato utile?

Soluzione

Non credo ... Ho usato file statici memorizzati come JSON compressi in precedenza e ha funzionato perfettamente con AJAX.

modifica: ho controllato il mio script php e l'unica cosa speciale che ho fatto è stato includere queste intestazioni:

Content-Encoding: gzip
Content-Type: text/plain

Se ricordo bene, ogni volta che ho provato a cambiare il Content-Type in qualcosa che indicasse JSON, il client ha avuto problemi.

Altri suggerimenti

Alcuni browser meno recenti, come alcune versioni di IE6, rovinano i contenuti compressi con gzip, in particolare i contenuti js.

Controlla solo che il tuo server invii un'intestazione di codifica del contenuto corretta, ovvero

Content-Encoding: gzip

Dovresti anche controllare le intestazioni inviate dal browser per la corretta intestazione di accettazione della codifica prima di inviare contenuti compressi con gzip ... ovvero,

Accept-Encoding: gzip,deflate

Puoi distribuire contenuti compressi con gzip ogni volta che il browser specifica gzip nell'intestazione della richiesta Accept-Encoding . In tal caso, non esiste alcuna differenza tra JSON e HTML e nessun problema sarà causato in alcun modo.

Invece di abilitare la compressione in PHP, abiliterei la compressione in Apache (usando mod_deflate) in modo da poter verificare la presenza di vari browser incompatibili e inviare solo dati compressi per i browser che lo accettano e gestirli correttamente.

http://httpd.apache.org/docs/2.0/mod /mod_deflate.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top