Smart Navigation چیست؟

مفهوم Smart Navigation و فواید آن
Smart Navigation یكى از بهترین ابزارهاى جدیدى است كه ASP.NET آنرا عرضه كرده است. این ابزار جدید باعث شده ظاهر برنامه هاى وب و احساسى كه نسبت به آن وجود دارد شباهت بیشترى با برنامه هاى عادى و نوشته شده براى ویندوز پیدا كند.

یكى از موانع بزرگ برنامه هاى تحت وب به معمارى و ساختار HTTP برمى گردد. جاییكه مجبوریم اطلاعات جمع آورى شده در سمت مشترى را به سرور بازگردانیم. به همین دلیل مجبور به رسم مجدد و كامل صفحه اى كه قبلا دیده ایم مى باشیم، كه این نه تنها باعث مى شود یك حالت فلش مانند در این رفت و برگشت و رسم مجدد رخ دهد، بلكه براى صفحه هاى بلند كه براى دیدن تمام صفحه نیازمند بهscrolling هستیم، باعث مى شود كه دیدمان را به اول صفحه انتقال دهد، چیزى كه هم شاید دلخواه ما نباشد و هم اینكه ممكن است باعث سردرگمى كاربر گردد. همچنین این فرآیند باعث تغییر فوكوس كنترل ها و بسیارى از اتفاقات دیگرنیز مى شود.

در برنامه هاى عادى ویندوز ما به طور معمول فقط قسمت هایى از صفحه را به روز مى كنیم كه تغییرى در آن ایجاد شده باشد یا تحت تاثیر چیزى قرار گیرند و این بدون نیاز به تغییر در كل برنامه مى باشد (مثلا فقط یك عضو به listbox ما اضافه مى شود. بدون تغییر و رسم مجدد فرم برنامه).

Smart Navigation یا به عبارتى هدایت هوشمندانه این توانایى موجود در برنامه هاى ویندوز را براى برنامه هاى تحت وب فراهم مى كند! اما قبل از هر چیز باید بدانید كه این ابزار فقط براى IE مى باشد و آن هم نسخه هاى ۵ به بالاتر آن. با این وجود شما مى توانید Smart Navigation را فعال یا غیرفعال سازید، بدون آنكه تاثیرى در برنامه شما بگذارد. حتى اگر شما در پروژه تان مرورگرهاى محتلفى را مدنظر قرار داده باشید، مى توانید Smart Navigation را فعال سازید. در این صورت ASP.NET نوع مرورگر را تشخیص داده و Smart Navigation را فقط براى مرورگرهاى پشتیبانى شده فعال مى سازد.

چهار مورد برجسته اى كه Smart Navigation فراهم مى كند عبارتند از:

• صفحه در میان درخواست ها یك نمایش ممتد را داراست و به عبارتى حالت فلش زدن به خود نمى گیرد.
• موقعیت
Scroll را حفظ مى كند.
• فوكوس عضو دارنده فوكوس را نگه مى دارد.
• آخرین صفحه درون تاریخچه (
History) نگهدارى مى شود.

این ابزار در حالت واقع گرایانه براى برنامه هایى كه ارسال به عقب(!) Postback فراوانى دارند طراحى شده است ولى با توجه به این نكته كه محتواى صفحه نباید زیاد تغییر نكند. احتمالا بنا به دلایل كارایى و نه اینكه در تغییرات زیاد ایرادى بهم بزند - مترجم. شاید یك چیز شگفت آور در مورد این ابزار این باشد كه شما در حقیقت نیاز به نوشتن هیج كد و برنامه اى ندارید.

نحوه استفاده
Smart Navigation درون هدایت كننده صفحه (Page directive : <%@ %>)، براى تنظیم یك صفحه و درون web.config براى تنظیم كل برنامه استفاده مى شود. براى تنظیم در Page Directive به صورت زیر عمل كنید:

<%@ Page SmartNavigation=true %>

و براى تنظیم در web.config از ساختار زیر استفاده نمایید:

<Configuration>
<System.web>
<Pages SmartNavigation=true />
</System.web>
</Configuration>

روش كار اینگونه است كه كل صفحه بدرون یك فریم دورنى مخفى (hidden IFrame) بارگذارى (load) مى شود و سپس فقط قسمت هاى تغییر كرده دوباره رندر(render) مى شوند.