2015-10-28 11 views
6

sono su un WAMP impilare e hanno il sotto una riga di codice per demo.html302 immagine reindirizza più lento nei browser

<img src="http://localhost/redirect/demo.php"></img> 

demo.php codice come di seguito

<?php 
header("Location: http://localhost/redirect/blah"); 
exit(); 
?> 

Il codice funziona bene. ma non v'è enorme tempo di risposta durante il download di contenuti Response time using IMG tag

quando cambio demo.html usare tag script vs tag img, ci sono problemi durante i tempi di risposta

<script src="http://localhost/redirect/demo.php"></script> 

Response time using SCRIPT tag

Non sono sicuro del motivo per cui questo sta accadendo ai tag IMG. Qualcuno potrebbe spiegare perché questo sta accadendo e come posso evitarlo? Ci sono metodi alternativi per caricare IMG tramite 302 senza una soluzione javascript.

Nota: questo non può essere un problema PHP/WAMP poiché i tempi di risposta non vengono influenzati quando chiamo http://localhost/redirect/demo.php direttamente. Fidati che questo ha qualcosa a che fare con il browser, il suo rendering, i suoi eventi di caricamento.

+0

I browser moderni sono più intelligenti nel caso di script .. caricheranno gli script contemporaneamente. Allo stesso tempo, HTML caricherà in un approccio top-down e i tag img verranno mostrati dopo che l'immagine è stata recuperata.E @Vivek ha ragione, gli script vengono caricati in modo sincrono mentre le immagini vengono messe in coda e caricate in modo asincrono. – sarath

risposta

0

A seconda dell'utilizzo del reindirizzamento dell'immagine, è possibile dare un'occhiata a URL Rewriting.

Non sono sicuro che sia una buona soluzione perché il codice di esempio è fuori dal contesto.

Si può anche dare un'occhiata a questa domanda, che può fornire informazioni supplementari: Is it OK to HTTP redirect images?

2

Se non sbaglio, gli script vengono caricate in maniera sincrona, mentre le immagini vengono messe in coda e caricati in modo asincrono.

Quindi la mia comprensione è se si utilizza lo script tag, i browser attendere per caricare http://localhost/redirect/demo.php che invia 302. Questo browser forze per eseguire http://localhost/redirect/blah prima di caricare qualsiasi altra cosa.

Invece se si utilizza il tag img, i browser eseguono http://localhost/redirect/demo.php e continuano a caricare la parte rimanente della pagina. Quando demo.php restituisce 302, http://localhost/redirect/blah viene aggiunto alla coda degli URL da caricare. A causa della quale il tempo complessivo per caricare l'immagine è più.

Non so se si può evitare. Probabilmente, abilitare il caching su demo.php potrebbe aiutare nelle richieste successive.