نوع: مربوط به جاوااسکریپت
اولویت: بالا
میزان سختی: متوسط
میانگین امتیاز: 69%
جزئیات بیشتر درباره خطای Defer parsing of JavaScript
نام: Defer parsing of JavaScript
جزئیات بیشتر درباره خطا Defer parsing of JavaScript به شما بدهم. این جزئیات به شما کمک میکند تا ارورهای جی تی متریکس را بهتر درک کنید. هنگام بارگذاری صفحهی از سایت، مرورگر کاربر بایستی محتوای همه فایلهای جاوا اسکریپت را بخواند و سپس اجرا کند، که این کار مسلماً زمان بر خواهد بود. به همین دلیل پیشنهاد میشود تا فایلهای جاوا اسکریپت را در پایین صفحه فراخوانی کنید تا زمان بارگذاری اولیه صفحه وبسایتتان را کاهش دهید. این
اما مشکلی که مدیران سایتها مخصوصا سایتهای وردپرسی و جوملا با آن مواجه هستند، فایلهای جاوا اسکریپت پلاگینها (افزونهها) است که در حالت عادی امکان جابجایی آنها و انتقالشان به پایین صفحه ممکن نیست چون با هر آپدیت پلاگین، تغییرات انجام شده به حالت اولیه بازمیگردد.
شاید رفع مشکل Defer parsing of JavaScript برای خیلی از دوستان سخت باشد و گاهی غیرممکن هست. برای همین بنده نویسنده سایت میزفا توصیه میکنم خیلی پیگیر این بخش از ارور سایت GTMetrix.com نشوید به دلیل اینکه گاهی رفع این خطا باعث حذف تمامی فایلهای جاوااسکریپت یا همان JS میشود که در خیلی از سایتها نشدی است. یعنی برای رفع این مشکل در اخر مجبورخواهید بود همه کدهای جاوا اسکریپت JavaScript را از سایتتان پاک کنید تا خطا به شکل کامل رفع و امتیاز 100 شود، یا اگر تعداد فایل های جاوااسکریپت زیاد باشد مجبور خواهید بود اول آنها را یکی کنید تا کنترل و مدیریت آن راحتتر شود که این روش هر چند در بحث تئوری مشکلی ندارد ولی در عمل ممکن است با ادغام باعث ایجاد تداخل و مشکلات متعدد شود که حاصل آن عدم اجرای دستور در مکان تعریف شده میباشد، پس از الان خیلی به این خطا حساس نباشید.
با این حال سرعت سایت از فاکتورهای مهم در رتبه بندی نتایج گوگل است و حتی در اواخر سال ۲۰۱۹ در گزارش سرچ کنسول خود یک ریپورت جدیدی به نام Speed اضافه کرده است که این اهمیت بیشتر این فاکتور را نشان میدهد هر چند درباره ریپورت های سرچ کنسول ما در دوره آموزش سرچ کنسول گوگل به صورت فارسی نزدیک به ۱۵ ساعت صحبت کردیم و فاکتورهای بسیاری از سئو را در آنجا به صورت عملی و کامل تشریح کردیم.
از آنجایی برای لود صفحه کد ها به ترتیب از بالا ( HEAD ) به پایین رندر می شوند بنابراین برای به تعویق انداختن رندر جاوا اسکریپت ها می توان آنها را به انتهای کد ها اضافه کرد ، کافیست کد های جاوا شما( تگ <script> ) در فوتر ( قبل از </body> قرار گیرند تا ابتدا متن ها و CSS ها لود شود و سپس جاوا اسکریپت ها.
هرچند برخی از وب سایت ها نیاز دارند تا جاوا را در ابتدا کد ها قرار دهند ، اما با انجام این تغییر بسیاری از سایت ها با سرعت بیشتری بارگذاری خواهند شد.
اگر وب سایت شما استاتیک می باشد ، کافیست با ورود به مدیریت هاست خود ، صفحه مورد نظر را ویرایش کرده و کد های جاوا را قبل از اتمام تگ </body> قرار دهید.
اگر شما از سیستم مدیریت محتوا وردپرس استفاده می کنید ، بهترین پیشنهاد ما استفاده از افزونه WP Deferred JavaScripts می باشد ، این افزونه کاملا خودکار و بدون نیاز به هیچ پیکربندی می تواند تا با به تعویق انداختن رندر جاوا اسکریپت ها ، خطا Defer parsing of JavaScript را برای وردپرس شما رفع کند.
همچنین پس از نصب این افزونه در پیشخوان وردپرس در قسمت تنظیمات –> WP Deferred Javascripts می توانید جاوا و url های که تمایل ندارید defer شوند را وارد این قسمت کنید.
برای همین بهترین راهکاری که برای حل این مشکل وجود داره این هست که فایلهای JS رو بیایم و در فوتر سایت اجرا کنیم. در این حالت ابتدا مرورگر میاد و صفحه رو به صورت کامل به کاربر نشون میده و وقتی به بخش کدهای جاوا اسکریپت که حالا در فوتر قرار گرفته رسید، متناسب با دستورت برنامه نویسی که این فایلها دارند سایر بخشهای سایت رو هم نشون میده. طی یک آزمایشی که گوگل در سال 2011 انجام داده برای لود هر 1 کیلوبایت از یک فایل جاوا اسکریپت به طور میانگین 1 میلی ثانیه زمان لازمه تا هم لود بشه و هم خونده بشه. برای همین اگر مجموع فایلهای جاوا اسکریپت روی 100 کیلوبایت قرار داشته باشند(که قطعا بیشتر از این میتونه باشه) مدت زمان 200 میلی ثانیه صرف میشه که شاید به صورت عددی زیاد به نظر نیاد، اما رو سرعت لود سایت تاثیر زیادی میزاره. رفع خطا میتواند کمک بسیاری در
هر دو این خطاها با استفاده از راهکارهای مشترکی قابل حل شدن هستند و اگه یکی از این خطاها رو برطرف کنید به صورت خودکار اونیکی هم رفع خواهد شد که در ادامه به معرفی چند روش برای این کار میپردازم.
گوگل آزمایشی را در سال ۲۰۱۱ بر روی تلفنهای همراه هوشمند اجرا گردید و به این نتیجه رسیدن که هر یک کیلوبایت از فایل جاوا اسکریپت حدود 1 میلیثانیه زمان برای خواندن به طول میانجامد و این مقدار به زمان کل لود صفحه اضافه میگردد، و حال اگر ۲۰۰KB حجم جاوا اسکریپت باشد زمان لود اولیه آن در یک صفحه ۲۰۰ میلیثانیه به زمان لود کل صفحه برای بازدیدکننده اضافه میگردد، از آنجایی که جاوا اسکریپت در هر صفحه باید لود شود، این تاخیر در تمام صفحات ایجاد خواهد شد.
همونطور که میدونید در تمامی سایتها از فایلهای جاوا اسکریپت برای اجرای برخی کارها در مرورگر استفاده میشه و این فایلها هم معمولا نسبت به سایر فایلهایی که به صورت کدنویسی شده هستند حجم بیشتری دارند. مرورگر برای اینکه بتونه این فایلها رو اجرا بکنه باید منتظر بمونه تا اول این فایلها اجرا بشن و بعدش متناسب با همین محتوای سایت رو هم به مرور لود کرده و نمایش بده. مشکل درست در این زمان پیش میاد که بخاطر قرار گرفتن این فایلها در Header باعث میشه که مرورگر ابتدا شروع به دانلود و پردازش این فایلها بکنه و بعدش با رفتن به خطوط بعدی سایر قسمتهای یک سایت رو که شامل محتوای اون هست نمایش بده. برای همین تا زمانی که فایلهای JS لود بشن مرورگر همچنان در حال لود صفحه است و همین موضوع باعث میشه کاربران فکر کنند این سایت با کندی کار میکنه.