La situazioneapplicazione singola pagina web riguarda
sto prototipazione un'applicazione web di diverse pagine, alcune delle quali con gravi carico JavaScript. Ho avuto l'idea (non molto originale) di caricare il layout della pagina una sola volta e di modificare il contenuto solo con richieste Ajax. Questo può essere fatto, e funziona bene, ma ho alcune preoccupazioni.
Il sito verifica ogni richiesta che riceve e, se si tratta di una richiesta AJAX, restituisce solo il contenuto (come una vista parziale MVC 4, ma non è esattamente il punto, questo può essere fatto ovunque.) Altrimenti, carica tutta la pagina, con il layout e tutto. L'idea è di avere qualcosa come un flag di stato per ogni pacchetto javascript che sto scaricando. Il layout avrebbe un file js di inizializzazione, contenente la logica di visualizzazione di base della pagina, come ottenere i contenuti, ecc.
Tutte le pagine di contenuto verrebbero controllate, se i loro script pertinenti sono caricati, in caso contrario, quindi avviare il scarica e, in caso di successo, imposta il flag corretto. Per i casi in cui la chiamata ajax fallisce per qualche motivo, è necessaria una gestione degli errori aggiuntiva.
The Question (s)
Ora la mia preoccupazione è, non v'è abbastanza molto JS su alcuni "sottopagine". Dal momento che devo essere in grado di lavorare sui browser mobili (anche se la maggior parte dei contenuti js-pesanti è solo desktop, ma dimentichiamolo per un minuto), come inciderà sulle prestazioni, se avessi bisogno di diversi MB-s di script caricati in memoria e "mai" scaricandoli (poiché la pagina non viene ricaricata). Inoltre, gli script verranno memorizzati nella cache, se li ottengo tramite la funzione jQuery.getScript (...)? O dovrei caricare gli script in un altro modo?
Stessa domanda per il contenuto. Se rimuovo gli elementi DOM dal corpo, li sostituisco con altri elementi, quindi ricarico la pagina secondaria originale, cosa farò con l'utilizzo della memoria e le prestazioni, durante un lungo periodo di utilizzo?
Mi piacerebbe davvero che qualcuno esperto in questo campo mi desse qualche idea sulle mie preoccupazioni, prima di farmi sembrare completamente stupido con un prototipo di proof-of-concept inutile.
Grazie in anticipo!
EDIT: Titolo cambiato per una corretta espressione
EDIT 2: Separato qual è la domanda, e ciò che è il contesto
Questo risponde (più come elimina) a metà della mia domanda. Che ne dici di elementi DOM leggibili rimossi, specialmente quelli con gestori di eventi collegati a loro? Quanto impatto avranno sulle prestazioni (anche se tendo ad usare la funzione jquery su (...) per evitare questo problema, sarei interessato a cosa succede) – Robert
@Robert - Dipende dal tipo di elementi DOM che vuoi aggiungere/rimuovere e quanto spesso lo fai. – Venemo
@Robert Aggiornamento della mia risposta – Venemo