2008-08-14 13 views
24

को तेज करना मेरे पास एक Ajax.Net सक्षम ASP.Net 2.0 वेब साइट है। डेटाबेस और स्कीमा के रूप में साइट और डेटाबेस दोनों के लिए होस्टिंग मेरे नियंत्रण से बाहर हैं। हार्डवेयर पर परीक्षण में, मैं नियंत्रित करता हूं कि साइट क्लाइंट के हार्डवेयर पर अच्छी तरह से प्रदर्शन करती है, फिर भी पृष्ठों को फिर से लोड या बदलने पर ध्यान देने योग्य देरी होती है।एएसपी.Net वेब साइट या एप्लिकेशन

मैं जो करना चाहता हूं वह मेरे आवेदन को जितना संभव हो उतना कॉम्पैक्ट और तेज़ कर सकता है जब मैं इसे वितरित करता हूं। एक विचार है कि साइट के सभी स्थिर संसाधनों के लिए समाप्ति तिथियां सेट करें ताकि उन्हें पृष्ठ लोड पर याद नहीं किया जा सके। संसाधनों से मेरा मतलब छवियों, लिंक्ड स्टाइल शीट्स और जावास्क्रिप्ट स्रोत फ़ाइलों का मतलब है। क्या इसे करने का कोई आसान तरीका है?

नेट वेबसाइट को अनुकूलित करने के लिए अन्य तरीके क्या हैं?

अद्यतन: मैं साइट पर YSlow चलाने की है और उन क्षेत्रों में जहाँ मैं मुश्किल हिट कर रहा हूँ जावास्क्रिप्ट की संख्या में हैं और स्टाइल शीट लोड किए जा रहे (23 जे एस फ़ाइलें और 5 स्टाइल शीट)। Ajax.net और Asp द्वारा सभी को एक (मुख्य स्टाइल शीट) डाला गया है। इतने सारे क्यों?

उत्तर

22
  1. Script Combining in .net 3.5 SP1
  2. Best Practices for fast websites
  3. HTTP संपीड़न (gzip)
  4. कम्प्रेस जे एस/सीएसएस (http संपीड़न से अलग, JavaScript कम करें)
    1. YUI Compressor
    2. .NET YUI Compressor

मेरी सबसे अच्छी सलाह है YUI content देखें। उनके पास कुछ शानदार लेख हैं जो CSS sprites जैसी चीजों के बारे में बात करते हैं और ब्राउज़र बनाने वाले कुछ nice javascript libraries to help reduce the number of requests हैं।

0

आप अपने ग्राहक के समर्थन के आधार पर संपीड़न चालू कर सकते हैं। यह आलेख देखें: link text

0

स्थिर संसाधनों को तब तक नाराज नहीं किया जाना चाहिए जब तक कि बदला न जाए। आईआईएस एक प्रतिक्रिया कोड भेज देगा जो ब्राउज़र को कैश किए गए संस्करण का उपयोग करने के लिए कहता है।

3

डिफ़ॉल्ट रूप से व्यूस्टेट बंद करें, यह सबसे सरल पृष्ठों पर रात और दिन का अंतर भी होगा।

1

मुझे लगता है कि आपको वास्तव में अनुकूलित करने के बारे में एक प्रबुद्ध निर्णय लेने में सक्षम होने के लिए उत्पादन में चलने के दौरान ऐप से कुछ वास्तविक PerfMon डेटा/टेलीमेट्री प्राप्त करने में सक्षम होना चाहिए।

एक फेंक के रूप में दूर टिप मुझे यकीन है कि अपने एप्लिकेशन को आपके web.config की 'संकलन' अनुभाग में एक रिलीज निर्माण के रूप में तैनात और डिबग = "false" सेट किया गया है चाहते हैं।

5

यदि आप अपनी वेबसाइट का परीक्षण करने के लिए फ़ायरफ़ॉक्स का उपयोग कर रहे हैं, तो आप याहू से निफ्टी फ़ायरफ़ॉक्स एक्सटेंशन आज़मा सकते हैं! YSlow कहा जाता है।

यह आपके वेब पृष्ठों का विश्लेषण करता है और उच्च प्रदर्शन वेबसाइटों के लिए प्रत्येक सर्वोत्तम प्रथाओं के लिए ए-एफ (ए सर्वश्रेष्ठ और एफ सबसे खराब होने वाला) प्रदान करता है। इससे आपको अपनी वेबसाइट के उन तत्वों को ट्रैक करने में मदद मिलेगी जिन्हें आप स्पीडअप प्राप्त करने के लिए अनुकूलित कर सकते हैं।

1

आपको लगता है कि आपकी समस्या डाउनलोड आकार है - यह आवश्यक नहीं हो सकता है। आपको यह निर्धारित करने के लिए अपने एएसपी.NET साइट के साथ कुछ प्रयोग करना चाहिए कि आपके कोड में ऐसे क्षेत्र हैं जो अनुचित देरी कर रहे हैं। यदि यह पता चला है कि डाउनलोड आकार आपकी समस्या नहीं है, तो आपको अपने परिणामों को कैश करने के तरीके खोजने होंगे (आउटपुट कैशिंग में देखें, जो एक एएसपी.नेट सुविधा है) या अपना कोड अनुकूलित करें।

किसी भी मामले में - प्रदर्शन की समस्या को देखते समय पहला कदम हमेशा आपकी धारणाओं को सत्यापित करने के लिए पहले, फिर कार्रवाई के तरीके पर निर्णय लें।

2

मैं इस एक जोड़े महीने पहले ASP.NET पेज के प्रदर्शन में सुधार के बारे में blog post लिखा था। यहाँ कुछ त्वरित & आसान तरीके हैं -

  • घटना सत्यापन को बंद कर दें दृश्य राज्य
  • बंद करें
  • लागू HTTP gzip/हवा निकालना संपीड़न प्रतिक्रिया आकार (बाइट्स सर्वर से वापस भेजने के लिए है की संख्या को कम करने के लिए ग्राहक)
  • कोशिश प्रत्येक अनुरोध
1

आप कैशिंग रणनीतियों को देख शुरू कर सकता है के लिए अनुकूलन करने के लिए/अपने डेटाबेस कॉल को कम। सीएसएस (यहां तक ​​कि संपीड़ित वाले) और छवियों (यहां तक ​​कि अनुकूलित किए गए) जैसी स्थिर फ़ाइलें केवल समय के लिए ब्राउज़र द्वारा डाउनलोड की जानी चाहिए।

AJAX के लिए स्कर्ट संयोजन का उल्लेख पहले से ही किया जा चुका है, लेकिन मुझे स्क्रिप्ट रिफरेंसप्रोफाइलर एमएस के संदर्भ में कोडप्लेक्स पर रिलीज़ नहीं किया गया है ताकि यह पता लगाने में मदद मिल सके कि क्या गठबंधन करना है। माइक ऑरमंड has a good start point on this

यदि आप अपने डेटाबेस में बहुत से INSERT कर रहे हैं तो एक और युक्ति यह है कि अपने सर्वर की डिस्क कैशिंग को दोबारा जांचना है। मामले में, मेरे पास डेटा आयातक एक रन के दौरान 1.2 मिलियन आवेषण कर रहा था। 4 घंटों तक ले लिया और कैशिंग के बिना बदल दिया। इसके साथ 16 मिनट ले लिया।

0

तुम भी ASP.NET उत्पादन कैशिंग है, जो काफी अपने पृष्ठ के विभिन्न भागों के लिए बारीकी से लागू किया जा सकता पर दे सकता है:

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

1

एक सामान्य बात ASP.NET और अजाक्स (कोई भी अजाक्स का उपयोग करते समय लाइब्रेरी) एक साथ अपने पेज_लोड और पेज_इनिट (और उनके विधि समकक्ष) चीजों को हाथ से बचाने से बचने के लिए है क्योंकि ये प्रत्येक अजाक्स अनुरोध पर निष्पादित होंगे।

जब कहा जाता है कि मैं गंभीरता से ASP.NET AJAX खाई और कुछ और का प्रयोग करेंगे ...

Anthem.NET, AjaxPRO.NET, jQuery या जो कुछ भी ASP.NET AJAX से ...

बेशक मैं अपनी परियोजना के बाद से Ra-Ajax का उपयोग करूंगा। लेकिन फिर मैं पक्षपातपूर्ण हूं ...

+0

प्लग प्लग प्लग .... Zzzzzz – redsquare

संबंधित मुद्दे