سؤال

وأنا أتطلع لتحسين أداء موقعي، ليس لأنه يجري بشكل سيئ ولكن فقط كعملية العامة. اقتراح المعتاد لمواقع asp.net هو إزالة حالة العرض كلما كان ذلك ممكنا. وأعتقد أن هذا يمكن أن تقوم به كل عنصر تحكم على صفحة على حدة أو لصفحة كاملة.

وسؤالي هو إذا كان يمكنني تعطيل حالة العرض الصفحة وهذا يتوقف على حالة العرض من الضوابط على masterpage (كما أفهمها وmasterpage هو في الواقع عنصر تحكم في الصفحة).

هل كانت مفيدة؟

المحلول

نعم، الصفحة هو المنشئ للتدفق الصفحة. وهكذا، تعطيل حالة العرض لصفحة يأخذ حالة العرض مما يجعل من عملية OnInit. ومن شأن السؤال الأفضل هو لماذا تعطيل حالة العرض للصفحة الرئيسية تفعل الشيء نفسه؟

نصائح أخرى

وهناك طريقة سهلة لتقليص كل ما تبذلونه من حالة العرض.

والخطوة 1. إنشاء فئة جديدة التي تبدو مثل هذا:

Imports System  
Imports System.Web.UI

Public Class SessionPageStateAdapter
    Inherits System.Web.UI.Adapters.PageAdapter

    Public Overrides Function GetStatePersister() As System.Web.UI.PageStatePersister

        Return New SessionPageStatePersister(Page)

    End Function
End Class

والخطوة 2. إضافة مجلد App_Browsers إلى المشروع.

والخطوة 3. في مجلد App_Browsers الجديد الخاص بك، إضافة ملف default.browser الجديد الذي يبدو مثل هذا.
<browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.Page" adapterType="[YourNamespaceGoesHere].SessionPageStateAdapter" />
</controlAdapters>
</browser>
</browsers>

عند تشغيل صفحاتك الآن، يجب أن تجد انخفض حجم حالة العرض لبضعة بايت. حالة العرض وقراءتها الطبقة SessionPageStateAdapter قبل ان يحصل على عمل لمتصفح ويحتفظ به على الملقم في حالة جلسة العمل. بت من حالة العرض الذي لا يزال يحصل على إرسالها إلى العميل هو مجرد المعرف الذي يتم استخدامه لإعادة تشكيل حالة العرض الأصلي عند الصفحة يحصل على نشر مرة أخرى إلى الخادم.

وقد تجد هذه المادة مفيدة:
http://msdn.microsoft.com/en-us/library/ms972976. ASPX

ومجرد ملاحظة سريعة على الجانب قبل تحسين الموقع، هل الأمثل الملقم والتأكد من ملف GZipped كافة الملفات قبل إرسالها.

إذا لم يكن هذا سوف تحصل على دفعة لطيفة حتى قبل ان تبدأ العبث الصفحة.

http://www.codinghorror.com/blog/archives/000059.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top