ASP vs javascript vs jQuery vs User Controls vs AJAX

1

Sempre più spesso quando sviluppo siti, utilizzo più tecnologie lato client come Javascript, jQuery e AJAX.

Per tre pagine diverse ho misurato la dimensione dell'HTML inviato al browser (escluse immagini e CSS).

Quello che ho trovato è stato:

  • Una pagina con controlli ASP.NET normali + un po 'di jQuery: ca. size = 30kb

  • Una pagina che utilizza alcuni controlli utente con AJAX e supporto lato client: approx size = 50kb

  • Una pagina che utilizza controlli utente più complessi da una libreria con supporto lato client pesante: ca. size = 110kb

Come puoi vedere, la dimensione dei dati trasferiti sembra aumentare man mano che il supporto lato client e le funzionalità AJAX vengono aggiunte.

Ciò aumenta i requisiti di larghezza di banda del sito e presumibilmente il carico di I / O del server che può ridurre il numero di utenti concorrenti che possono essere offerti.

Dovrei preoccuparmi di bilanciare le ricche funzionalità lato client e l'interattività con il carico del server e l'utilizzo della larghezza di banda?

Quali sono le priorità, se ce ne sono?

    
posta AtoMerZ 25.08.2011 - 18:14
fonte

5 risposte

3

Are we supposed to use these features (javascript, jQuery, AJAX, etc..)?

Dipende dai requisiti per la costruzione di un'applicazione. Utilizza gli strumenti che forniscono soluzioni accettabili per le tue esigenze.

If so why does it make such big difference in the size of pages?

Non sono abbastanza sicuro se stai guardando solo la pagina o l'intera richiesta. La maggior parte del codice JavaScript che presumo si trova in file separati che possono essere memorizzati nella cache dal browser. Quindi la prima richiesta potrebbe essere grande, ma le richieste successive sarebbero molto più piccole. (Anche per prendere più carico del tuo server, guarda usando un CDN)

Is it the way I have used them or is it a common problem (I've heard so). ?

Dato che non ci hai fornito alcun codice o esempi, potrebbe essere il modo in cui li hai usati. Oppure potrebbero essere i controlli che hai tentato di utilizzare. Ho notato che i controlli di Telerik sembrano piuttosto gonfiati, ma questa è la mia opinione.

How do I balance page interactivity and server's load?

Questi sono per lo più indipendenti l'uno dall'altro. È possibile creare una pagina molto interattiva che può essere più o meno carica sul server (il carico presumo sia CPU / tempo disco). A mio parere, AJAX per la maggior parte riduce semplicemente il numero di volte che i layout completi devono essere inviati dal server al client che; è meno larghezza di banda e un po 'meno carico su un server a causa della mancanza di "rendering" html.

What are priorities?

Dipende molto dai requisiti dell'applicazione. Sembra che tu abbia saltato da un trampolino a una grande piscina di opportunità basate sul web, ma non sai dove nuotare.

Uso principalmente JQuery , che ha molte funzioni utili molto utili:

  • Selezioni di elementi DOM
  • DOM traversal e modifica (incluso il supporto per CSS 1-3)
  • Eventi CSS
  • manipolazione Effetti e animazioni
  • Ajax
  • Estensibilità tramite plug-in
  • Utilità - come il browser
  • versione e ogni funzione.
  • Supporto cross-browser

Certo, devo programmare da solo le funzionalità.

    
risposta data 25.08.2011 - 18:28
fonte
5

Non puoi aspettarti di ottenere qualcosa per niente. Queste librerie richiedono più larghezza di banda iniziale per l'utente, ma una volta memorizzato nella cache, i browser sono abbastanza intelligenti da non dover continuare a effettuare il refetching dove non è necessario.

Le reti di Content Delivery (CDN) offrono la possibilità di condividere versioni cache di queste librerie su più richieste del sito, quindi usare una CDN per recuperare jQuery per un sito significa che il browser non si preoccuperà di recuperarlo di nuovo su un altro sito che usa lo stesso CDN.

Per analizzare i tuoi problemi specifici con le dimensioni della pagina, dovrai analizzare dove viene speso la larghezza di banda. Prendi qualcosa come Firebug (per Firefox) o altri strumenti di sviluppo (tutti i principali browser li hanno) e ti forniscono un'interfaccia per determinare il costo appropriato per ogni risorsa (immagine, css, javascript, ecc.). Da ciò, determinare dove è possibile apportare miglioramenti:

  • Unione di risorse statiche (CSS, Javascript)
  • Sprite di immagini (combinando le immagini in singole immagini e usando CSS per posizionarle)
  • Compressione HTTP (gzip, deflate)
risposta data 25.08.2011 - 18:21
fonte
1

Ciò a cui penso non hai pensato è che se fai riferimento a tutti i file js e controls nella tua intestazione, verranno scaricati solo la prima volta, come i CSS. In questo modo tutto il resto delle pagine caricherà solo 30kb. non inserire il controllo effettivo e il codice js nei file html .. solo un riferimento che può essere eseguito dalla cache

    
risposta data 25.08.2011 - 18:21
fonte
0

Il modo in cui AJAX salva le risorse del server è che gli utenti (idealmente) fanno esattamente una richiesta a pagina intera una volta . Da lì se l'utente inizia a sfogliare altre pagine Web, le richieste dovrebbero in genere essere molto più piccole, perché non stai ricaricando tutto sulla pagina, ma solo il contenuto diverso.

Assumi i seguenti dati inventati (dovrai testare i valori effettivi)

Values    | AJAX  |  Normal
============================
First     | 120   |   30
Page Load |       |
----------|-----------------
Subsequent|  10   |   30
Page Load |       |

  | AJAX | Normal
==================
1 |  120 | 30
2 |  130 | 60
3 |  140 | 90
4 |  150 | 120
5 |  160 | 150
6 |  170 | 180
7 |  180 | 210
8 |  190 | 240
9 |  200 | 270
10|  210 | 300

Dovrai comunque prendere in considerazione il caching, che probabilmente ridurrà le chiamate successive con richieste normali e di AJAX, ma l'idea generale è che per gli utenti ripetuti su sessioni più lunghe, i dati totali l'utilizzo sarà significativamente inferiore rispetto a una pagina normale (perché continuare a ricaricare la barra laterale quando non è stata modificata?)

Inoltre, JavaScript consente una significativa minificazione del codice che semplicemente non esiste con HTML puro + CSS oltre a eliminare lo spazio bianco.

    
risposta data 25.08.2011 - 18:24
fonte
0

Assicurati di abilitare gzip sul server e che il client lo utilizza. Ciò ridurrà la larghezza di banda.

    
risposta data 26.08.2011 - 19:08
fonte

Leggi altre domande sui tag