Domanda

Ho costruito un portale di notizie online prima che sta lavorando bene per me, ma alcuni dicono che il home page è lento un po '. Quando penso che vedo una ragione per la quale essa sia.

La home page dei display del sito

  1. In Primo piano
  2. news Spot (sotto-titoli
  3. Faretti con foto
  4. La maggior parte leggere le news (come titoli)
  5. La maggior parte notizia commentata (i titoli)
  6. 5 titoli di notizie di ogni categoria notizie (11 in totale per esempio sport, economia, locali, la salute     ecc ..)

Ora, ognuno di questi sono query separata dal db. Ho TableAdapters serie di dati e DataTable (dati standard acces scenari) e quindi per titoli, che io chiamo la logica di business nella mia classe notizia che restituisce i DataTable dal TableAdapter. da lì in poi, utilizzare la DataTable semplicemente legandolo ai controlli o (il più delle volte) l'oggetto lo converte in una lista (di notizie) per esempio e che consumo da lì.

Fare questo per ciascuno dei sopra sembra funzionare bene comunque. Almeno non mette un carico enorme. Ma mi domando se c'è un modo migliore.

Ad esempio, il progetto ho descritto sopra è un sito web altamente dinamico, le notizie sono inseriti man mano che arrivano dalle agenzie di 24 ore non-stop. così la memorizzazione nella cache in questo caso potrebbe non sembrare buono. ma d'altra parte, che conosco hanno un altro progetto simile per un giornale locale. Il sito sarà aggiornato solo una volta al giorno. In questo caso: Posso solo io eseguire una query, che sarebbe tornare un DataTable che contiene tutti gli elementi notizie inserite per oggi, quindi query che DataTable e luogo titoli, macchie e altri oggetti ai loro rispettivi posti sul sito? O c'è un'alternativa migliore in giro? Ho appena vagare come altre persone svolgono compiti simili in modo più efficiente.

È stato utile?

Soluzione

Credo che si dovrebbe utilizzare Firebug per scoprire quali elementi stanno prendendo tempo per caricare. A volte immagini di grandi dimensioni possono rovinare lo spettacolo (e la dimensione dell'immagine sullo schermo non è sempre relativo sua dimensione del download).

In secondo luogo si potrebbe scaricare il plugin per Firefox Yahoo YSlow e indagare se avete qualsiasi script rallentando.

Ma Firebug dovrebbe darvi la migliore recensione. Dopo aver caricato Firebug clic sulla scheda 'Rete' per visualizzare il tempo di caricamento di ogni elemento della pagina.

Altri suggerimenti

Non

Se hai scarso rendimento, il primo passo è quello di iniziare gingillarsi. Profilo codice. Scoprire esattamente il motivo per cui è lento. È il rallentamento nella trasmissione pagina, rendendolo, o addirittura in modo dinamico la generazione della pagina? È una singola query richiede troppo tempo?

Scopri esattamente dove il collo di bottiglia è e attaccare il problema al suo cuore.

Caching è anche una buona idea, anche nei casi in cui il contenuto viene aggiornato abbastanza rapidamente. Fino a quando il meccanismo di caching è intelligente, ci si può comunque risparmiare un sacco di tempo di generazione. Nel caso di un portale di notizie o di un blog al contrario di un forum, il vostro grado di migliorare le prestazioni notevolmente con un sistema di caching.

Se si scopre che i ritardi provengono dal DB, controllare le tabelle, assicurarsi che stanno correttamente indicizzati, cluster, o quant'altro è necessario in base alla quantità di dati nella tabella. Inoltre, se si sta utilizzando query dinamiche, prova invece stored procedure.

Se si desidera ottenere diverse query fatte in una richiesta di database, è possibile. Dal momento che inizialmente è solito essere mostrando tutti i dati fino a quando tutte le query sono fatte in ogni caso, e salvo eventuali altri problemi, sarete almeno risparmia del tempo su come accedere nuovamente il DB per ogni singola query. DataSet in possesso di un insieme di tabelle, possono essere generati da diverse query nella stessa richiesta.

ASP.NET fornisce un meccanismo abbastanza piacevole già per il caching (HttpContext.Cache) che si può avvolgere intorno e rendere più facile per voi da usare. Dal momento che è possibile impostare una durata di vita sui vostri oggetti memorizzati nella cache, non si hanno veramente a preoccuparsi di articoli e titolo non essere aggiornati.

Se stai usando WebForms di questo sito web, disattivare ViewState per i controlli che in realtà non hanno bisogno di loro solo per rendere la pagina che po 'più veloce da caricare. Per non parlare di un sacco di altri ritocchi e modifiche per rendere un caricamento della pagina più veloce (gzipping, riducendo al minimo gli script, ecc.)

Ancora, prima di fare nulla di tutto ciò, fare come Anthony suggerito e il profilo del tuo codice. Scopri che il vero problema.

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