استفاده از خصوصیت جالب CompositeScript در ASP.NET Ajax 3.5 SP1
  در این ترفند به معرفی روش تلفیق نمودن چند فایل خارجی جاوا اسکریپت در یک فایل با استفاده از امکانات جدید ASP.NET Ajax 3.5 می پردازم.
   Ajax
   ۲۹۹۹۳
   این مقاله حاوی فایل ضمیمه نمی باشد
   مرتضی صحراگرد
   ۱۳۸۷/۸/۱۰
ارسال لینک صفحه برای دوستان ارسال لینک صفحه برای دوستان  اضافه کردن به علاقه مندیها اضافه کردن به علاقه مندیها   نسخه قابل چاپ نسخه قابل چاپ

 

اضافه نمودن فایل های جاوا اسکریپت به صفحات وب معمولا به شکل زیر انجام می گیرد.


<script language="javascript" type="text/ecmascript" src="Sample1.js" />

با استفاده از خصوصیت Scripts مربوط به کنترل ScriptManager می توان این عمل را به شکل زیر انجام داد.


<asp:ScriptManager ID="ScriptManager1" runat="server">
   <Scripts>
      <asp:ScriptReference Path="~/Sample1.js" />
   </Scripts>
</
asp:ScriptManager>

مشکل اینجاست که به ازای هر فایل جاوا اسکریپت، مرورگر باید یه درخواست (Http Request) جدید ارسال نماید و تا زمان بارگزاری کامل فایل، سایر عناصر HTML صفحه لود نمی شوند.
ارسال یک درخواست HTTP می تواند بسیار زمانبر باشد. مثلا برای سروری که در ایالات متحده امریکا قرار دارد، اگر درخواست از کامپیوتری در خود ایالات متحده باشد، این عمل حدود 100 میلی ثانیه طول می کشد. در صورتی که کامپیوتری در آسیا این درخواست را انجام بدهد در حدود 270 میلی ثانیه و در صورتی که یک کامپیوتر در استرالیا این درخواست را ارسال نماید،حدود 380 میلی ثاینه زمان می برد.
دقت کنید که زمانی که ارسال یک درخواست HTTP صرف می کند را باید با زمانی که بارگزاری فایل طول می کشد جمع کنید تا زمان کل بار گزاری فایل بدست آید.
حال فرض کنید که شما 5 عدد فایل جاوا اسکریپت را به صفحه اضافه نموده اید. پس مرورگر باید 5 درخواست ارسال نماید. در نتیجه اگر سرور شما در امریکا بوده و کامپیوتر شما در آسیا این درخواست را ارسال نماید، 270*5 میلی ثانیه فقط ارسال درخواست ها زمان می برد و به ازای هر درخواست، مرورگر لود صفحه را متوقف می نماید.
به همین دلیل همیشه توصیه می شود که سعی کنید کدهای موجود در فایل های جاوااسکریپت را با هم تلفیق کنید و آنها را در قالب یک فایل به صفحه اضافه نمایید.
درست است که در این حالت حجم فایل بسیار بیشتر می شود و لود تمام اسکریپت ها در یک فایل بسیار کمتر از لود کدها در چندین فایل خارجی زمان می برد.
ولی انجام این کار در عمل چندان ساده نمی باشد. تلفیق کدهای جاوا اسکریپت چند فایل در یک فایل ممکن است مشکلاتی از قبیل ناخوانایی کدها و تشابه نام متغیرها و غیره را به وجود آورد.
یکی از ویژگیهای بسیار جالبی که در نسخه ASP.NET AJAX 3.5 SP1 اضافه شده است، ویژگی CompositeScript می باشد.
استفاده از این خصوصیت همانند استفاده از خصوصیت Scripts می باشد. ولی عملکرد آن متفاوت می باشد.
با استفاده از این صفت دیگر شما لازم نیست که کدهای موجود در فایل های مجزای جاوا اسکریپت را در یک فایل تلفیق کنید. در صورتی که شما فایل های خود را با استفاده از این ویژگی به ScriptManager اضافه کنید، خود برنامه در سمت سرور اسکریپت ها را در یک فایل تلفیق نموده و سپس به سمت مرورگر ارسال می نماید.
استفاده از ویژگی CompositeScript به شکل زیر می باشد.


<asp:ScriptManager ID="ScriptManager1" runat="server">
   <CompositeScript>
      <Scripts>
         <asp:ScriptReference Path="~/Sample1.js" />
         <asp:ScriptReference Path="~/Sample2.js" />
         <asp:ScriptReference Path="~/Sample3.js" />
         <asp:ScriptReference Path="~/Sample4.js" />
         <asp:ScriptReference Path="~/Sample5.js" />
      </Scripts>
   </CompositeScript>
</
asp:ScriptManager>

با استفاده از این روش به آسانی می توانید به طور موثری کارایی صفحات وب را بالا ببرید.