Domanda

Ho un sito Web ASP.Net 2.0 abilitato per Ajax.Net.L'hosting sia del sito che del database è fuori dal mio controllo, così come lo schema del database.Nei test sull'hardware controllo che il sito funzioni bene, tuttavia sull'hardware del client si verificano notevoli ritardi durante il ricaricamento o la modifica delle pagine.

Quello che vorrei fare è rendere la mia domanda il più compatta e veloce possibile quando la consegno.Un'idea è quella di impostare date di scadenza per tutte le risorse statiche del sito in modo che non vengano richiamate al caricamento della pagina.Per risorse intendo immagini, fogli di stile collegati e file sorgente JavaScript.C'è un modo semplice per farlo?

Quali altri modi esistono per ottimizzare un sito web .Net?

AGGIORNAMENTO:Ho eseguito YSlow sul sito e le aree in cui vengo colpito più duramente sono il numero di JavaScript e fogli di stile caricati (23 file JS e 5 fogli di stile).Tutti tranne uno (il foglio di stile principale) sono stati inseriti da Ajax.net e Asp.Perchè così tanti?

È stato utile?

Soluzione

  1. Combinazione di script in .net 3.5 SP1
  2. Best Practice per siti web veloci
  3. Compressione HTTP (gzip)
  4. Comprimi JS/CSS (diverso dalla compressione http, minimizza javascript)
    1. Compressore YUI
    2. Compressore .NET YUI

Il mio miglior consiglio è di controllare il Contenuti YUI.Hanno degli articoli fantastici che parlano di cose come Sprite CSS e averne un po' belle librerie javascript per aiutare a ridurre il numero di richieste il browser sta creando.

Altri suggerimenti

Se utilizzi Firefox per testare il tuo sito web, potresti provare un'elegante estensione per Firefox di Yahoo!chiamato Ylento.

Analizza le tue pagine web e fornisce voti da A a F (A indica il migliore e F indica il peggiore) per ciascuna delle migliori pratiche, per siti Web ad alte prestazioni.Ti aiuterà a rintracciare gli elementi del tuo sito web che potresti ottimizzare per ottenere accelerazioni.

Disattiva lo stato di visualizzazione per impostazione predefinita, ci sarà una differenza tra giorno e notte anche sulle pagine più semplici.

Ho scritto un post sul blog sul miglioramento delle prestazioni della pagina ASP.NET un paio di mesi fa.Ecco alcuni modi semplici e veloci:

  • Disattiva lo stato di visualizzazione
  • Disattiva la convalida degli eventi
  • Implementare la compressione HTTP gzip/deflate per ridurre la dimensione della risposta (numero di byte che il server deve inviare al client)
  • Prova a ottimizzare/minimizzare le chiamate al database per ogni richiesta

Penso che tu abbia davvero bisogno di essere in grado di ottenere alcuni dati/telemetria PerfMon effettivi dall'app durante l'esecuzione in produzione per poter prendere una decisione illuminata su cosa ottimizzare.

Come suggerimento da buttare via, mi assicurerei che la tua app sia distribuita come a Pubblicazione compila e imposta debug="false" nel campo 'compilazione' del tuo web.config.

Sembra che tu stia iniziando dando per scontato che il tuo problema sia la dimensione del download, ma potrebbe non essere necessariamente così.Dovresti fare qualche sperimentazione con il tuo sito ASP.NET per determinare se ci sono aree nel tuo codice che causano ritardi indebiti.Se risulta che la dimensione del download non è un tuo problema, dovrai trovare modi per memorizzare nella cache i tuoi risultati (guarda la memorizzazione nella cache dell'output, che è una funzionalità ASP.NET) o ottimizzare il tuo codice.

In ogni caso, il primo passo quando si esamina un problema di prestazioni è Sempre per verificare prima le tue ipotesi, quindi decidere una linea di condotta.

Potresti iniziare a considerare le strategie di memorizzazione nella cache.I file statici come CSS (anche quelli compressi) e le immagini (anche quelle ottimizzate) dovrebbero essere scaricati solo una volta dal browser per un periodo di tempo.

La combinazione di Scirpt per AJAX è già stata menzionata, ma non ho notato il riferimento a ScriptReferenceProfiler che MS ha rilasciato su codeplex per aiutare a capire cosa combinare.Mike Ormond ha un buon punto di partenza su questo.

Un altro suggerimento se stai eseguendo molti INSERT nel tuo database è di ricontrollare che la memorizzazione nella cache del disco del tuo server sia attivata.Caso in questione, avevo un importatore di dati che eseguiva 1,2 milioni di inserimenti durante un'esecuzione.Ci sono volute 4 ore e la modifica senza memorizzazione nella cache.Ci sono voluti 16 minuti con esso acceso.

Una cosa generale quando si utilizzano ASP.NET e Ajax (qualsiasi libreria Ajax) insieme è evitare di espandere le cose Page_Load e Page_Init (e le loro controparti del metodo) poiché queste verranno eseguite su ogni richiesta Ajax.

Detto questo, abbandonerei seriamente ASP.NET AJAX e lo userei nulla altro...

Anthem.NET, AjaxPRO.NET, jQuery o qualsiasi altra cosa oltre ad ASP.NET AJAX...

Ovviamente lo userei Ra-Ajax me stesso dato che questo è il mio progetto.Ma ripeto sono di parte...

Potresti attivare la compressione in base al supporto del tuo client.Vedi questo articolo: testo del collegamento

Le risorse statiche non dovrebbero essere inviate nuovamente a meno che non vengano modificate.IIS invierà un codice di risposta che indica al browser di utilizzare la versione memorizzata nella cache.

Potresti anche esaminare la memorizzazione nella cache dell'output ASP.NET, che può essere applicata in modo abbastanza granulare a diverse parti della tua pagina:

http://msdn.microsoft.com/en-us/library/xsbfdd8c(VS.71).aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top