رفع خطای Defer parsing of JavaScript

رفع خطای Defer parsing of JavaScript

رفع خطای Defer parsing of JavaScript

رفع خطای Defer parsing of JavaScript

امروز در بخش رفع خطاهای pagespeed به آموزش رفع خطای Defer parsing of JavaScript  خواهیم پرداخت. برای حل مشکل Defer parsing of JavaScript در سایت GTMetrix برخی اوقات لازم است کدنویسی انجام دهید .  برخی اوقات نیز لازم است از افزونه های وردپرس یا جوملا استقاده نمایید.

می‌توان بدون شک گفت جاوا اسکریپت جز ۵ زبان برنامه نویسی برتر دنیا به شمار می‌رود .  وجود آن در هر وب سایتی به ویژه در سمت کاربر وب سایت ضروی است. امروزه دیگر کم تر سایتی پیدا می‌شود که از جاوا اسکریپت یا فریم ورک‌های آن مانند جی کوئری, نود جی اس, ری اکت و … استفاده نکند.

چگونگی استفاده از کدها در بهینه‌سازی وب سایت بسیار مهم است . باید در نوع کدنویسی کدهای جاوا اسکریپت نیز نهایت دقت و حساسیت را به خرج داد. زمانی که فرد یا وب مستری در وب سایت جی تی متریکس با خطای Defer parsing of JavaScript روبرو می‌شود . این معنی را باید از وب سایت جی تی متریکس دریافت کند که فایل های دارای کد های js یا همان جاوا اسکریپت و فریم ورک‌های آن به صورت بهینه و استاندارد نوشته و استفاده نشده است که نتیجه آن بالا بردن سرعت بارگذاری و معطلی کار هنگام لود شدن صفحه است.

رفع-خطای-defer-parsing-of-javascript

جزئیات بیشتر درباره خطای Defer parsing of JavaScript

در آزمایشی که توسط گوگل در سال 2011 بر روی موبایل انجام شده است به این نتیجه رسیده‌اند که به ازای هر 1kb کد JS مقدار 1 میلی ثانیه به زمان بارگذاری سایت اضافه می‌شود. حال درنظر بگیرید که سایت شما 250kb کد جاوا اسکریپت JS داشته باشد، یعنی 250 میلی ثانیه به زمان بارگذاری سایت اضافه می‌شود و از آنجایی که کدهای جاوا اسکریپت JS درتمام صفحات باید فراخوانی شوند این تاخیر در تمام صفحات بوجود می‌آید.

هر کاربری که سایت شما را باز کند مرورگر علاوه برتمام المان های سایت، تمام کدهای جاوا اسکریپت را نیز فراخوانی می‌نماید که طبیعتا این موضوع موجب افزایش زمان بارگذاری سایت می‌شود. از همین روز توضیه می‌کنیم کدهای جاوا اسکریپت را در فوتر فراخوانی نمایید. البته مشکلی که وجود دارد برای سایت های وردپرسی و جوملا در افزونه ها یا پلاگین‌ها است. چرا که با هربار بروزرسانی پلاگین‌ها تغییراتی که روی انها برای بارگذاری در فوتر انجام داده‌اید ریست می‌شود و به حالت اولیه باز می‌گردد.

رفع خطای Defer parsing of JavaScript

نحوه رفع این ارور

راه حل اول

همان‌طور که می‌دانید لود کدهای یک صفحه از سایت به ترتیب از بالا یعنی قسمت Head صفحه به پایین یعنی تا </body> اجرا می‌شود . اگر تعداد بسیاری فایل در قسمت Head فراخوانی شود باعث کند‌تر شدن . بالا رفتن زمان لود صفحه‌هات سایت می‌گردد، بنابراین برای بالا بردن سرعت سایت و کم کردن زمان لود آن باید فایل‌های جاوا اسکریپت JavaScript را به تعویق انداخت.

مثلا می‌توان فایل‌های جاوا اسکریپت را به انتهای کدها اضافه کرد، به همین منظور کافیست کدهای JS (منظور همان کدهای جاوا اسکریپت است) که با تگ <script> در صفحات HTML فراخوانی می‌شود .  در فوتر، قبل از </body>قرار داد تا ابتدا متن‌ها و CSS ها لود شود و سپس فایل‌های جاوا اسکریپت در انتها لود شود. البته این روش بیشتر برای سایت‌های از نوع استاتیک است و سایت‌های از نوع داینامیک نیاز به ویرایش بیشتری دارند.

رفع-خطای-defer-parsing-of-javascript

راه حل دوم

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

چند افزونه مخصوص وردپرس:

WP Deferred JavaScripts

Speed Booster Pack

autoptimize

Async JavaScript

چند افزونه مخصوص جوملا:

JCH Optimize

Javascript Async and Defer

scriptsdown

راه حل سوم

یکی دیگر از راه حل هایی که بتوانید با آن به حل مشکل Defer parsing of JavaScript  بپردازید . استفاده از اتربیوت های defer در تگ های جاوا اسکریپت می باشد. نتیجه آن کاهش زمان لود صفحات است.

وجه مشترک این اتریبیوت این است که مروگر منتظر لود شدن کامل فایل جاوا اسکریپت نمی‌ماند .همزمان با لود کردن این فایل، ادامه فایل
HTML را هم لود می‌کند، که این کار باعث می‌شود صفحه خیلی زودتر در مرورگر کاربر نمایش داده شود. اسکریپت‌های از نوع defer حتی اگر به طور کامل هم لود شوند. منتظر مانده تا کل صفحه HTMLلود شود و بعد از آن اجرا می‌شوند . اگر لازم باشد بعد از لود شدن کامل عناصر HTML فایل جاواکسریپت اجرا شود باید از defer استفاده کنید.

Share this post

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.