سؤال

وأنا خلقت المساعد أتش تي أم أل

Html.BreadCrumb(IDictionary<string, string> crumbs)

وأين السلسلة الأولى هو التسمية والسلسلة الثانية هو URL. المساعد يخلق أتش تي أم أل المطلوبة (قائمة غير مرتبة، وبعض الطبقات للعنصر الأول، العنصر الحالي، العنصر الأخير، عنصر القتلى وفواصل الخ) تعمل جميعها لطيفة، ولكن أفعل ذلك من خلال خلق ب StringBuilder، ضخ كل HTML في ذلك والعودة المحتوى ب StringBuilder في كسلسلة.

والرقم الأول في هذا المثال لا يهم كل ذلك بكثير، ولكن ماذا إذا كان المساعد الاكواد ومتماوج من حمولة كبيرة من أتش تي أم أل؟ ليس هناك وسيلة لدفعها إلى Response.Write بدلا من ب StringBuilder؟

وأو أي قضايا / التحسينات الأخرى لديك؟

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

المحلول

ومن المؤكد أنه من الممكن استخدام Response.Write بدلا من إرجاع السلسلة؛ انظر المصدر لSystem.Web.Mvc.Ajax.Form (في AjaxExtensions.cs) في مصدر MVC على سبيل المثال.

وأنت ثم استدعاء مساعد مع <٪ بدلا من <٪ =.

هل هناك أي أسرع؟ أشك في ذلك، ولكن من السهل أن الاختبار.

نصائح أخرى

وراجع للشغل لدينا نمط التسمية في ASP.NET MVC لتقديم تقنيات مختلفة.

والمساعدون التي ترجع سلسلة من يجب أن يدعى ما هي ما هي عليه. على سبيل المثال، Url.Action () وHtml.TextBox () إعادة هذه العناصر بالضبط. وبالتالي، ينبغي أن تستخدم هذه المساعدين مع بناء الجملة <٪ =٪>.

والمساعدون التي تجعل مباشرة إلى دفق إخراج ينبغي أن تبدأ مع التقديم. على سبيل المثال، Html.RenderPartial (). وتستخدم هذه مع <٪٪> بناء الجملة.

والمساعدون التي تستخدم نمط IDisposable يجب الكشف عن اسمه مع بداية / نهاية. على سبيل المثال، Html.BeginForm () وHtml.EndForm (). وينبغي أيضا أن تستخدم هذه مع <٪٪> بناء الجملة.

وشكرا، إيلون

وأنا لا أعتقد سيكون لديك أي مشاكل في الأداء طالما أن حجم صفحات HTML التي تنتج معقول. وعندما كنت حقا البدء في إنشاء صفحات ميغابايت في الحجم، ثم يجب عليك أن تسأل نفسك، لماذا خلق مثل هذه الملفات HTML الضخمة؟

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