Ծրագրավորողին
24.05.2022

CSS-ն ընդդեմ JS անիմացիայի. Ո՞րն է ավելի արագ | WEBSTART TEAM

CSS-ն ընդդեմ JS անիմացիայի. Ո՞րն է ավելի արագ | WEBSTART TEAM | Webstart



Այս նյութում Webstart-ի frontend ծրագրավորող Քրիստինեի հետ կխոսենք պարզ՝ բարդ թվացող պրոցեսների մասին։

Ծրագրավորման համաշխարհային թրենդներից արդեն որերորդ տարին է դուրս չեն գալիս անիմացիաները։ Անիմացիան արվում է ոչ միայն կայքին կրեատիվ տեսք հաղորդելու համար, այն նաև հաճախ կրում է ֆունկցիոնալ նշանակություն։ Օրինակ, եթե հարկավոր է ընդգծել կամ օգտատիրոջ ուշադրությունը հրավիրել ինչ-որ հրամանի, կոճակի կամ նախադասության վրա՝ այդ դեպքում ևս օգնության են գալիս անիմացիաները։

Մի փոքր սփոյլեր սկզբում։ Քրստինեն նշում է, որ JS-ի հնարավորություններն ավելի մեծ են. ընդունված է համարել, որ այն ավելի արագ է, սակայն դա միանշանակ չէ։ JavaScript-ը լեզու է և լոգիկա է պահանջում։

Եվ ուրեմն, նշված պրոցեսները լավ պատկերացնելու համար նախ պատասխանենք մի կարևոր հարցի։



Ինչպե՞ս են ստեղծվում անիմացիաները JS-ի օգնությամբ

Մի քիչ ծրագրավորման բառապաշար օգտագործենք, սկսնակներին այս տեղեկությունը հաստատ պետք կգա 🙂

Որպեսզի ստացվի անիմացիա, պետք է տվյալ կոնտեյներ էլեմենտը ստեղծված լինի հետևյալ կերպ՝ style = “position: relative”։ Իսկ այն տարրը, որին անիմացիա պետք է հաղորդվի, այսպես՝ style = “position: absolute”։

Իսկ այժմ անդրադառնանք մեր գլխավոր խնդրին։



JS և CSS անիմացիաների տարբերությունները

Քրիստինեն պնդում է, որ կան փոքրիկ անիմացիաներ, որոնք JS-ով ստեղծելն անիմաստ է, չնայած որ հնարավոր է, քանի որ CSS-ով այն ավելի արագ է ստացվում։



Ահա մի քանի օրինակ՝


  • JS-ով կոճակի վրա քլիք ես անում ու պատասխանի համար ժամանակ կարող ես դնել, օրինակ՝ հինգ րոպեից արձագանքի։ Իսկ CSS-ի վրա դա, եթե անգամ հնարավոր է, ապա շատ ավելի աշխատատար կլինի։

  • Հովըր, ֆոկուս, գույն, դիրք, չափսեր CSS-ով ենք ստեղծում։

  • Եթե տվյալները ինչ-որ տեղից վերցնում ես և սպասում պատասխանի՝ դա JS-ով ես անում։



Այժմ անդրադառնանք JS-ի և CSS-ի գլխավոր տարբերություններին, որպեսզի իմանաս որը երբ գործածել՝ առանց փորձարկումների վրա ավելորդ ժամանակ վատնելու։



CSS անիմացիաները հիմնականում մշակվում են հոսքային կոմպոզիցիայով (animation thread), որը տարբերվում է գլխավոր բրաուզերի հոսքից (main thread)։ Եթե բրաուզերը կատարում է բարդ հրամանները գլխավոր հոսքում՝ անիմացիաներն առանց ընդհատնվելու կիրականացվեն։


Իրականում, անիմացիա պատրաստելու գործիքի ընտրության հարցում ավելի կարևոր է ոչ թե այն, թե ինչ է լիելու վերջնական տեսքը, այլ այն, թե ինչպես է դա արվելու։

Օրինակ՝ CSS-ը թույլ է տալիս ստեղծել html անիմացիաներ՝ առանց JavaScript օգտագործելու։ CSS-ը նաև կարող է JS-ից ավելի արագ աշխատել, եթե բրաուզերով օպտիմիզացնենք այն։

Եթե դիտարկենք CSS-ը որպես գործիք, այլ ոչ թե որպես լեզու, ապա կստացվի, որ այն ավելի արագ է և ավելի լավ է աշխատում, ինչը չի համապատասխանում իրականությանը։ Եվ ահա թե ինչու։

Օրինակ եթե անիմացիան պետք է լինի SVG ֆիլտրերով, ապա թույլ համակարգչի վրա այն ընդհատումներով կաշխատի, և ոչ մի ծրագիր չի օգնի։ Այստեղից հետևում է որ տվյալ պարագայում ամեն ինչ խիստ հարաբերական է։

Սակայն եթե այնուամենայնիվ պետք է ընտրել այդ երկուսից մեկը, ապա հետևյալ տեղեկությունը հաստատ կօգնի։

Ամփոփում

Եթե հարկավոր է անիմացիայի պրոցեսը կառավարել և հետագայում ընդլայնել ֆունկցիոնալը՝ հնարավորությունների հաշվին, ապա JS-ն այս առումով ավելի հարմար է։ Մնացած դեպքերում կարող ես օգտագործել CSS։

Իրականում լավագույն տարբերակն այս երկուսի համադրումն է, քանի որ CSS-ը անիմացիան նկարագրելու համար է, JS-ը միացնելու համար է։ Այդ դեպքում կայքն ավելի լավ և բալասնավորված է աշխատում։ Պարզ ասած՝ առաջինը շարժիչն է, իսկ երկրորդը՝ մեքենան։ Դե իսկ եթե այս ամենից քեզ ոչինչ պարզ չէր, ապա կապ հաստատրիր մեր մասնագետների հետ, մենք կօգնենք որոշել, թե պե՞տք է արդյոք քեզ անիմացիայով կայք։

Rozik Avetistyan Administrator Webstart Group
💬 Ունե՞ք հարցեր։ Ես այստեղ եմ, որպեսզի օգնեմ Ձեզ։
👋 Բարև, ես Ռոզին եմ։ Ուրախ կլինեմ օգնել ձեզ գտնել լավագույն լուծումները ձեր բիզնեսի համար։ Ուղարկեք հարցում, եթե ցանկանում եք ստանալ անվճար խորհրդատվություն։
📩 Ուղարկել հարցում→

Վերջին բլոգեր

Rozik Avetistyan Administrator Webstart Group
Ռոզի ավետիսյան
Ադմինիստրատոր
Ունե՞ք հարցեր։ Ես այստեղ եմ, որպեսզի օգնեմ Ձեզ։
Բարև, ես Ռոզին եմ։ Ուրախ կլինեմ օգնել ձեզ գտնել լավագույն լուծումները ձեր բիզնեսի համար։ Ուղարկեք հարցում, եթե ցանկանում եք ստանալ անվճար խորհրդատվություն։

    Ստացիր նախագծի անվճար հաշվարկ
    Ես համաձայն եմ կայքի Գաղտնիության քաղաքականությանը