كيف يتم تسريع اداء موقعك او برنامجك من خلال بعض الطرق الهامة
speed asp.net performance
1- Use Page.IsPostBack
هذا يعتبر من اهم الاشياء التي تسرع فتح اي صفحة بها داتا ومعلومات توضع في بداية الصفحة او في حدث الباج لود . بمعني اذا كنت
تستخدم كود في بداية فتح الصفحة وطبعا هذا يحدث كثيرا جدا ضع هذا الكود داخل هذا الكود
if (!Page.IsPostBack)
{
// الكود هنا
}
بهذا ان تخبر الصفحة انه مهما حدث يتم تشغيل الكود مرة واحدة فقط مهما حدث رفرش للصفحة او فتح فيتم فتح الكود مرة واحدة فقط
وبذلك يتم تسريع فتح الصفحة
2- Using Ajax contols
الاجاكس هي ادوات من مايكروسوفت ادوات جاهزة مثل ادوات الفيجوال ستوديو عبارة عن تكنيك يستخدم لتسريع حدث معين
مثل ارسال معلومات او جلب معلومات في الصفحة بدون اعادة تحميل كامل الصفحة ولذلك حاول ان تضع علي الاقل ادواتك داخل اداة
تسمي
UpdatePanel
وهو مثل الكونتينر او الجدول او الديف تضع بداخله ادواتك وبذلك يتم تسريع الاداء في الصفحة فعندما تضغط علي زر مثلا فسوف
يجلب البيانات بدون الشعور بان الصفحة تعيد تحميل بيانات يتم هذا بسرعة جدا
ايضا تعرف علي بعض الادوات الهامة الاخري داخل الاجاكس كما جاء في محاضرة الاجاكس
3- Sql statements
جمل الاستعلام التي تنشأها حدد الحقول التي تريدها ولا تختار كل الحقول مثلا
Select * from users
Select name,email from users
فالاولي تختار كل الحقول بكل البيانات والثانية تحدد ماتريده من الجدول
4- Using OOP
البرمجة الكائنية فهي طريقة المحترفين ودائما ما انصح بها حتي عند الدخول لمقابلة عمل انصح بها في طريقة عرض مشروع لديك
او عمل تاسك او حتي مناقشة مدير العمل فأول شئ يتم النظر اليه هو طريقة المبرمج في كتابة واختصار الكود وهذا مايفضل شخص
علي شخص اخر .
حاول استخدام هذه الطريقة التي تعتمد علي الكلاسات والدي ال ال والتي تختصر في الكود عشرات المرات وبالتالي سرعة في اداء
الصفحة او الموقع .
ارسل لنا متدرب مشكلة لديه في صفحة الدخول لديه وبها كود طويل – وايضا لوب او حلقة تكرارية كبيرة داخل الكود العادي نفسه .
وهذا اصابني بالذهول فهذا غير طبيعي بالمرة فبذلك سوف يجلب البيانات بالكامل ثم يعمل لوب داخل البيانات مرات ومرات وهذا كله
في صفحة دخول . المفروض تكون سريعة لانها تتأكد فقط من اسم وباسورد. تم تصحيح ذلك له وتم التأكيد له علي طريقة البرمجة
الكائنية مع العلم انه كان لايزال بالمستوي الثالث الا انني احببت ان اوجه من البداية للطريق الصحيح . فالبرمجة الكائنية هي لب العمل
الاحترافي وليست سرعة واختصار اكواد فقط .
5-Remove Sessions in asp.net
السشن من اهم الاشياء في الموقع فهو يخزن بيانات المستخدم لكي تستخدمه في اي مكان او اي صفحة بالموقع .لكن ماذا بعد خروج
المستخدم من موقعك او عندما لا تحتاج هذا السشن .. اذن تخلص منه لكي تزيد من السرعة فالسشن يأخذ ايضا مساحة من السرعة
والرام للسيرفر لذلك في زر خروج مثلا تخلص منه بالطريقة الامنة التالية
// remove session
HttpContext.Current.Session.RemoveAll();
HttpContext.Current.Session.Abandon();
6- Close connection pools
حاول غلق الاتصال بقاعدة البيانات بعد فتحها من خلال
Connection.Close();
بعد فتح قاعدة البيانات ثم عمل الاستعلام ثم غلق الاتصال حتي لا تتركه مفتوحا كل مرة وبالتالي يستهلك رام ومن ثم تعرض موقعك
لاستهلاك السيرفر كله وبالتالي هذا خطأ وقد يتم ايقاف موقعك من علي الاستضافة المشتركة لانك تستهلك موارد السيرفر . ويتم
ارجاعك بالطبع عقب تصليح ذلك
7- Disable debugging in your web.config
الويب كونفيج هو اول شئ يفتح عليه موقعك وليس علي الصفحة الرئيسية . فهو اول شئ يتم التأكد منه هل به خطأ ام لا ثم يذهب التأكد
من صفحات الموقع
هذا يسمي compiler
وهو الذي عن طريقه تكتشف الاخطاء فكل مرة يتم التأكد من سلامة الكود هل هو صحيح ام لا وذلك يستهلك وقت في كل مرة , فبعد
التأكد من سلامة الاكواد في الصفحات ورفع الموقع يتم تعطيل هذه الخاصية من خلال وضع هذا الكود في ملف الويب كونفيج
افتح ملف الويب كونفيج
web.config
سوف تعثر علي هذا الكود
<compilation debug="true"/>
وهو بالتالي مفعل .. قم بتعطيله الي الاتي
<compilation debug="false"/>
8- Use page output caching
الكاش او caching in asp.net
كأنك تعمل صورة للصفحة علي منذ اخر مرة تم دخول شخص علي الصفحة فيراها كل المستخدمين للموقع مثلما رأها اخر شخص دخل
عليها كيف ذلك
مثلا عندي صفحة بها بيانات طلبة فدخل طالب اسمه احمد وشاهد ببياناته ونتائجه . فتم الان عمل كاش لهذه الصفحة اي تم عمل
صورة للنتيجة التي ظهرت بها هذه الصفحة . فاذا دخل عمر او محمد او اي شخص ليري نتيجته خلال مدة الثواني التي تم عمل كاش بها
فسوف يري نتيجة الطالب احمد فقط وسوف يستمر ذلك لمدة من الزمن يتم تحديدها بالثواني .
هذا عن الكاش في الصفحة
كنصيحة شخصية لا تستخدم الكاش الا في صفحات ثابتة ليس بها بيانات تتغير مثل شاشة عن الموقع فسوف يراها جميع الناس بنفس
الشكل . او صفحة ثابتة ليس دينامك لانها خطر جدا في استخدامها للبيانات ولذلك نستخدمها في صفحات ثابتة فقط او بحذر عند عرض
بيانات
افتح صفحة الهتمل للصفحة او وضع السورس وفي اعلي الصفحة ضع الكود الاتي وغير مدة الكاش بالثواني
<%@ OutputCache Duration="10"%>
9- Optimising your images
قم بتقليل حجم الصور التي تعرضها لانها تسحب من رامات السيرفر خصوصا لو كانت استضافة مشتركة وايضا تسحب من سرعة الصفحة نفسها في الفتح لذلك حاول تقليل الحجم للصور قدر الامكان
10- Remove Viewstate
الفيوستات من الاشياء التي عن طريقها تخزن اي بيانات مثلا قد تخزن بيان موظف في فيو ستات ولكن اذا لم تستخدمه حاول ان تلغيه في الصفحة فقط وليس في ملف الويب كونفيج
لان الصفحة ستلغي هذا علي الصفحة فقط اما الويب كونفيج سوف يلغيها علي كامل الموقع
افتح صفحة الهتمل للصفحة او وضع السورس وفي اعلي الصفحة ضع الكود الاتي في الخصائص
EnableViewState="false"
11- remove the default modules from your Web
الفيجوال ستوديو بطبيعته وبدون تدخل منك ينشأ
مجموعة من الخصائص والموديولز والاشياء التي قد لا تستخدمها
ولكنها موجودة ولن تفيد بل تضر في ان الفيجوال ستوديو
حجز لها مساحة من السرعة والفتح وبذلك يتم بطأ الموقع نسبيا
قم بفتح موديولز httpmodules
ثم ضع الاكواد التالية التي تحذف الاشياء الغير هامة
<httpModules>
--></span>
<remove name="Session" />
<remove name="WindowsAuthentication" />
<remove name="PassportAuthentication" />
<remove name="AnonymousIdentification" />
<remove name="UrlAuthorization" />
<remove name="FileAuthorization" />
</httpModules>
حاول استخدام كل تلك النقاط حتي يتم تسريع اداء موقعك او برنامجك
ولسهولة تصفح وفتح صفحات موقعك او برنامجك increase speed of page loading in asp.net