Шамамен 15 жыл бұрын мен туристік агенттерге, әуежай қызметкерлеріне және авиакомпанияларға арналған қолданбалар жасаған компанияда жұмыс істедім. Біз сондай-ақ UI құрамдастары мен бір беттік қолданба мүмкіндіктері үшін өзіміздің ішкі құрылымымызды жасадық. Бізде барлығына арналған құрамдас бөліктер болды: өрістер, түймелер, қойындылар, ауқымдар, деректер кестелері, мәзірлер, күнді таңдаушылар, таңдаулар және көп таңдаулар. Бізде тіпті div компоненті болды. Айтпақшы, біздің div құрамдасымыз керемет болды, ол бізге барлық браузерлерде дөңгелек бұрыштар жасауға мүмкіндік берді, сенсеңіз де, сенбесеңіз де, ол кезде оңай нәрсе емес еді.

Біздің жұмысымыз JS, Ajax және динамикалық HTML бізді болашаққа әкелген революция ретінде қарастырылған тарихымыздың бір нүктесінде өтті. Кенеттен біз бетті динамикалық түрде жаңарта аламыз, серверден деректерді аламыз және басқа беттерге өтудің қажеті болмас еді, бұл баяу болып көрінді және екі бет арасында экранда үлкен ақ тіктөртбұрыш жарқырайды. Джефф Этвуд (StackOverflow негізін қалаушы) танымал болған сөйлем болды, онда оқылады: «JavaScript тілінде жазылуы мүмкін кез келген қолданба JavaScript тілінде жазылады.» — Джефф Этвуд

Ол кезде біз үшін бұл қолданбаларды жасауға батылдық сияқты көрінді. JS-пен барлығын жасауға рұқсат беру сияқты болды. Сондықтан біз JS-пен барлығын жасадық және іс-әрекеттің басқа жолдарын зерттеуге уақыт таппадық. Бізде HTML және CSS не істей алатынын дұрыс үйренуге ынта сезінбедік. Біз вебті толығымен дамып келе жатқан қолданба платформасы ретінде қабылдамадық. Біз оны негізінен жұмыс істеуіміз керек нәрсе ретінде көрдік, әсіресе браузерді қолдауға келгенде. Істерді орындау үшін біз оған көбірек JS лақтыра аламыз. Веб қалай жұмыс істейтіні және платформада не бар екені туралы көбірек білуге ​​уақыт бөлу маған көмектесті ме? Әрине, мен шынымен қажет емес көптеген кодтарды қырып алар едім. Бірақ, ол кезде онша емес шығар. Көрдіңіз бе, ол кезде браузердегі айырмашылықтар айтарлықтай болды. Бұл Internet Explorer браузері бұрынғысынша басым болған, Firefox екінші орында тұрған, бірақ Chrome жылдам танымал болуына байланысты нарықтағы үлесін жоғалта бастаған уақыт болды. Chrome және Firefox веб-стандартты келісуде жақсы болғанымен, қолданбаларымыз жұмыс істейтін орталар бізге IE6-ны ұзақ уақыт бойы қолдауға тура келді. Бізге IE8-ді қолдауға рұқсат етілген кезде де, браузерлер арасындағы көптеген айырмашылықтармен күресуге тура келді. Бұл ғана емес, сол кездегі веб-сайттың платформаға салынған көптеген мүмкіндіктері болмады.

Бүгінге жылдам алға. Жағдай қатты өзгерді. Бізде бұл мүмкіндіктер бұрынғыдан да көп болып қана қоймай, олардың қолжетімді болу жылдамдығы да артты. Содан кейін тағы да сұрақ қоюға рұқсат етіңіз: Интернеттің қалай жұмыс істейтіні және платформада не қолжетімді екендігі туралы көбірек білуге ​​уақыт бөлу сізге бүгін көмектесе ме? Мүлдем иә. Бүгінгі күні веб-платформаны түсіну және пайдалануды үйрену сізге басқа әзірлеушілерге қарағанда үлкен артықшылық береді. Өнімділік, қол жетімділік, жауап беру, олардың барлығымен бірге жұмыс істейсіз бе, әлде тек UI мүмкіндіктерін жөнелтесіз бе, егер мұны жауапты инженер ретінде жасағыңыз келсе, сізге қолжетімді құралдарды білу мақсаттарыңызға тезірек және жақсырақ жетуге көмектеседі. Кітапхана енді қажет болмауы мүмкін кейбір нәрселер Бүгінгі таңда қандай браузерлер қолдайтынын біле отырып, сұрақ туындайды: біз неден бас тарта аламыз? 2025 жылы дөңгелек бұрыштар жасау үшін бізге div компоненті қажет пе? Әрине, бізде жоқ. border-radius сипатына қазіргі уақытта 15 жылдан астам уақыт бойы барлық пайдаланылатын браузерлер қолдау көрсетті. Сондай-ақ, бұрыштық пішін де жақында келеді, тіпті әдемі бұрыштар үшін. Енді барлық негізгі браузерлерде қол жетімді және кодтық базаңыздағы бар тәуелділіктерді ауыстыру үшін пайдалануға болатын салыстырмалы жақындағы мүмкіндіктерді қарастырайық. Мәселе сіздің барлық сүйікті кітапханаларыңызды бірден тастап, кодтық базаңызды қайта жазу емес. Қалғанына келетін болсақ, алдымен браузердің қолдауын ескеріп, жобаңызға тән басқа факторларға негізделген шешім қабылдауыңыз керек. Келесі мүмкіндіктер үш негізгі шолғыш қозғалтқышында (Chromium, WebKit және Gecko) жүзеге асырылады, бірақ сізде оларды бірден пайдалануға жол бермейтін әртүрлі шолғышты қолдау талаптары болуы мүмкін. Қазір бұл мүмкіндіктер туралы білуге ​​әлі де жақсы уақыт, және мүмкін, оларды бір сәтте пайдалануды жоспарлайсыз. Попоперлер мен диалогтар Popover API,

HTML элементі және ::backdrop псевдоэлементі қалқымалы терезедегі тәуелділіктен арылуға көмектеседі,құралдар кеңесі және Floating UI, Tippy.js, Tether немесе React Tooltip сияқты диалогтық кітапханалар. Олар сіз үшін қол жетімділікті және фокусты басқаруды өңдейді, CSS көмегімен жоғары теңшеуге болады және оңай анимациялануы мүмкін. Аккордеондар
элементі, оның өзара ерекше элементтерге арналған атау атрибуты және ::details-content жалған элементі Bootstrap Accordion немесе React Accordion компоненті сияқты аккордеон құрамдастарына қажеттілікті жояды. Мұнда жай ғана платформаны пайдалану HTML/CSS білетін адамдарға белгілі бір кітапхананы пайдалануды үйренбей-ақ кодыңызды түсіну оңайырақ дегенді білдіреді. Бұл сонымен қатар кітапханадағы өзгерістерді бұзуға немесе кітапхананың жұмысын тоқтатуға иммунитетіңіз бар екенін білдіреді. Және, әрине, бұл жүктеу және іске қосу үшін аз кодты білдіреді. Өзара ерекше мәліметтер элементтерін ашу, жабу немесе жандандыру үшін JS қажет емес. CSS синтаксисі Каскадты қабаттар, неғұрлым ұйымдасқан CSS кодтық базасы үшін, CSS кірістіру, ықшам CSS, жаңа түс функциялары, салыстырмалы түстер және түстер араласуы үшін, abs(), sign(), pow() және басқалар сияқты жаңа математика функциялары CSS алдын ала процессорларына, Bootstrap және Tailwind сияқты утилиталық кітапханаларға, тіпті CSS-те жұмыс уақытына тәуелділікті азайтуға көмектеседі. Ұзақ уақыт бойы ең көп сұралатын мүмкіндіктердің бірі :has() ойын өзгерткіші күрделі JS негізіндегі шешімдердің қажеттілігін жояды. JS утилиталары FindLast() немесе at() сияқты заманауи массив әдістері, сондай-ақ different(), intersection(), union() және басқалар сияқты Set әдістері Lodash сияқты кітапханаларға тәуелділікті азайтады. Контейнер сұраулары Контейнер сұраулары UI құрамдастарын қарау терезесі өлшемінен басқа нәрселерге жауап береді, сондықтан оларды әртүрлі контексттерде қайта пайдалануға болады. Бұл үшін енді JS-heavy UI кітапханасын пайдаланудың қажеті жоқ және политолтырғышты да пайдаланудың қажеті жоқ. Орналасу Тор, ішкі тор, флексбокс немесе көп бағандар бұрыннан бар, бірақ CSS күйі сауалнамаларының нәтижелеріне қарап, әзірлеушілер жаңа нәрселерді қабылдауға өте сақтықпен қарайтыны және олар жасамас бұрын өте ұзақ күтетіні анық. Бұл мүмкіндіктер ұзақ уақыт бойы негізгі болды және оларды Bootstrap тор жүйесі, Foundation Framework икемді қорап утилиталары, Bulma бекітілген торы, Materialize торы немесе Tailwind бағандары сияқты нәрселерге тәуелділіктен құтылу үшін пайдалануға болады. Мен сізге рамкаңызды тастау керек деп айтпаймын. Сіздің командаңыз оны белгілі бір себептермен қабылдады және оны жою үлкен жоба болуы мүмкін. Бірақ веб-платформаның үстіңгі жағында үшінші тарап қаптамасыз не ұсына алатынын қарау көптеген артықшылықтарға ие. Жақын болашақта сізге қажет болмауы мүмкін нәрселер Енді жақын арада кітапхана қажет болмайтын кейбір нәрселерді жылдам қарастырайық. Яғни, төмендегілер жаппай қабылдауға дайын емес, бірақ олар туралы білу және кейінірек пайдалануды жоспарлау пайдалы болуы мүмкін. Анкерлік позициялау CSS зәкірінің орналасуы басқа элементтерге қатысты қалқымалы және құралдар кеңестерінің орналасуын өңдейді және бетті жылжытқанда, айналдырғанда немесе өлшемін өзгерткенде де олардың көріністе сақталуына қамқорлық жасайды. Бұл жоғарыда айтылған Popover API үшін тамаша қосымша, ол өнімділігі жоғары JS шешімдерінен көшуді жеңілдетеді. Навигация API Navigation API бір беттік қолданбаларда шарлауды өңдеу үшін пайдаланылуы мүмкін және React Router, Next.js маршрутизациясы немесе бұрыштық бағыттау тапсырмаларына тамаша қосымша немесе тіпті ауыстыру болуы мүмкін. Transitions API көру View Transitions API интерфейсі беттің әртүрлі күйлері арасында анимация жасай алады. Бір беттік қолданбада бұл күйлер арасындағы біркелкі ауысуды өте жеңілдетеді және Anime.js, GSAP немесе Motion.dev сияқты анимация кітапханаларынан құтылуға көмектеседі. Одан да жақсырақ, API бірнеше бетті қолданбалармен де пайдаланылуы мүмкін. Бұрын мен 15 жыл бұрын мен жұмыс істеген компанияда бір беттік қолданбаларды жасағанымыздың себебі шарлау кезінде бетті қайта жүктеудің ақ жыпылықтауын болдырмау деп айтқанымда есіңізде ме? Егер сол кезде API қол жетімді болса, біз бір беттік шеңберсіз және бүкіл қолданбаны үлкен бастапқы жүктеп алмай-ақ әдемі бетке өту әсерлеріне қол жеткізе алар едік. Айналдыру арқылы басқарылатын анимациялар Айналдыру арқылы басқарылатын анимациялар уақыт өте келе емес, пайдаланушының айналдыру орнында жұмыс істейді, бұл оларды әңгімелеу және өнім турлары үшін тамаша шешім етеді. Кейбір адамдар онымен сәл асып кетті, бірақ оны жақсы пайдаланған кезде бұл өте тиімді дизайн құралы болуы мүмкін және келесідей кітапханалардан құтылуға көмектеседі: ScrollReveal, GSAP Scroll немесеWOW.js. Теңшелетін таңдаулар Теңшелетін таңдау қол жетімділік пен өнімділік артықшылықтарын қамтамасыз ете отырып, оның көрінісі мен мазмұнын толығымен теңшеуге мүмкіндік беретін қалыпты <таңдау> элементі болып табылады. Бұл ұзақ уақыт болды және өте сұранысқа ие мүмкіндік болды және оның жақында веб-платформаға келгенін көру таңқаларлық. Кірістірілген теңшелетін таңдау арқылы сіз реттелетін таңдау құрамдастары үшін осы күту қиын JS кодының барлығынан бас тарта аласыз. CSS қалауы CSS Masonry - мен көбірек уақыт өткізгім келетін тағы бір веб-платформа мүмкіндігі. CSS Masonry көмегімен сіз икемді, тор немесе басқа кірістірілген CSS орналасу примитивтері арқылы өте қиын немесе тіпті мүмкін емес макеттерге қол жеткізе аласыз. Әзірлеушілер Masonry JS кітапханасы сияқты Masonry макеттеріне қол жеткізу үшін жиі үшінші тарап кітапханаларын пайдаланады. Бірақ, бұл туралы кейінірек. Масондыққа көшпес бұрын осы тармақты аяқтайық. Неліктен сізге қамқорлық қажет Еңбек нарығы JavaScript-те тәжірибесі бар веб-әзірлеушілерге және осы күннің соңғы фреймворктарына толы. Сонымен, шын мәнінде, егер сіз бүгінгі күні бұрыннан білетін кітапханалармен, утилиталармен және фреймворктермен бірдей әрекеттерді жасай алсаңыз, веб-платформаның примитивтерін көбірек пайдалануды үйренудің мәні неде? Бүкіл сала осы құрылымдарға сүйеніп, сіз жай ғана дұрыс кітапхананы ала алсаңыз, браузер жеткізушілері әзірлеушілерді платформаны пайдалануға сендіруге тырыспай, оларды тезірек жүктеп, тезірек іске қосу үшін осы кітапханалармен жұмыс істеуі керек емес пе? Біріншіден, біз кітапхана авторларымен жұмыс істейміз және олардың нені пайдаланатынын біліп, сол аймақтарды жақсарту арқылы фреймворктарды жақсартамыз. Бірақ екіншіден, «платформаны пайдалану» айтарлықтай пайда әкелуі мүмкін. Құрылғыларға азырақ код жіберу Негізгі артықшылығы - сіз өзіңіздің клиенттеріңіздің құрылғыларына әлдеқайда аз кодты жібересіз. 2024 жылғы веб-альманахқа сәйкес, HTTP сұрауларының орташа саны бір сайтқа шамамен 70 құрайды, олардың көпшілігі 23 сұрауы бар JavaScript-ке байланысты. 2024 жылы JS басым файл түрі ретінде суреттерді басып озды. JS файлдарына арналған бет сұрауларының медианалық саны 23, 2022 жылдан бастап 8%-ға жоғары. Ал бет өлшемі жылдан жылға өсуде. Орташа бет салмағы қазір шамамен 2 МБ құрайды, бұл 10 жыл бұрынғыдан 1,8 МБ артық.

Әрине, сіздің интернетке қосылу жылдамдығыңыз да жоғарылаған шығар, бірақ бұл бәрі үшін бірдей емес. Әрқайсысының құрылғы мүмкіндіктері бірдей емес. Платформамен жасауға болатын нәрселер үшін үшінші тарап кодын алу, оның орнына, сіз көбірек кодты жібересіз, сондықтан әдеттегіден аз тұтынушыларға қол жеткізесіз. Интернетте жүктеудің нашар өнімділігі үлкен бас тартуға әкеледі және бренд беделіне нұқсан келтіреді. Құрылғыларда азырақ кодты іске қосу Сонымен қатар, сіз тұтынушылардың құрылғыларына жіберетін код платформаның жоғарғы жағында аз JavaScript абстракцияларын пайдаланса, жылдамырақ жұмыс істейді. Ол әдепкі бойынша анағұрлым сезімтал және қол жетімді болуы мүмкін. Мұның бәрі тұтынушылардың көбірек және бақытты болуына әкеледі. Менің әріптесім Алекс Расселдің жыл сайынғы өнімділік теңсіздігі туралы блогын тексеріңіз, ол байлық теңсіздігіне байланысты миллиардтаған пайдаланушылары бар нарықтарда премиум құрылғылардың жоқтығын көрсетеді. Және бұл алшақтық уақыт өте келе өсіп келеді.

Кірістірілген кірпіштің орналасуы Жақында шығатын веб-платформаның бір мүмкіндігі және мені қатты қуантады - бұл CSS Masonry.

Масонизмнің не екенін түсіндіруден бастайын. Масондық дегеніміз не Тас қалау - бұл Pinterest бірнеше жыл бұрын танымал еткен макет түрі. Ол мазмұнның тәуелсіз тректерін жасайды, олардың ішінде элементтер тректің басына мүмкіндігінше жақын орналасады.

Көптеген адамдар масондықты портфолиолар мен фото галереялар үшін тамаша опция ретінде көреді, ол әрине жасай алады. Бірақ Masonry сіз Pinterest-те көргеннен гөрі икемді және ол тек сарқырама тәрізді макеттермен шектелмейді. Тас қалау схемасында:

Жолдар бағандар немесе жолдар болуы мүмкін:

Мазмұн тректерінің барлығы бірдей өлшемде болуы шарт емес:

Элементтер бірнеше тректерді қамтуы мүмкін:

Элементтер белгілі бір жолдарға орналастырылуы мүмкін; олар әрқашан автоматты орналастыру алгоритмін ұстанудың қажеті жоқ:

Демонстрациялар Міне, Chromium жүйесіндегі CSS Masonry қолданбасын қолдану арқылы жасаған бірнеше қарапайым демонстрациялар. Элементтердің (бұл жағдайда атауы) бірнеше тректерді қалай қамтитынын көрсететін фотогалерея демонстрациясы:

Әртүрлі өлшемдегі тректерді көрсететін тағы бір фотогалерея:

Кейбір тректер басқаларына қарағанда кеңірек және кейбір элементтер макеттің бүкіл енін қамтитын жаңалықтар сайтының орналасуы:

Элементтерді белгілі бір жолдарға қоюға болатынын көрсететін канбан тақтасы:

Ескерту: Theалдыңғы демонстрациялар көптеген веб-пайдаланушыларға әлі қол жетімді емес Chromium нұсқасымен жасалған, өйткені CSS Masonry браузерлерде енді ғана енгізіле бастады. Дегенмен, веб-әзірлеушілер жылдар бойы масондық макеттерін жасау үшін кітапханаларды қуана пайдаланып келеді. Бүгінгі таңда тасты пайдаланатын сайттар Шынында да, тас қалау бүгінгі күні Интернетте өте кең таралған. Pinterest-тен басқа мен тапқан бірнеше мысалдар:

Тағы бірнеше, онша айқын емес мысалдар:

Сонымен, бұл макеттер қалай жасалды? Шешімдер Мен қолданған амалдардың бірі - оның орнына Flexbox орналасуын пайдалану, оның бағытын бағанға өзгерту және оны орау үшін орнату. Осылайша, сіз әртүрлі биіктіктегі элементтерді бірнеше тәуелсіз бағандарға орналастыра аласыз, бұл тас қалауының орналасуына әсер етеді:

Дегенмен, бұл уақытша шешімде екі шектеу бар:

Элементтердің реті нақты тас қалауының орналасуынан өзгеше. Flexbox көмегімен элементтер алдымен бірінші бағанды ​​толтырады, ал ол толған кезде келесі бағанға өтеді. Masonry көмегімен элементтер қай жолға (немесе бұл жағдайда бағанға) көбірек бос орын болса, жинақталады. Бірақ сонымен қатар, мүмкін одан да маңыздысы, бұл уақытша шешім Flexbox контейнеріне бекітілген биіктікті орнатуды талап етеді; әйтпесе, орау болмайды.

Үшінші тарап тас қалаушы кітапханалары Жетілдірілген жағдайлар үшін әзірлеушілер кітапханаларды пайдаланады. Бұл үшін ең танымал және танымал кітапхана жай ғана Masonry деп аталады және NPM деректері бойынша аптасына шамамен 200 000 рет жүктеледі. Squarespace сонымен қатар кодсыз балама үшін Masonry орналасуын көрсететін орналасу компонентін қамтамасыз етеді және көптеген сайттар оны пайдаланады. Бұл опциялардың екеуі де элементтерді орналасуға орналастыру үшін JavaScript кодын пайдаланады. Кіріктірілген қалау Масондық енді браузерлерде кірістірілген CSS мүмкіндігі ретінде пайда бола бастағанына өте қуаныштымын. Уақыт өте келе сіз Grid немесе Flexbox сияқты Masonry қолданбасын пайдалана аласыз, яғни ешқандай уақытша шешімдерді немесе үшінші тарап кодын қажет етпейсіз. Microsoft-тағы менің командам Edge, Chrome және басқа да көптеген браузерлер негізделген Chromium ашық бастапқы жобасында кіріктірілген Masonry қолдауын жүзеге асырды. Mozilla шын мәнінде 2020 жылы Masonry қолданбасын тәжірибелік енгізуді ұсынған бірінші шолғыш жеткізушісі болды. Сондай-ақ Apple осы жаңа веб-орынның қарапайым болуына өте қызығушылық танытты. CSS жұмыс тобында жалпы бағыт және тіпті жаңа дисплей түрі: тор жолақтары туралы келісіммен мүмкіндікті стандарттау жұмыстары да алға жылжуда. Масонерлік туралы көбірек білгіңіз келсе және прогресті қадағалағыңыз келсе, менің CSS Masonry ресурстары бетін қараңыз. Уақыт өте келе, Masonry Grid немесе Flexbox сияқты базалық мүмкіндікке айналғанда, біз оны жай ғана пайдаланып, келесі мүмкіндіктерді пайдалана аламыз:

Жақсырақ өнімділік, Жақсырақ жауап беру, Пайдаланудың қарапайымдылығы және қарапайым код.

Осыларды толығырақ қарастырайық. Жақсырақ өнімділік Өзіңіздің Masonry тәрізді орналасу жүйесін жасау немесе оның орнына үшінші тарап кітапханасын пайдалану элементтерді экранға орналастыру үшін JavaScript кодын іске қосу керек дегенді білдіреді. Бұл сондай-ақ бұл код блоктауды көрсететінін білдіреді. Шынында да, JavaScript коды іске қосылмайынша, ештеңе пайда болмайды немесе заттар дұрыс жерде немесе дұрыс өлшемде болмайды. Кірпіштің орналасуы көбінесе веб-беттің негізгі бөлігі үшін пайдаланылады, яғни код сіздің негізгі мазмұныңызды басқа жағдайда болғаннан кейінірек көрсетеді, LCP немесе ең үлкен мазмұнды бояу көрсеткішін төмендетеді, бұл қабылданатын өнімділік пен іздеу жүйесін оңтайландыруда үлкен рөл атқарады. Мен Masonry JS кітапханасын қарапайым орналасумен және DevTools қолданбасында баяу 4G қосылымын модельдеу арқылы сынап көрдім. Кітапхана өте үлкен емес (24 КБ, 7,8 Кбайт gzip), бірақ менің сынақ шарттарым бойынша жүктеуге 600 мс қажет болды. Мұнда Masonry кітапханасы үшін ұзақ 600 мс жүктеу уақытын көрсететін өнімділік жазбасы берілген және бұл орын алған кезде басқа көрсету әрекеті болмаған:

Бұған қоса, бастапқы жүктеу уақытынан кейін жүктелген сценарийді талдау, құрастыру және одан кейін іске қосу қажет болды. Мұның бәрі, бұрын айтылғандай, беттің көрсетілуіне тосқауыл болды. Браузердегі кіріктірілген Masonry енгізуімен бізде жүктеу және іске қосу сценарийі болмайды. Браузер қозғалтқышы бетті көрсетудің бастапқы қадамында өз жұмысын жасайды. Жақсырақ жауап беру Бет бірінші рет жүктелген кездегідей, шолғыш терезесінің өлшемін өзгерту сол беттегі орналасуды қайтадан көрсетуге әкеледі. Осы кезде, егер бет Masonry JS кітапханасын пайдаланса, сценарийді қайта жүктеудің қажеті жоқ, себебі ол әлдеқашанМұнда. Дегенмен, элементтерді дұрыс орындарға жылжытатын код іске қосылуы керек. Енді бұл кітапхана бет жүктелген кезде мұны өте жылдам орындайтын сияқты. Дегенмен, ол элементтерді терезе өлшемін өзгертуде басқа орынға жылжыту қажет болғанда жандандырады және бұл үлкен айырмашылықты тудырады. Әрине, пайдаланушылар браузер терезелерінің өлшемін өзгертуге біз әзірлеушілер сияқты көп уақыт жұмсамайды. Бірақ бұл анимациялық өлшемді өзгерту тәжірибесі өте қиын болуы мүмкін және беттің жаңа өлшеміне бейімделуіне кететін уақытты арттырады. Пайдаланудың қарапайымдылығы және қарапайым код Веб-мүмкіндікті пайдалану қаншалықты оңай және код қаншалықты қарапайым көрінеді, бұл сіздің командаңыз үшін үлкен өзгеріс тудыруы мүмкін маңызды факторлар. Олар, әрине, соңғы пайдаланушы тәжірибесі сияқты маңызды бола алмайды, бірақ әзірлеуші ​​тәжірибесі техникалық қызмет көрсетуге әсер етеді. Кірістірілген веб-мүмкіндікті пайдалану осы бағытта маңызды артықшылықтарға ие:

