Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Τοπική μεταβλητή ή ViewState?

Îåêßíçóå áðü ôï ìÝëïò gspiros. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 26-03-2007, 19:36. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  26-03-2007, 19:13 27095

    Τοπική μεταβλητή ή ViewState?

    Έστω ότι θέλω να έχω αποθηκευμένη μια τιμή, ας πούμε int για όλη την διάρκεια μίας σελίδας, ποιά μέθοδος είναι καλύτερη και γιατί?

    public partial class page1 : System.Web.UI.Page
    {
        private int aux=0;

        protected void Page_Load(object sender, EventArgs e)
        {
           .....
        }
        
        ........ // διάφορες συναρτήσεις, οιποίες αλλάζουν ή χρησιμοποιούν την τιμή του aux
    }

    ή

    public partial class page1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            .....
           ViewState["aux"]=5;
           .....
        }
        ........ // διάφορες συναρτήσεις, οιποίες αλλάζουν ή χρησιμοποιούν την τιμή του aux

    }

    Στην περίπτωση με την τοπική μεταβλητή, η aux υπάρχει ΜΟΝΟ όσο στον browser έχω την σελίδα page.aspx ή συνεχίζει και υπάρχει???
  •  26-03-2007, 19:36 27096 σε απάντηση της 27095

    Απ: Τοπική μεταβλητή ή ViewState?

    Η τοπική μεταβλητή υπάρχει μόνο όσο ο server επεξεργάζεται την σελίδα, είτε όταν την καλεί ο browser για πρώτη φορά είτε όταν δέχεται κάποιο postback από τον client. Η τοπική μεταβλητή δεν επηρεάζεται από το αν η σελίδα εμφανίζεται ακόμα στον browser ή όχι.
    Το viewstate πρέπει να το δεις ως ένα κουβά από bits στον οποίο τόσο ο server όσο και ο browser αποθηκεύουν μεταβλητές. Ο κουβάς έχει επίσης μεθόδους οι οποίες μας επιτρέπουν να δούμε τί τιμή έχουν οι μεταβλητές. Ο κουβάς αυτός στέλνεται μαζί με τα περιεχόμενα της σελίδας στον browser όταν τελειώσει η επεξεργασία, διαβάζεται από τον browser και όταν γίνει postback στον server στέλνεται πίσω στον server. Όπως και ο κάθε κουβάς, καλό είναι να μην γεμίζει με πάρα πολλά πράγματα γιατί "βαραίνει", δηλαδή αυξάνει πολύ το μέγεθος της σελίδας και των postbacks.
    Αν θέλεις να αποθηκεύσεις σχετικά λίγες μεταβλητές, οι οποίες χρειάζονται και στον client και στο server, μπορείς να τις αποθηκεύσεις εύκολα στο viewstate. Διαφορετικά, δες και τις άλλες μεθόδους αποθήκευσης δεδομένων για μία εφαρμογή web, όπως το session state το οποίο υπάρχει όσο υπάρχει το session του χρήστη (ουσιαστικά μέχρι να κάνει logout ή να κάνει timeout το session).

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems