اگر از همراهان همیشگی پرشین تولز هستید، حتماً مقاله قبلی در مورد رفع خطاهای سایت به کمک GTmetrix را خواندهاید! در این مقاله هم قصد داریم به بررسی ادامه این بحث بپردازیم تا بتوانید با افزایش سرعت سایت، وضعیت سئوی سایت خود را بهبود ببخشید و رضایت کاربران را هم جلب کنید.
رفع خطای Avoid CSS expressions در جی تی متریکس
یکی دیگر از خطاهایی که ممکن است موقع تست سرعت سایت با جی تی متریکس باهاش مواجه شوید، خطای Avoid CSS expressions است که مربوط به استفاده از یک سری متدهای جاوا اسکریپت در CSS میشود. لازم است بدانید استفاده از این روش از نظر امنیتی خطرناک است! البته هرچند امروزه کمتر از این دست کدها استفاده میشود، اما هنوز به طور کامل نمیتوان گفت که فراموش شده است. با استفاده از CSS expressions میشود از یک سری متدهای جاوا اسکریپت در CSS استفاده کرد که فقط در مرورگر IE پشتیبانی میشود. از جمله این موارد میتوان به تغییر رنگ پس زمینه سایت به صورت زمانی اشاره کرد. حالا اگه از این قابلیت استفاده کرده باشید، برخی ویژگیهای CSS به صورت داینامیک تبدیل خواهند شد. استفاده از این قابلیت هم خطرناک است و به همین خاطر GTmetrix توصیه میکند که اگر از این قابلیت استفاده کردهاید، حتما غیرفعال کنید.
ارور Avoid CSS expressions در سایت GTmetrix از نوع خطا های CSS و دارای اولویت متوسط است. میزان دشواری مشخص شده برای حل این خطا آسان است و میانگین درصد آن نیز ۹۸ درصد است. CSS expressions در حقیقت روشی قدرتمند برای ایجاد خواص CSS به صورت فعال (دینامیک) هستند و برای جبران نقص موتور رندر CSS در IE استفاده می شود اما این روش قدرتمند بسیار خطرناک نیز می باشد.در نسخه های اینترنت اکسپلور ۷ به قبل پشتیبانی از استایل های CSS بسیار ناکار آمد است و توسعه دهندگان وب برای جبران شروع به استفاده از CSS expressions برای تقلید ویژگیها و قابلیت های CSS به صورت پویا در سایتها کردند.
استفاده از CSS expressions یک مشکل بسیار اساسی دارد و آن هم این است که میتواند تاثیر منفی بر عملکرد یک صفحه وب داشته باشد. CSS expression ها به طور مداوم در یک صفحه وب ارزیابی و بررسی شده و باعث انتظار بیش از حد کاربران برای یک صفحه وب میشود. هنگامی که یک صفحه در مرورگر تغییر اندازه داده میشود یا حتی موقعی که که کاربر در صفحه اسکرول میکند و ماوس را حرکت میدهد. این موارد میتواند تاثیر منفی بر روی تجربه کاربری سایت داشته باشد که یکی از موارد مهم برای ارزیابی و رتبه بندی سایت توسط موتور های جست و جو است. تمام این دلایل باعث می شوند که مشکلات ایجاد شده با استفاده از این دستور بیشتر از فواید آن باشد و استفاده از آن توجیهی نداشته باشد. برای تغییر این پروسه شما می توانید CSS را با یک سری از کد های کد های جاوا اسکریپت ترکیب کنید تا نتیجه آن همان کار CSS expressions را برای شما انجام دهد. عبارات CSS صرفا براساس جاوا اسکریپت و از طریق پیاده سازی CSS در اینترنت اکسپلورر، گزینه ای برای نوشتن اسکریپت ها در کد CSS را باز می کند. برای مثال میتوان به تغییر رنگ پس زمینه سایت به صورت زمانی اشاره کرد. در صورت استفاده از این امکان، تعدادی از ویژگیهای CSS به صورت داینامیک تبدیل خواهند شد. استفاده از این قابلیت مشکلاتی را ایجاد می کند و به همین خاطر GTmetrix پیشنهاد می دهد که در صورت استفاده از این قابلیت حتما آن را غیرفعال کنید. همانطور که اشاره شد، این دستور برای تغییر ویژگیهای وردپرس به صورت داینامیک است. به عنوان مثال فرض کنیم که با استفاده از کد رنگ CSS زیر، پس زمینه سایت را به یک رنگ دلخواه تغییر دادهاید.
background-color: #e5a27f;
حالا اگر از قابلیت CSS expressions استفاده کرده باشید که رنگ پس زمینه سایت به صورت ساعتی و در بازه زمانی دلخواه تغییر کند، از چنین دستوری در CSS استفاده میکنید.
background-color: expression( (new Date()).getHours( )%2 ? "#eaa22f" : "#F08A00" );
مشاهده میکنید که دو رنگ مشخص شده، طبق دستور رنگ پس زمینه سایت مدام در حال تغییر به این دو رنگ است و این تغییر رنگ به صورت انیمیشن صورت میگیرد اما برای رفع این مشکل در جی تی متریکس، باید فایلی که دارای CSS expressions است را پیدا کنید و در هر بخش که مشابه کد بالا مشخص شده رنگ پس زمینه سایت تغییر کند را ویرایش و این قسمت از کد را از فایل حذف کنید. در صورت عدم دسترسی به این فایل، با بکار بردن برنامه ++Notepad می توانید به راحتی با جستجوی عبارت expression را جستجو کنید به طوری که کل فایلها بررسی شده و فایل مورد نظر را پیدا کنید و با پاک کردن این بخش از کد مشکل css expression رو از جی تی متریکس برطرف کنید.
همانطور که میبینید دوتا رنگ مشخص شده که طبق دستور رنگ پس زمینه سایت به صورت مداوم در حال تغییر به این دو رنگ خواهد بود که به صورت انیمیشن مانند این تغییر رنگ صورت میگیرد. حالا برای آن که بتوانید این خطا را در جی تی متریکس برطرف کنید، کافی است فایلی که حاوی CSS expressions است را پیدا کرده و تو هر بخش که مشابه کد بالا مشخص شده، رنگ پس زمینه سایت تغییر کند را ویرایش و این قسمت از کد را از فایل حذف کنید. اگر موفق به پیدا کردن این فایل نشدید، با استفاده از برنامه ++Notepad میتوانید یک پوشه را جستجو کنید به طوری که کل فایلها بررسی میشوند و میتوانید به راحتی با جستجوی عبارت expression فایل رو پیدا کرده و با پاک کردن این بخش از کد مشکل css expression را از جی تی متریکس برطرف کنید.
در مقاله بعدی به بررسی ادامه این بحث میپردازیم.