Hacker News

Gusuka kurubuga

Ibitekerezo

7 min read Via www.joshwcomeau.com

Mewayz Team

Editorial Team

Hacker News

Kuki Sprite ikiri ngombwa mugutezimbere Urubuga rwa kijyambere

Mugihe cyambere cyurubuga, buri cyifuzo cyishusho cyari icyuho. Abashakashatsi bavumbuye ko guhuza amashusho mato menshi muri dosiye imwe - urupapuro rwa spite - bishobora kugabanya cyane ibyifuzo bya HTTP no kwihutisha imitwaro ya page. Mugihe ibibanza byahindutse hamwe na HTTP / 2 kugwiza, CDNs, hamwe nubushakashatsi bwa vector, sprites ikomeza kuba tekinike itangaje mumwaka wa 2026. Kuva kuri CSS ishusho ya sisitemu kugeza kuri sisitemu yikimenyetso cya SVG hamwe na animasiyo yimikino ishingiye kuri canvas, igitekerezo cya sprite gikomeje guhinduka no gukemura ibibazo nyabyo byimikorere kurubuga rwa none.

= Iyi ngingo irasesengura amateka, tekinoroji, hamwe nuburyo bugezweho bwa sprite kurubuga - n'impamvu zitari zishaje.

Inkomoko yinkomoko: CSS Ishusho Yerekana

CSS yerekana amashusho yagaragaye hagati ya 2000 nkigisubizo kiziguye kumipaka ihuza imbuga. Mucukumbuzi mubisanzwe yafunguye icyarimwe 2-6 icyarimwe icyarimwe kuri domaine, bivuze urupapuro rufite udushushondanga 40 duto twatonda umurongo kubisabwa no guhagarara. Igisubizo cyari cyiza: komatanya ayo mashusho yose muri dosiye imwe ya PNG cyangwa GIF, hanyuma ukoreshe CSS background-position kugirango werekane gusa igice kijyanye nishusho kuri buri kintu.

Ibigo nka Google, Yahoo, na Amazon byakiriye sprites bikabije. Google izwi cyane guhuza amashusho menshi ya UI murupapuro rumwe rwa sprite, yogosha milisekondi amagana kurupapuro rwo gupakira inshuro. Tekinike yari yoroshye mubitekerezo ariko isaba ibisobanuro - buri gishushanyo gikenera pigiseli ya pigiseli nyayo, no kuvugurura igishushanyo kimwe bivuze kuvugurura urupapuro rwose.

Ibikoresho nka SpritePad, SpriteMe, hanyuma nyuma yubaka-ibikoresho byububiko bwa Grunt na Gulp byahinduye inzira, bibyara ishusho ihuriweho hamwe na CSS ihuye. Mugihe cyo kwakirwa, impapuro za spite zafatwaga nkimyitozo idahwitse kubikorwa byose-bikora umushinga wurubuga. Urubuga rusanzwe rwa e-ubucuruzi rushobora kugabanya 60+ isaba amashusho kugeza kuri 3-4 imitwaro ya sprite, igabanya igihe cyambere cyo gupakira 30-50%.

SVG Sprites: Impinduramatwara ya Vector

Nkuko igishushanyo mbonera cyakiriye neza kandi retina yerekanwe ikaba isanzwe, raster ishingiye kuri PNG sprites yerekanye aho igarukira. Udushushondanga twasaga neza kuri 16 × 16 kumurongo usanzwe wagaragaye utagaragara neza kuri ecran-DPI. Injira SVG sprites - tekinike yahujije ibyifuzo-kugabanya inyungu za sprites gakondo hamwe nubunini butagira ingano bwibishushanyo mbonera.

SVG sprites ikora itandukanye nababanjirije raster. Aho gukoresha imiterere yimbere, abitezimbere basobanura ibimenyetso byinshi imbere muri dosiye imwe ya SVG bakoresheje element, buri kimwe gifite ID idasanzwe. Ibi bimenyetso noneho byerekanwe ahantu hose muri HTML hamwe na tags, bitanga gusa igishushanyo cyerekanwe mubunini bukenewe. Isomero ryuzuye isomero riremereye nka dosiye imwe yihishe, kandi buri gishushanyo gitanga ibisobanuro ku cyemezo icyo ari cyo cyose.

Ubu buryo bwahindutse igipimo cya zahabu kuri sisitemu ya sisitemu mugukoresha imbuga za interineti. Amahuriro acunga module nini - nka Mewayz hamwe nubucuruzi bwayo 207 buzenguruka CRM, inyemezabuguzi, HR, imicungire y’amato, nibindi byinshi - bishingikiriza cyane kuri sisitemu ya SVG kugirango itange amashusho ahoraho, yihuta-yerekana amashusho kuri buri kibaho na interineti. Iyo porogaramu yawe ikorera abakoresha 138.000+ bakorana nibikoresho byinshi bitandukanye burimunsi, itandukaniro ryimikorere hagati yo gupakira amadosiye 200 ya fayili yumuntu kugiti cye hamwe na SVG spite imwe yapimwe irashobora gupimwa muburyo bwihuse ndetse nigiciro cya seriveri.

Andika urupapuro rwa Animation y'urubuga n'imikino

Kurenga ibishushanyo bihamye, urupapuro rwerekana imbaraga urwego runini rwibirimo: animasiyo. Imikino ishingiye kuri mushakisha, ibice bya animasiyo ya UI, hamwe nubunararibonye bukoreshwa kenshi ukoresha impapuro za spite - gride yamakadiri akurikirana azenguruka kugirango akore ibintu byamazi. Ubu buhanga buteganya urubuga ubwarwo, rushingiye kuri animasiyo gakondo hamwe nibikoresho bya videwo yo hambere.

Mu rwego rwurubuga, animasiyo ya sprite mubisanzwe ikora mukunyura kumurongo ukoresheje CSS animasiyo hamwe na intambwe () igihe cyangwa JavaScript ikoreshwa na canvas yerekana. Inyuguti igenda, yipakurura ibintu bifite imiterere, cyangwa ingaruka ziturika - byose birashobora gutwarwa na dosiye imwe yishusho ikubiyemo buri kintu cyateguwe muri gride. Mucukumbuzi yikoreza dosiye imwe gusa, na animasiyo ya animasiyo ihindura gusa igice kigaragara.

Urupapuro rumwe rwa 200KB rushobora gutanga ama frame 60 ya animasiyo yoroshye byasaba ubundi 60 bisaba amashusho atandukanye cyangwa dosiye nini cyane. Mubikorwa-bikomeye ibidukikije, sprites ikomeza kuba inzira nziza yo gutanga ikadiri ishingiye kuri animasiyo kurubuga.

Imikino yimikino nka Phaser, PixiJS, na Three.js zose zitanga urwego rwambere rwambere kumpapuro za spite, zitanga ibikoresho byo gupakira atlas yimiterere no gucunga ikurikirana. Ndetse no hanze yimikino yo hanze, amatsinda yibicuruzwa akoresha animasiyo ya spite kugirango yinjire mu ndege, imikoranire mito, hamwe na UI ikora neza ituma abakoresha basezerana badatanze imikorere yimizigo.

Ibigezweho bigezweho nigihe Sprite ikomeje gutsinda

Umuryango witerambere ryurubuga rwateje imbere ubundi buryo bwa sprite gakondo, buriwese ufite ibicuruzwa bikwiye kumvikana. Igishushanyo cyimyandikire nka Font Awesome bundle icons nkimyandikire ya glyphs, bigatuma byoroha gukora hamwe na CSS ariko ugatangiza ibibazo byoroshye no gutanga ibisobanuro. Inline SVGs yashyizemo code ya vector muri HTML, ikuraho ibyifuzo byinyongera ariko ingano yinyandiko. Idosiye yumuntu ku giti cye yipakiye hamwe na HTTP / 2 ikuraho ibintu byinshi bikuraho imiyoboro ihuza imipaka yabanje gutera sprites, bigatuma amadosiye mato mato yikorera icyarimwe.

Noneho se sprite iracyatsinda ryari? Reba ibi bintu aho tekinike ya sprite ikomeza guhitamo neza: