Sto lavorando con un framework Web (uPortal) che gestisce gli errori semplicemente lanciando un'eccezione e quindi sospendendo. Il framework funziona rendendo l'XML in HTML. Quando c'è un'eccezione, il browser riceve il contenuto reso fino all'elemento del modello XML che non funziona, quindi il browser si siede e attende un timeout. La teoria del nostro team è che il contenuto viene inviato prima che si verifichi l'errore, cosa che mi ha sorpreso. Altri framework con cui ho lavorato sembrano finire il rendering prima di inviare contenuti.Reindirizza la pagina Web dopo aver inviato alcuni contenuti
La mia domanda è, c'è un modo per reindirizzare il browser dopo che il contenuto è già stato inviato? In questo caso, siamo nel mezzo del rendering del contenuto di un tag <script>
, ma l'errore potrebbe verificarsi potenzialmente ovunque nel codice HTML.
Il mio unico pensiero attuale è quella di iniettare un po 'di javascript nella parte superiore della pagina, e cercare di cambiare il comportamento del quadro a fallire rapidamente e chiudere la connessione e aggiungere </body>
e </html>
tag quando si verifica un errore. Quindi il javascript sopra menzionato verrebbe eseguito sul pageload e rileverà se il contenuto dell'intera pagina era presente e eseguirà un reindirizzamento sul lato client se non lo è. Forse potrebbe cercare uno speciale div nascosto in fondo alla pagina.
Esistono esempi di framework che risolvono questo problema in modo diverso o di persone che utilizzano framework simili che lavorano a questo problema?
In che modo altri framework risolvono questo problema? Come la primavera, per esempio? Non molla aspettare fino a quando le visualizzazioni non vengono visualizzate prima di scrivere sulla risposta? Oppure tutti i framework hanno questo problema? – xdhmoore
@xdhmoore alla fine Spring si basa anche sulla tecnologia servlet e, per quanto ne so, segue la seconda strategia menzionata nella mia risposta. Questo https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc potrebbe essere di interesse, ma è principalmente su come inviare a una pagina di errore significativo e non su come evitare o recuperare da un'eccezione. – wero
Spring ti consente di rilevare eccezioni dal livello vista/jsp? Dove sono confuso è che in questo framework stiamo vedendo il blocco della pagina all'eccezione dopo aver caricato tutto il contenuto precedente.Avevo pensato che altri framework come spring rendevano tutto prima di iniziare a restituire il contenuto (in modo che potessero restituire una pagina di errore in caso di eccezione), ma questo framework sembra iniziare a restituire il contenuto prima che venga eseguito il rendering, che mi sembra di fare la tua opzione 3 sopra l'unica scelta ... – xdhmoore