برنامه نویسیعمومی

بهینه سازی صفحات asp.net

بهینه سازی و افزایش کارآیی و سرعت برنامه ها یasp.net جز موارد ضروری برای هر سایت طراحی شده با این زبان است. با وجود کارا بودن asp.net و وجود آن جهت رفع نقص ها و کمبودهای قبلی نیاز است تا نکات زیر را رعایت نمایید.

جهت بهینه سازی صفحات وب طراحی شده توسط asp.net می توانید کارهای زیر را انجام دهید :

 Viewstate را غیرفعال کنید :

 گزینه ی EnableViewStateرا برای هر کنترلی که نیازی به viewstate ندارد ، برابر false قرار دهید. درصورتیکه صفحه ی شما از postback استفاده نمی کند غیرفعالسازی این خصوصیت مشکلی ایجاد نخواهد کرد.

 از Page.Ispostback در رویداد page_load استفاده کنید :

 مطمئن شوید که همه ی کدهای موجود در page_load در بلاک if( Page.Ispostback) باشند در غیر اینصورت با هر لودینگ صفحه کدها اجرا شده و منابع سرور را اشغال می کنند.

 فراخوانی ها برای سرویس های وب را همگام کنید :

درصورتیکه از سرویس های وب در صفحه ی خود استفاده می کنید و برای لود شدن به زمان بالایی نیاز دارند از فراخوانی های همزمان برای این سرویس ها استفاده کنید البته این روش سربار خاص خود را به دنبال خواهد داشت بنابراین فقط در مواقع ضروری از آن استفاده نمایید.

 

برای عملیات رشته ای از string builder استفاده کنید.

در عملیات رشته ای طولانی از قابلیت فوق به جای عملیات دستی استفاده نمایید.

 مدیریت exception ها را به شکلی خاص انجام دهید :

 Exception ها را فقط در مواقع مورد نیاز اجرا نمایید از آنجایی که اجرای exception در کارایی سایت تان موثر خواهد بود از عبارتی مانند if not system.dbnull …. در مدیریت آنها استفاده کنید. اگر از exception استفاده کردید با دستور finally حافظه اختصاص داده شده را آزاد کنید و به Garbage Collector برای انجام این کار تکیه نکنید.

 

قابلیت Page Buffering را در حالت on قرار دهید :

این قابلیت را در حالت on قرار دهید.در جاهایی که صفحات وب بزرگی وجود دارند کاربر می تواند در حین لود صفحه بخش هایی از آن را مشاهده نماید.

 از caching استفاده نمایید :

تا حد ممکن داده ها را cache کنید خصوصا داده هایی را که می دانید تغییری نخواهند کرد و یا چندین بار مورد استفاده قرار می گیرند.

حتی برای صفحاتی که به طور مداوم تغییر پیدا نمی کنند نیز می توانید از قابلیت page caching استفاده کنید. کد زیر مثالی در این رابطه را نشان می دهد :

<% @OutputCache Duration=”60″ VaryByParam=”none” %>

از فایل های script استفاده کنید :

دستورات javascript را به طور مستقیم در صفحات قرار ندهید و آنها را در فایلی با پسوند .js ذخیره و سپس فراخوانی نمایید.مزیت این کار این است که کدهای یکسان به اشتراک گذاشته می شوند و فایل حاوی کدهای جاوا یک بار در کش مرورگر لود می شود و نیازی به دانلود مجدد آن نخواهد بود.

سایر اسکریپت های جاوای غیر قابل استفاده را حذف کنید.

درصورتیکه از کنترل Tabstrip استفاده می کنید HTML های مخفی را پاک کنید :

برای این کار کافی است خصوصیت Autopostback of Tabstrip را در حالت on قرار دهید. همچنین حصوصیت visibility همه ی پنل ها را به غیر از پنل جاری با   false  مقدار دهی نمایید.

این کار باعث می شود هرزمان که tab تغییر می کند صفحه مجدد برگذاری شود.

 

زمانیکه از session استفاده نمی کنید آن را غیر فعال نمایید :

کد زیر این کار را انجام می دهد :

<%@ Page EnableSessionState=”false” %>

اگر صفحه فقط session را می خواند و چیزی در آن نمی نویسد آن را در حالت read قرار دهید.

<%@ Page EnableSessionState=”ReadOnly” %>

 

Option Strict را در حالت on قرار دهید .

این قابلیت باعث می شود برخی تبدیلات انواع (type convesion) مانند int به real که به صورت مخفیانه انجام می شوند حذف شوند.

از قابلیت threading استفاده نمایید :

زمانیکه فصد دانلود حجم بالایی از داده ها رادارید از threading استفاده کنید.از آنجاییکه این قابلیت ممکن است باعث ایجاد سربار شود در استفاده از آن باید دقت لازم را به خرج دهید. از thread های  long term کمترین استفاده را داشته باشید و تا حد ممکن بین آنها سوئیچ ننمایید.

از توابع chunky استفاده کنید :

فراخوانی chunky تابعی است که چندین وظیفه را انجام می دهد. طراحی برنامه ی شما بایستی به گونه ای باشد که به فراخوانی های کوچک و مداوم که دارای سربار هستند تکیه ننماید .

از ajax استفاده کنید:

فایل هایی که لود ینگ آنها به صورت مداوم انجام می شود را با کد ajax طراحی کنید.

 از کلاس SqlDataReader استفاده کنید :

این کلاس روشی را فراهم می آورد تا جریان های داده ای را که از sqlserver بازیابی می شوند  در آن خوانده شوند.اگر تنها نیاز به خواندن داده ها دارید،  کلاس SqlDataReader کارایی بیشتری را در مقایسه با کلاس dataset ارائه می دهد.چرا که از پروتکل Tabular Data Stream برای خواند داده ها از اتصالات دیتابیس استفاده می کند.

 از Stored Procedures استفاده کنید :

این رویه ها سریع تر از دستورات sql قراخوانی می شوند چرا که به صورت precompile  می باشند.

 هنگام استفاده از سرویس های وب بیشتر دقت نمایید :

این نوع سرویس ها به دلیل دارا بودن حجم بالایی از داده ها به حافظه بالایی نیاز دارند ، فقط در مواقع ضروری از آنها استفاده نمایید.

 

 منبع :

http://www.codeproject.com/

با کارت بانکی باشگاه ایران هاست پولتان به حسابتان باز می گردد.

همین حالا رایگان عضو شوید

مدیر بلاگ

مشخصات مدیر

نوشته های مشابه

یک نظر

  1. نکات خوبی رو بهشون اشاره کردید .سوالی داشتم .اگر در صفحات asp چندید dropdownlist داشته باشیم که به کرات استفاده بشن بهتره محتوای اونها رو از دیتا بیس بخونیم یا اینکه مقادیرشون رو در صفحه aspx در داخل تگشون بنویسیم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن