|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
|
[ASP.NET] ajax e oggetti "shared"
Ciao a tutti.
Ho da poco iniziato a programmare in ASP.NET, utilizzando anche l'estensione AJAX. Vorrei discutere con voi la possibilità di creare una pagina che gestisca la "concorrenza" e l'aggiornamento in tempo reale di parte di un sito. Mi spiego meglio, i termini di sopra sono probabilmente inappropriati. 1) l'utente A sta visitando la pagina Lista.aspx. La pagina visualizza un elenco dinamico, mettiamo di prodotti. 2) l'utente B sta aggiungendo un prodotto, mentre A sta visitando la stessa pagina Lista.aspx Mi rendo conto che in una situazione del genere sia impossible per l'utente A di avere informazioni aggiornate se non facendo il refresh della pagina. Tuttavia, se A e B avessero in comune un oggetto "shared" (dataset, datatable, oggetto business, qualsiasi cosa) sarebbe fattibile e facile richiamare un DataBind() o analogo per aggiornare (con AJAX) il "pezzetto di pagina" dell'utente A. Probabilmente non conosco bene (anzi: non conosco) il funzionamento base del framework ![]() Al momento della richiesta di A, l'oggetto DATASET viene istanziato. Al momento della richiesta di B, DATASET viene istanziato di nuovo (cioè B ha una propria copia dell'oggetto) ??? ![]() Al limite, facendo in modo che DATASET sia un singleton, sarebbe possible condividere la sua informazione tra A e B. Spero di essermi spiegato bene e spero che l'oggetto della richiesta vi coinvolga nella discussione. ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2000
Città: Provincia di Parma
Messaggi: 724
|
Potresti realizzare il tutto utilizzando la cache di ASP.NET, che è "globale" a tutte le sessioni utente.
In pratica, il primo utente che richiede le informazioni le legge dal DB e le mette in cache, gli altri utenti che richiederanno le stesse informazioni le preleveranno dalla cache. Il tuo metodo di business che restituisce le informazioni, dovrà prima verificare se i dati richiesti sono già in cache. Ad ogni oggetto della cache puoi assegnare una expiration, che stabilisce per quanto tempo l'oggetto in cache è valido prima che l'engine di ASP.NET lo invalidi. Maggiori info sulla cache di ASP.NET: http://msdn2.microsoft.com/en-us/library/ms178597.aspx Se usi SQL Server come base dati puoi usare la SqlCacheDependency, che permette di validare/invalidare gli oggetti in cache a seconda delle modifiche apportate una tabella/record del database. Maggiori info: http://msdn2.microsoft.com/en-us/library/ms178604.aspx In tutto questo, AJAX renderà più reattiva l'interfaccia, ma il grosso te lo fa già il motore di ASP.NET. Ciao
__________________
My Pc: Case Enermax Chakra - PSU Corsair HX520 - Gigabyte P35-DS3R - Core2 Duo E6550 - 6 Gb RAM Geil PC800 - 2x WD Caviar SE 320Gb (Raid1) - Xfx GeForce 8600Gt - Master Pioneer DVR111D - Samsung SM T220 - S.O. Windows 7 Ultimate x64 SP1 My blog: http://blogs.ugidotnet.org/alby Ultima modifica di Einstein : 17-06-2007 alle 10:29. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:35.