HTML, CSS және JS тілдерін білетін әзірлеушілер бұл мүмкіндікті оңай пайдалана алады, себебі ол веб-платформаның қалған бөліктерімен жақсы біріктіріліп, үйлесімді болу үшін жасалған. Функцияны пайдалану жолында енгізілген өзгерістерді бұзу қаупі жоқ. Бұл мүмкіндіктің ескіру немесе қызмет көрсетілмеуі қаупі нөлге жуық.

Кірістірілген масондық жағдайында, бұл қарапайым орналасу болғандықтан, сіз оны Grid немесе Flexbox сияқты CSS-тен пайдаланасыз, JS қатысы жоқ. Сондай-ақ, бос орын сияқты орналасуға қатысты басқа CSS сипаттары сіз күткендей жұмыс істейді. Бұл туралы білуге ​​болатын айлалар немесе уақытша шешімдер жоқ және сіз үйренетін нәрселер MDN-де құжатталған. Masonry JS lib үшін инициализация біршама күрделі: ол баған мен бос орын өлшемдерін орнату үшін жасырын HTML элементтерімен бірге белгілі бір синтаксисі бар деректер төлсипатын қажет етеді. Сонымен қатар, егер сіз бағандарды кеңейткіңіз келсе, проблемаларды болдырмау үшін бос орын өлшемін өзіңіз қосуыңыз керек:

<стиль> .track-sizer, .элемент { ені: 20%; } .gutter-sizer { ені: 1 рем; } .элемент { биіктігі: 100px; margin-block-end: 1rem; } .элемент:nth-child(тақ) { биіктігі: 200px; } .элемент--ені2 { ені: calc(40% + 1rem); }

...

Мұны кіріктірілген кіріктірілген құрылыстың қалай болатынын салыстырайық: <стиль> .контейнер { көрсету: тор жолақтары; тор жолақтары: қайталау (4, 20%); алшақтық: 1 рем; } .элемент { биіктігі: 100px; } .элемент:nth-child(тақ) { биіктігі: 200px; } .элемент--ені2 { тор-баған: аралығы 2; }

...

Қарапайымырақ, ықшам код, ол саңылау сияқты нәрселерді пайдалана алады және тордағы сияқты 2-аралықпен орындалатын тректер орындалады және саңылау өлшемін қамтитын дұрыс енді есептеуді қажет етпейді. Ненің бар екенін және қашан қол жетімді екенін қалай білуге ​​болады? Тұтастай алғанда, мәселе JS кітапханасы арқылы кіріктірілген тасты пайдалану керек пе емес, бірақ қашан. Masonry JS кітапханасы таңқаларлық және көптеген жылдар бойы веб-платформадағы бос орынды толтырып келеді және көптеген бақытты әзірлеушілер мен пайдаланушылар үшін. Әрине, егер сіз оны кіріктірілген тасты енгізумен салыстырсаңыз, оның бірнеше кемшіліктері бар, бірақ бұл енгізу дайын болмаса маңызды емес. Бұл жаңа веб-платформа мүмкіндіктерін тізімдеу маған оңай, өйткені мен браузер сатушысында жұмыс істеймін, сондықтан мен не болатынын білемін. Бірақ әзірлеушілер жиі сауалнамадан кейін жаңа нәрселерді қадағалау қиын екенін бөліседі. Ақпараттан хабардар болу қиын, ал компаниялар әрқашан оқуға басымдық бермейді. Бұған көмектесу үшін сізге қажетті ақпаратты жылдам алу үшін қарапайым және ықшам жолдармен жаңартуларды қамтамасыз ететін бірнеше ресурстар бар:

Веб-платформада зерттеуші сайты бар: Сізді оның шығарылым жазбалары беті қызықтыруы мүмкін. Егер сізге RSS ұнаса, шығарылым жазбалары арнасын, сондай-ақ Жаңадан қолжетімді және кеңінен қолжетімді негізгі арналарды қараңыз.

ВебПлатформа күйінің бақылау тақтасы: Сізге оның әртүрлі негізгі жыл беттері ұнауы мүмкін.

Chrome Platform Status жол картасы беті.

Егер сізде біраз уақыт болса, браузер жеткізушілерінің шығарылым жазбалары сізді де қызықтыруы мүмкін:

Chrome Жиек Firefox Сафари

Қосымша ресурстар үшін менің веб-платформаны шарлау Cheatsheet бөлімін қараңыз. Менің нәрсем әлі де орындалмаған Бұл мәселенің екінші жағы. Уақытты, күш-қуатты және бақылау жолдарын тапсаңыз да, дауысыңызды естіп, сүйікті мүмкіндіктеріңізді іске асыруға әлі де көңіліңіз толмай қалады. Мүмкін сіз бірнеше жылдар бойы белгілі бір қатенің шешілуін немесе ол әлі жоқ браузерде жеткізілетін белгілі бір мүмкіндікті күткен боларсыз. Менің айтайын дегенім, браузер жеткізушілері тыңдайды. Мен әзірлеушілер сигналдары мен пікірлерін үнемі талқылайтын бірнеше ұйымаралық топтардың мүшесімін. Біз әр шолғыш жеткізушісінің ішкі және форумдардағы, ашық бастапқы жобалардағы, блогтардағы және сауалнамалардағы сыртқы/жалпыға ортақ пікірлердің көптеген әртүрлі көздерін қарастырамыз. Және біз әрқашан әзірлеушілерге өздерінің нақты қажеттіліктері мен пайдалану жағдайларын бөлісудің жақсы жолдарын жасауға тырысамыз. Сондықтан, мүмкіндігіңіз болса, браузер жеткізушілерінен көбірек талап етіңіз және сізге қажет мүмкіндіктерді енгізу үшін бізге қысым көрсетіңіз. Менің ойымша, бұл уақытты қажет етеді, сонымен қатар қорқытуы мүмкін (кіру үшін жоғары кедергі туралы айтпағанның өзінде), бірақ ол да жұмыс істейді. Міне, сіз өзіңіздің (немесе компанияңыздың) дауысын естудің бірнеше жолы бар: Жыл сайынғы JS күйі, CSS күйі және HTML күйі сауалнамасын алыңыз. Олар браузер жеткізушілерінің жұмысына басымдық беруде үлкен рөл атқарады. Браузерлерде дәйекті түрде жүзеге асырылатын арнайы стандартқа негізделген API қажет болса, келесі Interop жобасының итерациясында ұсыныс жіберуді қарастырыңыз. Бұл көбірек уақытты қажет етеді, бірақ Shopify және RUMvision Interop 2026 үшін тілектер тізімдерін қалай бөлісетінін қарастырыңыз. Осы сияқты егжей-тегжейлі ақпарат браузер жеткізушілеріне басымдық беру үшін өте пайдалы болуы мүмкін. Браузер жеткізушілеріне әсер ету үшін көбірек пайдалы сілтемелер алу үшін менің веб-платформада шарлау Cheatsheet бөлімін қараңыз. Қорытынды Аяқтау үшін бұл мақала сізге бірнеше ой қалдырды деп үміттенемін:

Масонерлік және басқа да алдағы веб-мүмкіндіктер үшін толқу. Пайдалануды бастағыңыз келуі мүмкін бірнеше веб-мүмкіндіктер. Кірістірілген мүмкіндіктердің пайдасына жоюға болатын пайдаланушы немесе үшінші тарап кодының бірнеше бөліктері. Не болатынын қадағалап отырудың және браузер жеткізушілеріне әсер етудің бірнеше жолы.

Ең бастысы, мен сізді веб-платформаны толық пайдаланудың артықшылықтарына сендірдім деп үміттенемін.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free