عنوان:

‫قابلیت های کاربردی ASP.NET WebFroms - قسمت اول


نویسنده: مجتبی کاویانی
تاریخ: ۱۳۹۱/۰۷/۱۶ ۲۰:۴۱
آدرس: www.dntips.ir
قابلیت CompositeScript 
پس از گذشت مدتی که از توسعه پروژه مورد نظرتان می‌گذرد احتمالاً فایل‌های javascript زیادی در پروژه شما استفاده می‌شود که هم مدیریت و هم بار سنگینی بر سرعت بارگذاری اولیه سایت شما به دلیل زمان بارگذاری فایل‌های javascript خواهد گذاشت. در ASP.NET چندین روش برای مدیریت فایل‌های javascript , css  وجود دارد.
ساده‌ترین روش استفاده از امکانات خود ASP.Net  است. با قابلیت CompositeScript براحتی می‌توانید فایل‌های javascript خود را با هم ادغام و در یک فایل ScriptResource.axd برای Client ارسال نمایید. برای این کار کافیست از تگ جدید CompositeScript در کنترل ScriptManager استفاده نمایید. در کد زیر این قابلیت نمایش داده شده است:
 <asp:ScriptManager ID="ScriptManager" runat="server" ScriptMode="Release">
                <CompositeScript>
                    <Scripts>
                        <asp:ScriptReference Path="~/Scripts/jquery-1.7.2.min.js" />
                        <asp:ScriptReference Path="~/Scripts/jquery.ui.core.min.js" />
                        <asp:ScriptReference Path="~/Scripts/jquery.ui.widget.min.js" />
                        <asp:ScriptReference Path="~/Scripts/jquery.ui.mouse.min.js" />
                        <asp:ScriptReference Path="~/Scripts/jquery.ui.sortable.min.js" />
                    </Scripts>
                </CompositeScript>
 </asp:ScriptManager>

علاوه بر آن حتما خاصیت ScriptMode کنترل ScriptManager  را بر روی Release تنظیم نمایید تا از حداکثر کارایی و کش فایل‌ها استفاده نمایید

دسترسی به ScriptManager در صفحات دیگر و الصاق فایل‌های خاص

برخی از فایل‌های Javascript فقط در صفحات خاصی استفاده شده اند و لازم نیست در هر صفحه بارگذاری شود برای این کار کافی است فایل مورد نظر را در صفحه خاص به  ScriptManager اضافه نمایید. البته ابتدا لازم است به ScriptManager دسترسی داشته باشیم. کد زیر نحوه دسترسی به آن را نمایش داده است:

ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
scriptManager.CompositeScript.Scripts.Add(new ScriptReference("~/Scripts/jquery.json.min.js"));
ادامه دارد...

نظرات

  • ایمان اسلامی در ۱۳۹۱/۰۷/۱۷ ۸:۴۸
    با سلام و تشکر از مطلب خوبتان
    در مورد فایلهای css هم روشی وجود دارد؟
    • مجتبی کاویانی در ۱۳۹۱/۰۷/۱۷ ۹:۳۳
      با استفاده از  ScriptManager  خیر! اما در مقاله‌های بعدی با روش دیگری توضیح خواهم داد.
  • میثم فغفوری در ۱۳۹۲/۱۱/۱۲ ۱۳:۱۵
    ممنون عالی بود فقط یک سوال:
    من با افزونه YSlow که بررسی میکنم ظاهرا فایل ایجاد شده رو کش میکنه به مدت 1 سال حالا اگر تو این مدت تغییری تو این اسکریپت‌ها داده باشیم آپدیت میکنه؟
    • وحید نصیری در ۱۳۹۲/۱۱/۱۲ ۱۳:۴۸
      اگر به انتهای لینک آن دقت کنید، یک کوئری استرینگ اضافه شده. مقدار آن در حقیقت هش فایل‌های مورد استفاده است. با تغییری در این فایل‌ها، این هش هم تغییر خواهد کرد. مرورگر با مشاهده‌ی آدرس جدید، درخواست جدیدی را به سرور برای دریافت فایل‌های به روز شده ارسال می‌کند.
  • محمد رضا زا در ۱۳۹۴/۰۱/۱۹ ۱۳:۲۵
    وقتی از مستر پیج استفاده می‌کنیم این script manager  رو تو تگ ContentPlaceHolder هد باید اضافه کنیم؟ یا جای دیگه و بعد از استفاده کردن دیگه تو کل صفحات نیازی به فراخونی نیست؟ و در هر جایی می‌شه از فایلای jquery استفاده کرد؟