PDA

View Full Version : حرفه ای: بهینه سازی فایلهای جاوا



msabeghi
شنبه 10 دی 1390, 09:37 صبح
یک مقاله چند وقت پیش خوندم که توش گفته بود میشه یک کاری کرد که فایلهای جاوایی که به صفحه اد شدند رو بهینه به سمت سرور فرستاد
مثلا
<script language="javascript" type="text/javascript" src="../scripts/InteligentSelectBox.js"></script>
<script language="JavaScript" type="text/javascript" src="../Scripts/admin.js"></script>
<script language="javascript" type="text/javascript" src="../Scripts/Intellijax.js"></script>
<script language="javascript" type="text/javascript" src='../Scripts/FormCheck.js'></script>
<script language="javascript" type="text/javascript" src="../Scripts/TokenScript/obj.js"></script>
<script language="javascript" type="text/javascript" src="../Scripts/NewCalendar.js"></script>

این فایلها روتوی یک تگ خاص می ذاشت که انگار اینطوری به جای چند فایل یک فایل به سرور فرستاده میشد
می خواستم بدونم کسی از این موضوع اطلاعی داره؟
یا راه حلی که من یه جوری حجم این فایلها رو کم کنم؟
gizip استفاده کردم.
و لطفا راه حلها برای Asp باشه

aminghaderi
شنبه 10 دی 1390, 10:55 صبح
سلام همشهری.
چیزی که می فرمایید خیلی چیز عجیبی هست.
برای اینکه ما معمولا فایل های جاوااسکریپت رو از سمت سرور می خونیم . یعنی سرور فایل های جاوااسکریپت رو به کلاینت ها ارسال می کنه و کلاینت ها از اون استفاده می کنند.
فایل های جاوا اسکریپت همون طور که می دونید در مرورگر ها اجرا می شوند .
حتی اگر برای مقاصد خاص ما بخاهیم فایل جاوااسکریپت به سرور ارسال کنیم ، معمولا با مشکلات امنیتی مواجه می شویم که سرورها معمولا اجازه این کار رو با استفاده از پرتکل http یا https نمی دهد مگر کاملا مطمئن شود که شما مالک هاست هستید .(یعنی فقط به یک نفر اجازه این کار داده می شود.).
حالا اگر بخواهید می شه این روند رو تغییر داد ولی خوب امنیت وب سایت شما می یاد پایین.
اما از کد های شما مشخص می شه که شما می خوای یه سری فایل های جاوا اسکریپت که بروی سرور قرار دادید رو به سمت کلاینت برای جلوه های ویژه و کار با اجکس (اگر اشتباه نکنم) و... بفرستید .
اما با حجم سنگین صفحه که قراره ارسال کنید مواجه شدید ؟؟
باید بگم راهی وجود نداره متاسفانه ، البته شما ظاهرا عمل فشرده سازی بروی فایل ها انجام دادی که من نمی دونم واقعا چطوری اون برنامه کد ها رو می تونه فشرده کنه ، ولی خوب چیزی که واضح هست اینکه راهی برای این موضوع وجود نداره؟! (متاسفانه)
حتی استفاده از کتابخونه هایی مثل JQuery هم باعث کاهش که نمی شه باعث افزایش هم می شه.

موفق باشی عزیزم.

msabeghi
شنبه 10 دی 1390, 11:03 صبح
اره من شرمندم چون اشتباه تایپ کردم.
منظورم این بود که فایلهارو به سمت کلاینت فرستاد
میگم منم یه بار توی یه مقاله خوندم الان هرچی می گردم پیداش نمی کنم
اما مضمون اون مقاله این بود که یه راهی هست که میشه به جای این که برای این چندتا فایل چند response به کلاینت فرستاده بشه میشه یه response فرستاد که این عمل در سرعت لود صفحه موثره!

rahmatr
شنبه 10 دی 1390, 11:18 صبح
این فایلها روتوی یک تگ خاص می ذاشت که انگار اینطوری به جای چند فایل یک فایل به سرور فرستاده میشد
احتمالا منظور شما اینه که به جای درخواست چند فایل، درخواست یک فایل به سرور فرستاده شود.

برای این کار از تکنیک Composite Script استفاده می شود:
Combining Client Scripts into a Composite Script (http://msdn.microsoft.com/en-us/library/cc488552.aspx)

aminghaderi
شنبه 10 دی 1390, 11:47 صبح
احتمالا منظور شما اینه که به جای درخواست چند فایل، درخواست یک فایل به سرور فرستاده شود.

برای این کار از تکنیک Composite Script استفاده می شود:
Combining Client Scripts into a Composite Script (http://msdn.microsoft.com/en-us/library/cc488552.aspx)

خروجی این حالت در سورس مرورگر به چه صورت است ، آقای رضایی؟؟



<asp:ScriptManager ID="ScriptManager1" runat="server">
<CompositeScript>
<Scripts>
<asp:ScriptReference Path="~/Scripts/Script1.js" />
<asp:ScriptReference Path="~/Scripts/Script2.js" />
<asp:ScriptReference Path="~/Scripts/Script3.js" />
</Scripts>
</CompositeScript>
</asp:ScriptManager>

msabeghi
شنبه 10 دی 1390, 12:26 عصر
احتمالا منظور شما اینه که به جای درخواست چند فایل، درخواست یک فایل به سرور فرستاده شود.

برای این کار از تکنیک Composite Script استفاده می شود:
Combining Client Scripts into a Composite Script (http://msdn.microsoft.com/en-us/library/cc488552.aspx)


بسیارعالی
اما ScriptManager از کنترل های دات نت هست
و این سایتی که من دارم توش اصلا از کنترل های دات نت استفاده نکردم
در ضمن فریم ورک من 2 هست

rahmatr
شنبه 10 دی 1390, 12:45 عصر
خروجی این حالت در سورس مرورگر به چه صورت است ، آقای رضایی؟؟
متن فایلها رو بدون دستکاری به هم می چسباند و یکی می کند. تست کنید.


اما ScriptManager از کنترل های دات نت هست
و این سایتی که من دارم توش اصلا از کنترل های دات نت استفاده نکردم

شما می توانید با یک HTTP Handler خودتان دستی این کار را بکنید:
Combine, minify and compress JavaScript files to load ASP.NET pages faster (http://atashbahar.com/post/Combine-minify-compress-JavaScript-files-to-load-ASPNET-pages-faster.aspx)