पेज_इनिट ईवेंट को संभालने या किसी पृष्ठ की ऑनइनिट विधि को ओवरराइड करने के बीच, कौन सा उपयोग करने के लिए बेहतर है? धन्यवाद।पेज_इनिट बनाम ऑनइनिट
उत्तर
मुझे एक साल पहले यह सवाल था, मैं ऑन_एक्स घटनाओं के विरोध में ओवरराइडिंग पर बस गया। यहां लेख है जो मैंने पेशेवरों और विपक्ष को कवर किया है: http://weblogs.asp.net/infinitiesloop/archive/2008/03/24/onload-vs-page-load-vs-load-event.aspx
http://objectmix.com/dotnet/251824-oninit-page_init.html पर एक अच्छा उत्तर है।
http://www.justskins.com/forums/page_init-and-page_load-59045.html का एक और अधिक जवाब है।
यदि ऑटोवेन्टवायरअप गलत पर सेट है तो आपको ऑनइनिट को ओवरराइड करने की आवश्यकता है क्योंकि पेज_इनिट स्वचालित रूप से उपलब्ध नहीं है।
आधार प्रकार की विधि को ओवरराइड करना बेहतर है क्योंकि एक वर्चुअल कॉल एक विधि समूह में किसी ईवेंट को जोड़ने वाले प्रतिनिधि को बनाने से सरल और साफ है।
इसके अलावा, AutoEventWireup
पर true
पर सेट होने का अर्थ है कि आप अपने पेज कोड के पार्सिंग में ओवरहेड पेश कर रहे हैं क्योंकि एएसपी.नेट को आपके लिए निष्पादन समय पर किसी भी प्रतिनिधि को बनाना होगा।
प्लस आप यह चुनने के लिए चुनते हैं कि बेस विधि को कब और कब कॉल करना है, यह भी पेज_लोड शैली –
मूल रूप से इन दो अपहरणों में कोई अंतर नहीं है। है पृष्ठ कक्षा में OnInit में क्या किया जाता है यही कारण है कि:
protected internal override void OnInit(EventArgs e)
{
base.OnInit(e);
if (this._theme != null)
{
this._theme.SetStyleSheet();
}
if (this._styleSheet != null)
{
this._styleSheet.SetStyleSheet();
}
}
अगर हम base.OnInit खुलेगा हम करेंगे से उस जगह जहां Page_Init निकाल दिया जाता है कि:
protected internal virtual void OnInit(EventArgs e)
{
if (this.HasEvents())
{
EventHandler handler = this._occasionalFields.Events[EventInit] as EventHandler;
if (handler != null)
{
handler(this, e);
}
}
}
तो मूल रूप से कोई इन दो दृष्टिकोणों में अंतर। हालांकि आपको आधार पर कॉल करने की आवश्यकता है। अगर आप ईवेंट के बजाय ओवरराइड का उपयोग करना चुनते हैं तो अपने ओवर्रिडेन विधि में पर क्लिक करें। और दूसरा अंतर यह है कि यदि आप ओवरराइड का उपयोग कर रहे हैं तो आप थीम लागू होने के बाद कुछ कोड चला सकते हैं।
सम्मान।
पीएस एकमात्र चीज जो मैं अनुशंसा करता हूं वह पूरे आवेदन के समान दृष्टिकोण का उपयोग करना है।
हां वहाँ है - केवल ऑनऑक्स विधि को ओवरराइड करते समय आपके पास मूल विधि को कॉल करने का विकल्प होता है (या यहां तक कि इसे कॉल करना भी है या नहीं)। यह थोड़ा नाइट-पिक्य लगता है, लेकिन कुछ मामलों में, यह महत्वपूर्ण हो सकता है। इसलिए मेरी सलाह: हमेशा ओवरराइड करें! –
और मैंने उस क्षमता का उल्लेख किया है - "और एक और अंतर यह है कि यदि आप ओवरराइड का उपयोग कर रहे हैं तो आप थीम लागू होने के बाद कुछ कोड चला सकते हैं।" –
ओएनएक्स क्योंकि ज्यादातर एमएसडीएन के अनुसार व्युत्पन्न कक्षा में ईवेंट को संभालने के लिए पसंदीदा तकनीक है।
ऑनइनिट बेहतर है क्योंकि यह कक्षा स्तर की शुरुआत पर है जबकि पृष्ठ init में अनावश्यक प्रभाव हो सकता है क्योंकि आपको यह जांचना है कि यह पोस्टबैक है या नहीं।
- 1. एएसपी.नेट पेज_इनिट इवेंट?
- 2. एएसपी.नेट - पेज_Pre_init() या पेज_इनिट() या पेज_लोड()
- 3. बनाम बनाम
- 4. : बनाम बनाम ::
- 5. स्पाइडरमोन्की बनाम जावास्क्रिप्ट बनाम बनाम?
- 6. Mercurial: भ्रष्टाचार बनाम रिकॉर्ड बनाम qrecord बनाम शेल्व बनाम प्रत्यारोपण बनाम dirstate बनाम कतार
- 7. LINQ बनाम लैम्ब्डा बनाम अज्ञात तरीके बनाम बनाम
- 8. एनएचबीर्नेट एचक्यूएल बनाम मानदंड बनाम क्वेरीरी बनाम लिंक बनाम। प्रदर्शन
- 9. डीकोड और व्याख्या को बनाम बनाम बनाम बनाम
- 10. इनलाइन बनाम __inline बनाम __inline__ बनाम __forceinline बनाम?
- 11. एपीआई बनाम टूलकिट बनाम फ्रेमवर्क बनाम लाइब्रेरी
- 12. pymssql बनाम pyodbc बनाम adodbapi बनाम ...
- 13. एटमिकोस बनाम जेओटीएम बनाम बिट्रोनिक्स बनाम?
- 14. न्यूट बनाम एमबीयूनीट बनाम एमएसटीएस्ट बनाम xUnit.net
- 15. विधि बनाम फंक्शन बनाम प्रक्रिया बनाम कक्षा?
- 16. .NET बनाम एएसपी.नेट बनाम सीएलआर बनाम एएसपी
- 17. 'विधि' बनाम 'संदेश' बनाम 'फ़ंक्शन' बनाम '???'
- 18. अक्ष 2 बनाम वसंत-बनाम बनाम जर्सी
- 19. एसीई बनाम बूस्ट बनाम पोको बनाम WxWidgets
- 20. control.BeginInvoke() बनाम डिस्पैचर बनाम SynchronizationContext बनाम .. - विश्वसनीयता
- 21. ड्रॉप ... बनाम बनाम
- 22. रेल बनाम बनाम
- 23. _Expand बनाम बनाम जीएनयू
- 24. एफ़टीपी कमांड्स बनाम बनाम
- 25. गिट में बनाम बनाम
- 26. फ़ाइल बनाम ब्लॉक बनाम
- 27. क्रिस्टलस्पेस बनाम इरलिच बनाम .....?
- 28. एएसएसईआर बनाम एटलसैट बनाम
- 29. NetSqlAzMan बनाम AzMan बनाम (?????)
- 30. प्रतिनिधि बनाम बनाम। आईफोनओएस
धन्यवाद निक के साथ ऐसा नहीं कर सकता! वह एक अच्छा लेख था। मैं ऐसा कुछ ढूंढ रहा था। इसकी सराहना करते हैं। : =) –