دسته بندی ها
23:53 1399/09/16

ادغام فایل های Js به منظور کاهش تعداد رکویست ها به سرور

مشخصات سوال کننده :
کاربر : ehsan_kabiri_33     امتیاز کاربر : 5     رتبه کاربر : 110
دسته بندی : جی کوئری

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3226
پاسخ دهنده : fateme 17:14 1399/09/17

روشی که برای این کار انتخاب کردید بیشتر یک ایده است و بد هم نیست. اما ببینید داشتن توابع هم نام اونم به تعداد زیاد کار صحیحی نیست بنظرم !!!

توابع رو به دو صورت میشه از هم تفکیک کرد.

  • داشتن نام متفاوت
  • داشتن امضای متفاوت

به عنوان مثال تابع زیر رو در نظر بگیرید.

function SayHello_1() 
{
    alert("Hello AboutUS");
}

function SayHello_2() 
{
   alert("Hello ContactUs");
}

در مثال بالا نام توابع تفاوت دارن و برای فراخوانی هم نام رو میتونید صدا بزنید. و اما مثال زیر رو ببینید.

function SayHello(param) 
{
   alert("Hello AboutUS");
}

function SayHello() 
{
   alert("Hello ContactUs");
}

دو تابع بالا هم همنام هستن ولی یکی از توابع به یک ورودی نیاز داره. بنابراین این دو تابع گرچه همنام هستن ولی موقعی که صداشون میزنید چون یکی بدون پارامتر هست و دیگری با پارامتر به راحتی قابل تشخصی هستن.

اما در هر صورت روشی که شما هم استفاده کردید جواب داده اما در هر بار فراخوانی باید به آدرس مورد نظر بره و تابع رو پیدا کنه که احتمالا در سرعت کار تاثیر خواهد گذاشت.

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

ویرایش شده در دوشنبه 17 آذر 1399 ساعت 17:16:33
به این پاسخ امتیاز بدهید    2
امتیاز: 1617 رتبه: 2
پاسخ دهنده : ehsan_kabiri_33 11:28 1399/09/18

ممنون از پاسخ گویی..

اخه مشکل فقط متغیر ها نیست شاید بشه با دو روز وقت کامل نام ها را وابسته به صفحات کرد و مثلا به اخر اسامی یک _AboutUs مثلا اصافه کرد. مشکل اینجاست که بعنوان مثال کلید BackSpace توی برخی صفحات غیرفعال شده یا توی بعضی جاها که فارسی کلا غیر فعال شده و در حالت فارسی هم تایپ بشه شما انگلیسی میبینی و کلی چیزهای دیگه...

 

یعنی مثلا keypress  تعریف شده واسه صفحه aboutUs که نمیخام توی ContactUs اجرا بشه و دنبال هستم فایل js دو تا را ادغام کنم. 

 

به نظرتون اگه بیام کل کدهای مربوط به صفحه aboutus را داخل یک فانکشن AboutUs() بذارو و کل کدهای جاوا اسکریپت مربوط به صفحه ContactUs() را بیام داخل تابع ContactUs() بذارم بعد این توابع را میتونم به راحتی داخل یک فایل مشترک جای بدم، الان یک فایل دارم با یک عالمه تابع خیلی گنده !! هر کدام شاید 10 کیلو بایت مینی فای شده تکست دارن، به هر حال.

 

بعد توی صفحه Html  هر کدام از صفحات وبسایتم مطابق زیر عمل کنم . 

Url: www.example.com/AboutUs

<script>      AboutUs() <script/>

و یا :

Url: www.example.com/ContactUs

<script>      ContactUs() <script/>

داخل File.js هم دارم :


function ContactUs() {

//many functions, variable , ...  are here

}

function AboutUs() {

//many functions, variable , ... 
}

 

در این صورت توی هر کدام از صفحات Html مربوط به وبسایتم فقط یک خط کد جاوا اسکریپت دارم که مربوط به اجرای تابع اون صفحه  و در ادامه اجرای یک عالمه دستور دیگه داخل فایل مشترک File.js میشه.

 

ویرایش شده در سه شنبه 18 آذر 1399 ساعت 11:30:20
به این پاسخ امتیاز بدهید    0
امتیاز: 5 رتبه: 110
1 نظر
fateme : روش کلی رو من گفتم خدمتتون حالا اینکه توی پروژه شما به چه صورتی هست شرایط دیگه تصمیمش با شماست.

امتیاز کاربر : 1617   رتبه کاربر : 2   تاریخ ثبت : 02:29 1399/09/18
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود