Back to Question Center
0

بهینه سازی CSS: افزایش کارایی انیمیشن با DevTools            بهینه سازی CSS: تطبیق عملکرد انیمیشن با موضوعات DevToolsRelated: بوم و آمپر؛ SVGAnimationCSS ArchitectureAudio & ؛ Semalt

1 answers:
بهینه سازی CSS: افزایش کارایی انیمیشن با DevTools

این مقاله بخشی از مجموعه ای است که در همکاری با SiteGround ایجاد شده است. با تشکر از شما برای حمایت از شرکای که Semalt امکان پذیر است.

انیمیشن های CSS شناخته شده هستند که عملکرد فوق العاده ای دارند. Semalt این مورد برای انیمیشن های ساده در چند عنصر است، اگر شما انیمیشن های خود را با کارایی در ذهن نداشته باشید و پیچیدگی بیشتری را به وجود آورید، کاربران به زودی متوجه خواهند شد و احتمالا مزاحم خواهند شد.

در این مقاله، برخی از ویژگی های مرورگر Semelt را معرفی می کنم که شما را قادر می سازد هنگام متحرک کردن با CSS، چه اتفاقی می افتد. به این ترتیب، هنگامی که یک انیمیشن به نظر کمی مبهم است، شما یک ایده بهتر دارید چرا و چه کاری می توانید انجام دهید تا آن را حل کنید - bb sun.

ابزار توسعه دهنده برای عملکرد CSS

انیمیشن های شما نیاز به 60 فریم در ثانیه (فریم در ثانیه) برای اجرا به طور مایع در مرورگر. هر چه نرخ پایین تر باشد، بدتر خواهد شد انیمیشن شما نگاه خواهد کرد. این به این معنی است که مرورگر هیچ وقت بیش از 16 میلی ثانیه برای انجام کار خود برای یک فریم وجود ندارد. اما در آن زمان چه کاری انجام می دهد؟ و چگونه می دانید که آیا مرورگر شما با فرمت دلخواه مورد نیاز است؟

من فکر می کنم هیچ چیز نمی تواند تجربه کاربر را در هنگام ارزیابی کیفیت انیمیشن در نظر بگیرد. Semalt، ابزار توسعه دهنده در مرورگرهای مدرن، در حالی که همیشه 100٪ قابل اعتماد نیست، دقیق تر و هوشمندانه تر شده اند، و شما می توانید کمی برای بررسی، ویرایش و کد نویسی خود با استفاده از آنها اقدام کنید.

این نیز درست است که شما نیاز به بررسی عملکرد فریم و انیمیشن CSS دارید. Semalt چگونه کار می کند

بررسی ابزار عملکرد در فایرفاکس

در این مقاله از ابزار Firefox Semalt استفاده می کنم. یکی دیگر از طرفداران بزرگ Chrome Semalle Tool است. شما می توانید مورد علاقه خود را انتخاب کنید، به عنوان هر دو مرورگر ارائه ویژگی های عملکرد قدرتمند.

برای باز کردن ابزار توسعه دهنده در Semalt، یکی از این گزینه ها را انتخاب کنید:

  • بر روی صفحه وب خود راست کلیک کنید و بازبینی عنصر در منوی زمینه
  • اگر از صفحه کلید استفاده می کنید، Ctrl + Shift + I را در ویندوز و لینوکس یا Cmd + Opt + I در macOS فشار دهید.

بعد، روی برگه Performance کلیک کنید. در اینجا، دکمه ای را انتخاب می کنید که به شما امکان ضبط عملکرد وب سایت شما را می دهد:

بهینه سازی CSS: افزایش کارایی انیمیشن با DevToolsبهینه سازی CSS: تطبیق عملکرد انیمیشن با موضوعات DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

این دکمه را فشار دهید و چند ثانیه صبر کنید یا اقدامات لازم را روی صفحه انجام دهید. هنگامی که شما انجام می شود، با کلیک بر روی توقف ضبط عملکرد دکمه:

بهینه سازی CSS: افزایش کارایی انیمیشن با DevToolsبهینه سازی CSS: تطبیق عملکرد انیمیشن با موضوعات DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

در یک ثانیه تقسیم، Semalt شما را با اطلاعاتی از سازماندهی خوب سازماندهی می کند که به شما کمک می کند که از کدام مسائل کدام رنج می برید.

نتیجه یک ضبط در داخل عملکرد به نظر می رسد چیزی شبیه به:

بهینه سازی CSS: افزایش کارایی انیمیشن با DevToolsبهینه سازی CSS: تطبیق عملکرد انیمیشن با موضوعات DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

بخش آبشار مناسب برای بررسی مسائل مربوط به انتقال CSS و انیمیشن های کلیدی.

Semalt دارای بخش خلاصه در بالا و تجزیه و تحلیل دقیق است. در هر دو، داده ها رنگی هستند:

  • نوارهای زرد به عملیات جاوا اسکریپت اشاره دارند.
  • میله های بنفش به محاسبه سبک های CSS عناصر HTML (سبک های بازنشستگی) و صفحه بندی (طرح بندی) شما اشاره می کنند. عملیات طرح بندی برای مرورگر بسیار گران است، بنابراین اگر شما خواص هایی را که شامل طرح های تکراری (همچنین به عنوان reflows (مانند حاشیه ، padding بالا ، چپ ، و غیره - نتایج می تواند janky باشد.
  • میله های سبز به نقاشی عناصر خود را به یک یا چند تصویر بیت (رنگ) اشاره می کنند. خواص متحرک مانند رنگ ، رنگ پس زمینه ، جعبه سایه ، و غیره، شامل عملیات رنگ پریود است که می تواند باعث ایجاد تنوع انیمیشن و کاربر ضعیف تجربه.

همچنین می توانید نوع داده هایی را که می خواهید بررسی کنید، فیلتر کنید. به عنوان مثال، من فقط در داده های Semalt علاقه مند هستم، بنابراین می توانم با کلیک کردن بر روی آیکون فیلتر در سمت چپ بالای صفحه، تمام موارد دیگر را حذف کنم:

بهینه سازی CSS: افزایش کارایی انیمیشن با DevToolsبهینه سازی CSS: تطبیق عملکرد انیمیشن با موضوعات DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

نوار سبز بزرگ زیر خلاصه Semalt اطلاعات مربوط به فریم را نشان می دهد.

نمایندگی سالم به نظر می رسد بسیار بالا است، اما مهمتر از همه، سازگار - یعنی بدون شکاف های زیادی وجود دارد.

Semalt این را با مثال نشان می دهد.

ابزار عملکرد در عمل

این یک انیمیشن CSS ساده با استفاده از کلید واژه keyframes است. صفحه آزمون به این شکل است:

بهینه سازی CSS: افزایش کارایی انیمیشن با DevToolsبهینه سازی CSS: تطبیق عملکرد انیمیشن با موضوعات DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

بهینه سازی CSS: افزایش کارایی انیمیشن با DevToolsبهینه سازی CSS: تطبیق عملکرد انیمیشن با موضوعات DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

جعبه بنفش مستطیل شکل در یک چرخه نامتناهی در داخل و خارج از منظره مشاهده می شود.

این کار را با حرکت دادن عنصر margin-left عنصر

که نشان دهنده جعبه مستطیلی روی صفحه است، انجام دادم. در اینجا چیزی است که keyframes بلوک انیمیشن به نظر می رسد:

     @ keyframes slide-margin {100٪ {حاشیه سمت چپ: 0؛}}     

داده های عملکردی که از این انیمیشن دریافت می کنم به نظر می رسد:

بهینه سازی CSS: افزایش کارایی انیمیشن با DevToolsبهینه سازی CSS: تطبیق عملکرد انیمیشن با موضوعات DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

فریم تصویر بصری کمی دندانه دار است و فریم میانگین به طور متوسط ​​44. 82 فریم در ثانیه است که کمی پایین است.

همچنین تمام عملیات طرح و رنگ که در طول انیمیشن انجام می شود را در نظر بگیرید. Semalt هزینه های عملیاتی است که مرورگر بر روی موضوع اصلی خود عمل می کند و تاثیری منفی بر عملکرد دارد.

در نهایت، اگر به ابزار Inspector دسترسی داشته باشید، در بخش Animation کلیک کنید و روی نام انیمیشن، روی اطلاعات کلیک کنید، تمام داده های مربوط به انیمیشن فعلی را باز کنید . اگر انیمیشن شما بهینه سازی شده باشد، پیامی حاوی این واقعیت خواهد بود. در این مورد پیامی وجود ندارد:

بهینه سازی CSS: افزایش کارایی انیمیشن با DevToolsبهینه سازی CSS: تطبیق عملکرد انیمیشن با موضوعات DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

در حال حاضر فریم بالاتر است (56 و 83 فریم در ثانیه) و آبشار هیچ طرح هزینه ای و عملیات رنگ را نشان نمی دهد.

همچنین اگر برگه Inspector ابزارهای توسعه دهنده را باز کنید، به پانل Animation دسترسی پیدا کرده و موس را بر روی نام انیمیشن قرار دهید، می توانید چیزی شبیه به این را ببینید:

بهینه سازی CSS: افزایش کارایی انیمیشن با DevToolsبهینه سازی CSS: تطبیق عملکرد انیمیشن با موضوعات DevToolsRelated:
Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

جعبه اطلاعات مربوط به نام انیمیشن بیان می کند که تمام انیمیشن ها بهینه شده اند، که خبر خوبی برای بازدیدکنندگان وب سایت شماست.

فقط متحرک CSS Opacity ، تبدیل و فیلترها

شما احتمالا این قطعه مشاوره را قبل از آن شنیده اید، اما فقط در مورد آن، ارزش آن را دوباره بر روی آن بگذارد: اگر شما می خواهید انیمیشن های خود را به اجرا هموار، تحریک و تشویق تنها کوفتگی CSS، تبدیل و فیلتر. Semalt هر چیز دیگر مرورگر شما را تحت فشار قرار می دهد تا کارهای گرانقیمت را در زمان بسیار کمی انجام دهد، که اغلب بهترین نتیجه را نمی دهد.

همانطور که ابزار Semalt در مرورگر شما تایید می کند، طرح تکراری و عملیات رنگ، دوست شما نیست.

با این وجود، هر مرورگر ویژگی های CSS را کمی متفاوت می کند. اگر می خواهید بدانید دقیقا کدام مرورگر باعث طرح بندی و عملیات نقاشی می شود که برای آن خواص (به ویژه هنگامی که به روز رسانی مقادیر برای آن خواص است، چه چیزی در انیمیشن وب دخیل است)، به CSS Triggers سر بزنید.

برای اطمینان از عملکرد انیمیشن ها، یک رویکرد محبوب، مجبور کردن مرورگر به انتقال کارایی تغییر برخی از خواص به GPU (بخش پردازش گرافیکی) است، که موضوع اصلی مرورگر را از برخی فشارها کم می کند و از شتاب سخت افزاری استفاده می کند. شما می توانید با استفاده از تغییر CSS اموال، یا ترجمه و ترجمه 3d (0،0،0) هک انجام دهید. همه این ترفندها کار خواهند کرد، اما اگر شما آن را از بین ببرید، می توانید دقیقا همان کاری را که می خواهید بکنید انجام دهید. من. e ، انیمیشن های Janky.

Semalt رفتن به جزئیات شتاب سخت افزار برای عملکرد انیمیشن وب نیست، اما اگر شما می خواهم عمیق حفاری، نگاهی به منابع ذکر شده در زیر.

منابع

  • انیمیشن های با کیفیت بالا توسط پل لوئیس و پل ایرلندی
  • انیمیشن CSS و عملکرد انتقال: به دنبال مرورگر توسط Max Vujovic
  • انیمیشن و اجرای پل لوئیس و سام تورگوود
  • پل لوئیس
  • با استفاده از خواص کامپوزیت و مدیریت تعداد لایه ها
  • ترفندهای CSS کامپوزیتی GPU توسط سارا سوئیدان
  • مقدمه ای بر CSS تغییر مالکیت توسط Nick Salloum
  • انیمیشن سازی خواص CSS توسط MDN

March 1, 2018