miladk313
5 سال پیش توسط miladk313 مطرح شد
14 پاسخ

بالارفتن حجم فایل appjs در پروژه laravel و vue js

سلام دوستان
من یه سایت spa رو با laravel و vue js دارم پیاده سازی میکنم ولی همین الانشم که تقریبا کمتر از نص امکانات رو نوشتم حجم فایل app.js به ۲مگ میرسه وقتی به صورت پروداکشتن هم خروجی میگیرم حجم کم میشه ولی نه خیلی زیاد و همین باعث میشه تو اولین باری که صفحه لود میشه زمان زیادی رو بگیره و کاربر باید منتظر بمونه تا لود شه. حالا اگه سرعتش هم مناسب نباشه که دیگه واویلا..
میخواستم ببینم چه پیشنهادی دارین که اولین بار سایت با سرعت خوبی بیاد بالا.


ثبت پرسش جدید
حامد زارع
تخصص : لاراول، mssql و vue
@hamedzare2 5 سال پیش مطرح شد
1

سلام دوست عزیز @miladk313
این مشکل را می تونی با lazyloading یا بارگذازی تنبل در حل گرد.
به این صورت کار می کنه که هر کامپوننت شما در ویو را به یک فایل جاوا اسگریپت می شکنه و زمانی که نیاز دارید از اون استفاده کنید صداش می زنید
اگه بخوای خودت این کار را به صورت دستی انجام بدی باید از vue-loader استفاده کنی و اگر می خوای که خود webpack این کار را انجام بده برات باید ی سری تنظیمات را روی پروژه انجام بدی


محمد
تخصص : طراح رابط کاربری، برنامه نویس...
@mhmd.dev 5 سال پیش مطرح شد
0

سلام من خودمم دارم یه سایت spa مینویسم و الان 80% پروژه رو رفتم ولی app.js کلا 2کیلو بایته://
فککنم همه Templateاتو، تو app.js قرار دادی درسته؟


miladk313
تخصص : برنامه نویس لاراول
@miladk313 5 سال پیش مطرح شد
0

اره دقیقا من اومدم کل قالب رو به صورت کامپوننت های ویو جی اس نوشتم


محمد
تخصص : طراح رابط کاربری، برنامه نویس...
@mhmd.dev 5 سال پیش مطرح شد
0

هر صفحه از سایتو تو یه فایل vue نوشتی دیگه آره


miladk313
تخصص : برنامه نویس لاراول
@miladk313 5 سال پیش آپدیت شد
0

@mhmd.dev
ببین قسمت داشبوردشه .اومدم هر قسمت رو توی یه کامپوننت مجزا گذاشتم. مثلا هدر ، فوتر و .. هر کدوم یه کامپوننت جدا دارن
بعد یه قسمت هم اون وسط هست که کانتینرم هست اونو vuerouter گذاشتم که عوض میشه و کامپوننت های مختلف میان


محمد
تخصص : طراح رابط کاربری، برنامه نویس...
@mhmd.dev 5 سال پیش مطرح شد
0

خب اوکیه تنا راهی که من بلدم اینه که وقتی پروژت کلا تموم شد یه کپی ازش بگیر برای توسعه و بعد اون یکیرو با لاراول میکس فشرده کن تا حجمت بیاد پایین اگه هم کدا css تو اینلاین قرار دادی تو یه فایل css قرارشون بده


miladk313
تخصص : برنامه نویس لاراول
@miladk313 5 سال پیش مطرح شد
0

خب با لاراول میکس فشرده کردم و شده 2 مگ


miladk313
تخصص : برنامه نویس لاراول
@miladk313 5 سال پیش مطرح شد
0

اگه کمک کنین ممنون میشم
@hesammousavi
@milad
@ali.bayat
@Alimotreb


mahdi khanzadi
تخصص : Software engineer
@khanzadimahdi 5 سال پیش مطرح شد
0

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


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

داخل تنظیمات پیش فرض فرانت در لاراول، یه سری موارد مثل bootstrap و jquery و lodash بعضی مواقع فعلاند. فایل "resources\js\bootstrap.js" رو چک کردید؟


miladk313
تخصص : برنامه نویس لاراول
@miladk313 5 سال پیش مطرح شد
0

@ali.bayat
بله اونا رو حذف کرده بودم ولی از bootstrap-vue استفاده کردم


miladk313
تخصص : برنامه نویس لاراول
@miladk313 5 سال پیش مطرح شد
0

@khanzadimahdi
چطوری ؟ میشه یه نمونه کد که کامپوننت رو از سرور برمیگردونه زجمت بکشین برام بنویسین ؟


mahdi khanzadi
تخصص : Software engineer
@khanzadimahdi 5 سال پیش آپدیت شد
1

داکیومنت های خود vuejs رو بخونید. البته کار شما کمی سخت تر و طولانی تر خواهد شد.

https://vuejs.org/v2/guide/components-dynamic-async.html#Async-Components

In large applications, we may need to divide the app into smaller chunks and only load a component from the server when it’s needed. To make that easier, Vue allows you to define your component as a factory function that asynchronously resolves your component definition. Vue will only trigger the factory function when the component needs to be rendered and will cache the result for future re-renders.


حامد زارع
تخصص : لاراول، mssql و vue
@hamedzare2 5 سال پیش مطرح شد
1

سلام دوست عزیز @miladk313
این مشکل را می تونی با lazyloading یا بارگذازی تنبل در حل گرد.
به این صورت کار می کنه که هر کامپوننت شما در ویو را به یک فایل جاوا اسگریپت می شکنه و زمانی که نیاز دارید از اون استفاده کنید صداش می زنید
اگه بخوای خودت این کار را به صورت دستی انجام بدی باید از vue-loader استفاده کنی و اگر می خوای که خود webpack این کار را انجام بده برات باید ی سری تنظیمات را روی پروژه انجام بدی


مسعود ابراهیمی
تخصص : طراحی و برنامه نویسی وب
@ebrahimimasod 5 سال پیش مطرح شد
1

سلام
منم یه سایت داشتم با ویو که حجمش 11 مگ بود !!!
تنها راه حلی که داره اینه که از lazy load استفاده کنی
توی سایت vue router گفته این موضوع رو


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام