2012-05-10 13 views
8

Abbiamo appena lanciato una nuova app Web basata su ASP.NET MVC che funziona perfettamente su tutte le connessioni desktop e su tutti i dispositivi mobili come iPhone, ecc. Tuttavia, quando determinate pagine vengono visualizzate su una connessione 3G (tramite un dongle 3G su un laptop o direttamente su un dispositivo mobile), viene visualizzata una pagina bianca vuota senza alcun tipo di contenuto. Sembra che abbiamo restituito una richiesta vuota.Le pagine ASP.NET MVC non sono servite su 3G o su determinati server proxy

Su alcune reti proxy, abbiamo riscontrato un problema simile in cui si dice che la dimensione della richiesta è troppo grande. Questo tipo di ha senso, poiché riguarda solo determinate pagine e suppongo che i provider di rete mobile gestiscano tutti i tipi di server proxy dalla loro parte.

Tuttavia, non sono stato in grado di trovare alcuna informazione su ciò che costituirebbe una richiesta troppo grande. Ho fatto il profilo una delle pagine in questione, qui sono alcune delle statistiche ho pensato che potrebbe essere rilevante:

HTML dimensioni del contenuto: 33.04KB compressa, 50.65KB non compresso
dimensione totale di tutti i fogli di stile (4 file): 32.39KB compresso, non compresso 181.65KB
dimensione totale di tutti JS esterni (24 file): 227.82KB compresso, non compresso 851.46KB

Per me, la dimensione compressa del contenuto non è eccessiva, ma forse ho sbagliato. Qualcuno può consigliare su cosa posso fare per risolvere questo problema, dato che ho avuto davvero difficoltà a trovare informazioni definitive su questo.

+0

Hai sbagliato la dimensione del tuo CSS non compresso? Lo spero davvero. – thirtydot

+0

L'ho fatto, mi dispiace per quello.Risolto il problema – pauldunlop

+0

Hai provato a disattivare la compressione? Potrebbe essere che il tuo server web stia implementando la compressione in un modo che alcuni proxy web o intermediari di rete 3G non sono in grado di gestire. Per lo meno, condividi come viene impostata la compressione in modo che possiamo vedere se è lì che si trova il problema. – Jacob

risposta

0

Abbiamo effettivamente risolto questo problema, ed era ridotto alla dimensione e al numero di elementi Set-Cookie nell'intestazione della risposta. Abbiamo riscontrato un errore per il quale nell'intestazione c'erano circa 100 elementi Set-Cookie. Risolvere questo bug e ridurre la dimensione dei valori risolve il problema

2

Per quanto riguarda MVC, le reti 3G non sono diverse da Wifi. Tuttavia, esiste una limitazione della dimensione dei file che i dispositivi mobili possono memorizzare nella cache. In quel caso quei file saranno richiesti dal server con ogni postback.

Poiché alcune pagine funzionano, penso che sia una buona idea isolare il problema a un punto specifico di errore piuttosto che cercare in modo selvaggio.

È possibile eseguire il debug di problemi easilt con un dongle 3G e Firebug in Firefox o Chrome Developer Tools

  • Assicurarsi che non vi siano errori Java Script, in primo luogo, che sta causando il problema
  • Confermare il Javascript/i file css/html vengono effettivamente consegnati al client. (Firebug sul client). Sul server controllare i registri IIS o MS Network Monitor o creare un proxy http in cui è possibile monitorare il traffico. Prova con chi ti trovi bene.
  • Hai quasi 30 richieste solo per css/java script/html e il numero può essere maggiore se hai immagini. Il completamento di tutte quelle richieste potrebbe richiedere per sempre il 3G. Prova a raggruppare i file Java Script e ridurre il numero di richieste. I browser hanno limitazioni sul numero di richieste simultanee che possono fare, aggiungendo al tempo (Firefox credo possa fare circa 10 richieste simultanee).
+0

Grazie per i vostri suggerimenti. Il fatto è che il nostro carico JS/CSS non è altamente ottimizzato in questo momento, così serviamo la stessa identica payload, minified in pacchi di JS e CSS in ogni pagina del sito. Per me, questo esclude la possibilità che sia correlato al JS/CSS. Suppongo anche che elimini un problema di memorizzazione nella cache/caricamento, poiché gli stessi dispositivi mobili stanno bene su una connessione WiFi, ecc. La mia ipotesi è che deve essere correlato alla dimensione dei pacchetti HTML iniziali, ma posso trovare nessuna informazione per confermare se ciò potrebbe essere un problema, e in tal caso, qual è il limite di dimensione. – pauldunlop