Пре отприлике 15 година радио сам у компанији у којој смо правили апликације за путничке агенције, аеродромске раднике и авио компаније. Такође смо изградили сопствени оквир за УИ компоненте и могућности апликације на једној страници. Имали смо компоненте за све: поља, дугмад, картице, опсеге, табеле података, меније, бираче датума, изборе и вишеструке изборе. Чак смо имали и див компоненту. Успут, наша див компонента је била одлична, омогућила нам је да направимо заобљене углове на свим претраживачима, што, веровали или не, није било лако у то време.

Наш рад се одвијао у тренутку наше историје када су ЈС, Ајак и динамички ХТМЛ виђени као револуција која нас је довела у будућност. Одједном смо могли динамички да ажурирамо страницу, добијемо податке са сервера и избегнемо навигацију до других страница, што се видело као споро и на екрану је између две странице блистао велики бели правоугаоник. Постојала је фраза коју је популаризирао Џеф Етвуд (оснивач СтацкОверфлов-а), а која је гласила: „Свака апликација која се може написати у ЈаваСцрипт-у ће на крају бити написана у ЈаваСцрипт-у.“— Џеф Атвуд

За нас је у то време ово изгледало као да се усуђујемо да кренемо и креирамо те апликације. Осећало се као опште одобрење да се све ради са ЈС. Дакле, урадили смо све са ЈС-ом и нисмо баш одвојили време да истражимо друге начине да радимо ствари. Нисмо баш осећали подстицај да правилно научимо шта ХТМЛ и ЦСС могу да ураде. Нисмо заиста перципирали веб као платформу апликација која се развија у потпуности. Углавном смо то видели као нешто што морамо да заобиђемо, посебно када је у питању подршка претраживача. Могли бисмо само да бацимо више ЈС-а на то да завршимо ствари. Да ли би ми помогло одвајање времена да сазнам више о томе како је веб функционисао и шта је било доступно на платформи? Наравно, вероватно сам могао да обријем гомилу кода који заиста није био потребан. Али, у то време, можда и не толико. Видите, разлике у претраживачима су тада биле прилично значајне. Ово је било време када је Интернет Екплорер и даље био доминантан претраживач, са Фајерфоксом који је био близу другог, али је почео да губи тржишни удео због Цхроме који је брзо стицао популарност. Иако су Цхроме и Фирефок били прилично добри у договору о веб стандардима, окружења у којима су наше апликације радиле значила су да смо морали да подржавамо ИЕ6 дуго времена. Чак и када нам је било дозвољено да подржавамо ИЕ8, и даље смо морали да се носимо са много разлика између претраживача. И не само то, већ тадашњи веб једноставно није имао толико могућности уграђених директно у платформу.

Брзо унапред до данас. Ствари су се изузетно промениле. Не само да имамо више ових могућности него икада раније, већ се и повећала стопа по којој оне постају доступне. Дозволите ми да поново поставим питање: да ли би вам данас помогло одвајање времена да сазнате више о томе како веб функционише и шта је доступно на платформи? Апсолутно да. Учење да разумете и користите веб платформу данас вас ставља у огромну предност у односу на друге програмере. Било да радите на перформансама, приступачности, брзом одзиву, све заједно, или само испоручујете функције корисничког интерфејса, ако то желите да радите као одговоран инжењер, познавање алата који су вам доступни помоћи ће вам да брже и боље постигнете своје циљеве. Неке ствари за које вам можда више неће требати библиотека Знајући шта претраживачи подржавају данас, поставља се питање: Шта можемо да одбацимо? Да ли нам је потребна див компонента да бисмо направили заобљене углове 2025. године? Наравно, немамо. Својство радијуса границе подржавају сви тренутно коришћени претраживачи више од 15 година у овом тренутку. Ускоро долази и облик углова, за још елегантније углове. Хајде да погледамо релативно скорашње функције које су сада доступне у свим главним претраживачима и које можете користити да замените постојеће зависности у вашој бази кодова. Поента није у томе да одмах одбаците све своје омиљене библиотеке и поново напишете своју базу кодова. Што се тиче свега осталог, прво ћете морати да узмете у обзир подршку претраживача и одлучите на основу других фактора специфичних за ваш пројекат. Следеће функције су имплементиране у три главна механизма прегледача (Цхромиум, ВебКит и Гецко), али можда имате различите захтеве за подршку прегледача који вас спречавају да их одмах користите. Ипак, још увек је добро време да научите о овим функцијама и можда планирате да их користите у неком тренутку. Поповерс и дијалози Поповер АПИ, ХТМЛ елемент <диалог> и псеудоелемент ::бацкдроп могу вам помоћи да се решите зависности од искачућег прозора,опис алата и библиотеке дијалога, као што су Плутајући кориснички интерфејс, Типпи.јс, Тетхер или Реацт Тоолтип. Они управљају приступачношћу и управљањем фокусом за вас, ван кутије, веома су прилагодљиви коришћењем ЦСС-а и лако се могу анимирати. Хармонике Елемент <детаилс>, његов атрибут наме за међусобно искључиве елементе и псеудоелемент ::детаилс-цонтент уклањају потребу за компонентама хармонике као што су Боотстрап Аццордион или Реацт Аццордион компонента. Само коришћење платформе овде значи да је људима који познају ХТМЛ/ЦСС лакше да разумеју ваш код без потребе да прво науче да користе одређену библиотеку. То такође значи да сте имуни на промене у библиотеци или на укидање те библиотеке. И, наравно, то значи мање кода за преузимање и покретање. Међусобно искључивим елементима детаља није потребан ЈС за отварање, затварање или анимирање. ЦСС синтакса Каскадни слојеви, за организованију ЦСС кодну базу, ЦСС угнежђење, за компактнији ЦСС, нове функције боја, релативне боје и мешавину боја, нове математичке функције као што су абс(), сигн(), пов() и друге помажу у смањењу зависности од ЦСС предпроцесора, услужних библиотека као што су Боотстрап и Таилвинд ЦСС, или чак у рунтиме либрари ЦСС. Промена игре :хас(), једна од најтраженијих функција већ дуже време, уклања потребу за компликованијим решењима заснованим на ЈС-у. ЈС Утилитиес Модерне методе низа попут финдЛаст() или ат(), као и методе Сета као што су разлика(), интерсецтион(), унион() и друге могу смањити зависности од библиотека као што је Лодасх. Цонтаинер Куериес Упити контејнера чине да компоненте корисничког интерфејса реагују на ствари које нису величине оквира за приказ и стога их чине више употребљивим у различитим контекстима. За ово више нема потребе да користите ЈС-тешку УИ библиотеку, као ни полифил. Лаиоут Мрежа, подмрежа, флексбокс или више колона постоје већ дуже време, али гледајући резултате анкета о стању ЦСС-а, јасно је да су програмери склони да буду веома опрезни са усвајањем нових ствари и чекају веома дуго пре него што то ураде. Ове функције су дуго биле основне и могли бисте да их користите да бисте се решили зависности од ствари као што су Боотстрап-ов грид систем, Фоундатион Фрамеворк-ови флекбок услужни програми, Булма фиксна мрежа, Материализе грид или Таилвинд колоне. Не кажем да треба да одбаците свој оквир. Ваш тим га је усвојио с разлогом, а његово уклањање може бити велики пројекат. Али гледање на то шта веб платформа може да понуди без омота треће стране на врху долази са много предности. Ствари које вам можда више неће требати у блиској будућности Сада, хајде да на брзину погледамо неке од ствари за које вам библиотека неће требати у блиској будућности. Односно, ствари у наставку нису сасвим спремне за масовно усвајање, али свест о њима и планирање за потенцијалну каснију употребу могу бити од помоћи. Анцхор Поситионинг Позиционирање ЦСС сидра управља позиционирањем искачућих прозора и описа алатки у односу на друге елементе и води рачуна о томе да буду у виду, чак и када се померате, померате или мењате величину странице. Ово је одлична допуна претходно поменутом Поповер АПИ-ју, што ће додатно олакшати прелазак са ЈС решења са интензивнијим перформансама. АПИ за навигацију АПИ за навигацију може да се користи за руковање навигацијом у апликацијама на једној страници и може бити одлична допуна или чак замена за Реацт Роутер, Нект.јс рутирање или Ангулар рутирање. Прикажи АПИ за прелазе Виев Транситионс АПИ може да анимира између различитих стања странице. У апликацији на једној страници, ово чини глатке прелазе између стања веома лаким и може вам помоћи да се решите библиотека анимација као што су Аниме.јс, ГСАП или Мотион.дев. Још боље, АПИ се такође може користити са апликацијама са више страница. Сећате се раније, када сам рекао да је разлог зашто смо направили апликације за једну страницу у компанији у којој сам радио пре 15 година био избегавање белог бљеска поновног учитавања страница приликом навигације? Да је тај АПИ био доступан у то време, могли бисмо да постигнемо прелепе ефекте прелаза на страницу без оквира на једној страници и без огромног почетног преузимања целе апликације. Анимације вођене скроловањем Анимације вођене померањем покрећу се на корисниковој позицији померања, а не током времена, што их чини одличним решењем за приповедање прича и обиласке производа. Неки људи су мало претерали са тим, али када се добро користи, ово може бити веома ефикасан алат за дизајн и може помоћи да се решите библиотека као што су: СцроллРевеал, ГСАП Сцролл илиВОВ.јс. Прилагодљиви избори Прилагодљиви избор је нормалан елемент <селецт> који вам омогућава да у потпуности прилагодите његов изглед и садржај, истовремено осигуравајући приступачност и предности перформанси. Ово је дуго долазило и веома је тражена функција, и невероватно је видети да ускоро долази на веб платформу. Са уграђеним прилагодљивим избором, коначно можете да одбаците сав овај ЈС код који је тешко одржавати за ваше прилагођене компоненте за одабир. ЦСС Масонри ЦСС Масонри је још једна надолазећа функција веб платформе на коју желим да проведем више времена. Са ЦСС Масонри-ом, можете постићи изгледе који су веома тешки, или чак немогући, са флек, грид или другим уграђеним примитивима ЦСС распореда. Програмери често прибегавају коришћењу библиотека трећих страна да би постигли Масонри распореде, као што је Масонри ЈС библиотека. Али, више о томе касније. Хајде да завршимо ову тачку пре него што пређемо на масонерију. Зашто би требало да бринете Тржиште рада је пуно веб програмера са искуством у ЈаваСцрипт-у и најновијим оквирима дана. Дакле, заиста, која је поента у учењу да више користите примитиве веб платформе, ако можете да урадите исте ствари са библиотекама, услужним програмима и оквирима које већ познајете? Када се цела индустрија ослања на ове оквире, а ви можете само да укључите праву библиотеку, зар не би продавци претраживача требало да раде са овим библиотекама да би се брже учитавали и радили, уместо да покушавају да убеде програмере да уместо тога користе платформу? Пре свега, радимо са библиотечким ауторима и чинимо оквире бољим учећи о томе шта они користе и побољшавајући те области. Али друго, „само коришћење платформе“ може донети прилично значајне предности. Слање мање кода уређајима Главна предност је што на крају шаљете далеко мање кода на уређаје својих клијената. Према Веб алманаху за 2024., просечан број ХТТП захтева је око 70 по сајту, од којих је већина због ЈаваСцрипт-а са 23 захтева. У 2024. ЈС је такође претекао слике као доминантни тип датотеке. Просечан број захтева за страницу за ЈС датотеке је 23, што је 8% више од 2022. А величина странице наставља да расте из године у годину. Средња тежина странице је сада око 2 МБ, што је 1,8 МБ више него пре 10 година.

Наравно, вероватно се повећала и брзина ваше интернет везе, али то није случај за све. И немају сви исте могућности уређаја. Уместо тога, увођење кода треће стране за ствари које можете да урадите са платформом највероватније значи да шаљете више кода и да стога досежете мање купаца него што бисте иначе. На вебу, лош учинак учитавања доводи до великих стопа напуштања и штети репутацији бренда. Покретање мање кода на уређајима Штавише, код који шаљете на уређаје својих клијената вероватно ради брже ако користи мање ЈаваСцрипт апстракција на врху платформе. Такође је вероватно осетљивији и приступачнији подразумевано. Све ово доводи до више и задовољнијих купаца. Проверите годишњи блог о неједнакости у перформансама мог колеге Алекса Расела, који показује да су премиум уређаји углавном одсутни на тржиштима са милијардама корисника због неједнакости у богатству. А овај јаз временом само расте.

Изглед уграђеног зида Једна од карактеристика веб платформе која ускоро долази и због које сам веома узбуђен је ЦСС Масонри.

Дозволите ми да почнем тако што ћу објаснити шта је масонерија. Шта је зидање Зидање је врста распореда коју је Пинтерест учинио популарним пре много година. Он ствара независне траке садржаја унутар којих се ставке пакују што ближе почетку нумере.

Многи људи виде Масонри као одличну опцију за портфеље и фото галерије, што свакако може. Али Масонри је флексибилнији од онога што видите на Пинтерест-у и није ограничен само на распореде попут водопада. У зиданом распореду:

Трасе могу бити колоне или редови:

Све нумере садржаја не морају да буду исте величине:

Ставке могу да обухватају више стаза:

Ставке се могу поставити на одређене стазе; не морају увек да прате алгоритам аутоматског постављања:

Демос Ево неколико једноставних демонстрација које сам направио користећи предстојећу имплементацију ЦСС Масонри у Цхромиум-у. Демо галерије фотографија, који показује како ставке (наслов у овом случају) могу да обухватају више нумера:

Још једна галерија фотографија која приказује стазе различитих величина:

Изглед сајта са вестима са неким тракама ширим од других, а неке ставке обухватају целу ширину изгледа:

Канбан табла која показује да се ставке могу поставити на одређене стазе:

Напомена: Тхепретходне демонстрације су направљене са верзијом Цхромиум-а која још увек није доступна већини веб корисника, јер ЦСС Масонри тек почиње да се примењује у прегледачима. Међутим, веб програмери већ годинама са задовољством користе библиотеке за креирање Масонри распореда. Сајтови који данас користе зидање Заиста, масонерија је данас прилично уобичајена на вебу. Ево неколико примера које сам пронашао поред Пинтерест-а:

И још неколико, мање очигледних примера:

Дакле, како су настали ови распореди? Заобилазна решења Један трик који сам видео да се користи је коришћење Флекбок распореда, мењање његовог смера у колону и постављање да се премотава. На овај начин можете поставити предмете различите висине у више, независних колона, дајући утисак зиданог изгледа:

Међутим, постоје два ограничења са овим решењем:

Редослед ставки је другачији од онога што би био са правим зидарским распоредом. Са Флекбок-ом, ставке прво попуњавају прву колону и, када је пуна, онда иду у следећу колону. Са Масонри-ом, ставке би се слагале у било којој стази (или колони у овом случају) има више слободног простора. Али такође, и што је можда још важније, ово решење захтева да поставите фиксну висину за Флекбок контејнер; у супротном, не би дошло до умотавања.

Зидарске библиотеке трећих страна За напредније случајеве, програмери су користили библиотеке. Најпознатија и најпопуларнија библиотека за ово се једноставно зове Масонри, а према НПМ-у се преузима око 200.000 пута недељно. Скуареспаце такође обезбеђује компоненту распореда која приказује Масонри изглед, као алтернативу без кода, и многе локације је користе. Обе ове опције користе ЈаваСцрипт код за постављање ставки у изглед. Уграђено зидање Заиста сам узбуђен што се Масонри сада појављује у претраживачима као уграђена ЦСС функција. Временом ћете моћи да користите Масонри баш као што користите Грид или Флекбок, то јест, без потребе за заобилазним решењем или кодом треће стране. Мој тим у Мицрософт-у је имплементирао уграђену Масонри подршку у Цхромиум пројекат отвореног кода, на којем су засновани Едге, Цхроме и многи други претраживачи. Мозилла је заправо била први добављач претраживача који је предложио експерименталну имплементацију Масонри-ја још 2020. А Аппле је такође био веома заинтересован да овај нови веб изглед буде примитиван. Рад на стандардизацији ове функције такође напредује, уз договор унутар ЦСС радне групе о општем правцу, па чак и о новом типу приказа приказа: мрежним тракама. Ако желите да сазнате више о Масонри-у и пратите напредак, погледајте моју страницу са ЦСС Масонри ресурсима. Временом, када Масонри постане основна функција, баш као Грид или Флекбок, моћи ћемо једноставно да је користимо и имати користи од:

боље перформансе, Боља одзивност, Једноставна употреба и једноставнији код.

Хајде да их ближе погледамо. Боље перформансе Прављење сопственог система распореда налик на масонерију или коришћење библиотеке треће стране значи да ћете морати да покренете ЈаваСцрипт код да бисте поставили ставке на екран. То такође значи да ће овај код бити блокиран. Заиста, или се ништа неће појавити, или ствари неће бити на правим местима или праве величине, док се тај ЈаваСцрипт код не покрене. Зидани изглед се често користи за главни део веб странице, што значи да би код учинио да се ваш главни садржај појави касније него што би иначе могао да буде, деградирајући ваш ЛЦП или метрику Највећи садржај боје, који игра велику улогу у перципираним перформансама и оптимизацији претраживача. Тестирао сам Масонри ЈС библиотеку са једноставним изгледом и симулацијом споре 4Г везе у ДевТоолс-у. Библиотека није баш велика (24 КБ, 7,8 КБ гзиповано), али је требало 600 мс да се учита под мојим тестним условима. Ево снимка перформанси који показује дуго 600мс време учитавања за Масонри библиотеку и да се није десила никаква друга активност рендеровања док се то дешавало:

Поред тога, након почетног времена учитавања, преузету скрипту је требало рашчланити, компајлирати и затим покренути. Све је то, као што је већ поменуто, блокирало приказивање странице. Уз уграђену Масонри имплементацију у претраживачу, нећемо имати скрипту за учитавање и покретање. Мотор претраживача ће само урадити своје током почетног корака приказивања странице. Боља одзивност Слично као када се страница први пут учита, промена величине прозора претраживача доводи до поновног приказивања изгледа на тој страници. Међутим, у овом тренутку, ако страница користи Масонри ЈС библиотеку, нема потребе да поново учитавате скрипту, јер је већовде. Међутим, код који помера ставке на права места мора да се покрене. Сада се чини да је ова конкретна библиотека прилично брза у томе када се страница учита. Међутим, он анимира ставке када треба да се преместе на друго место при промени величине прозора, и то чини велику разлику. Наравно, корисници не троше време на промену величине прозора прегледача колико ми програмери. Али ово искуство анимиране промене величине може бити прилично узнемирујуће и повећава време које је потребно да се страница прилагоди новој величини. Једноставна употреба и једноставнији код Колико је једноставно користити веб функцију и колико једноставно изгледа код важни су фактори који могу направити велику разлику за ваш тим. Они, наравно, никада не могу бити толико важни као коначно корисничко искуство, али искуство програмера утиче на одржавање. Коришћење уграђене веб функције доноси важне предности на том фронту:

Програмери који већ познају ХТМЛ, ЦСС и ЈС ће највероватније моћи лако да користе ту функцију јер је дизајнирана да се добро интегрише и буде у складу са остатком веб платформе. Не постоји ризик од увођења промена у начин на који се ова функција користи. Готово је нула ризика да та функција постане застарела или неодржавана.

У случају уграђеног зидарства, пошто је то примитиван распоред, користите га из ЦСС-а, баш као Грид или Флекбок, без ЈС-а. Такође, друга својства ЦСС-а у вези са изгледом, као што је празнина, функционишу онако како бисте очекивали. Не постоје трикови или заобилазна решења о којима треба да знате, а ствари које научите су документоване на МДН-у. За Масонри ЈС библиотеку, иницијализација је мало сложена: захтева атрибут података са специфичном синтаксом, заједно са скривеним ХТМЛ елементима за постављање величина колона и празнина. Осим тога, ако желите да обухватите колоне, морате сами да укључите величину празнине да бисте избегли проблеме:

<сцрипт срц="хттпс://унпкг.цом/масонри-лаиоут@4.2.2/дист/масонри.пкгд.мин.јс"> <стиле> .трацк-сизер, .итем { ширина: 20%; } .гуттер-сизер { ширина: 1рем; } .итем { висина: 100пк; маргин-блоцк-енд: 1рем; } .итем:нтх-цхилд(одд) { висина: 200пк; } .итем--видтх2 { ширина: калц(40% + 1рем); }

<див цласс="цонтаинер" дата-масонри='{ "итемСелецтор": ".итем", "цолумнВидтх": ".трацк-сизер", "перцентПоситион": труе, "гуттер": ".гуттер-сизер" }'> <див цласс="трацк-сизер"> <див цласс="гуттер-сизер"> <див цласс="итем"> <див цласс="итем итем--видтх2"> <див цласс="итем"> ...

Хајде да упоредимо ово са оним како би изгледала уграђена Масонри имплементација: <стиле> .цонтаинер { приказ: грид-ланес; грид-ланес: репеат(4, 20%); зазор: 1рем; } .итем { висина: 100пк; } .итем:нтх-цхилд(одд) { висина: 200пк; } .итем--видтх2 { грид-колона: распон 2; }

<див цласс="цонтаинер"> <див цласс="итем"> <див цласс="итем итем--видтх2"> <див цласс="итем"> ...

Једноставнији, компактнији код који може само да користи ствари као што су размак и где се раздвојени трагови раде са распоном 2, баш као у мрежи, и не захтева од вас да израчунате праву ширину која укључује величину празнине. Како знати шта је доступно и када је доступно? Све у свему, питање заправо није да ли треба да користите уграђени Масонри преко ЈС библиотеке, већ када. Библиотека Масонри ЈС је невероватна и већ дуги низ година попуњава празнину на веб платформи и за многе срећне програмере и кориснике. Има неколико недостатака ако га упоредите са уграђеном Масонри имплементацијом, наравно, али они нису важни ако та имплементација није спремна. Лако ми је да наведем ове сјајне нове функције веб платформе јер радим код добављача претраживача, па сам стога склон да знам шта долази. Али програмери често деле, анкету за анкетом, да је тешко пратити нове ствари. Остати информисан је тешко, а компаније ионако не дају увек приоритет учењу. Да бисмо вам помогли у томе, ево неколико ресурса који обезбеђују ажурирања на једноставне и компактне начине како бисте брзо добили информације које су вам потребне:

Веб платформа садржи веб локацију истраживача: Можда ће вас занимати страница са белешкама о издању. И, ако волите РСС, погледајте фид белешки о издању, као и новодоступне и широко доступне изворе.

ВебКонтролна табла статуса платформе: Можда ће вам се допасти његове различите странице основне године.

Страница са мапом пута статуса Цхроме платформе.

Ако имате мало више времена, можда ће вас занимати и напомене о издању произвођача претраживача:

Цхроме Едге Фирефок Сафари

За још више ресурса, погледајте мој Цхеатсхеет Навигација по веб платформи. Моја ствар још увек није спроведена То је друга страна проблема. Чак и ако нађете времена, енергије и начина да пратите, и даље постоји фрустрација да се ваш глас чује и ваше омиљене функције имплементирају. Можда сте годинама чекали да се реши одређена грешка или да се одређена функција испоручи у прегледачу где још увек недостаје. Оно што ћу рећи је да продавци претраживача слушају. Ја сам део неколико тимова за више организација у којима стално разговарамо о сигналима и повратним информацијама програмера. Гледамо на много различитих извора повратних информација, како интерних код сваког добављача претраживача, тако и екстерних/јавних на форумима, пројектима отвореног кода, блоговима и анкетама. И увек покушавамо да створимо боље начине за програмере да поделе своје специфичне потребе и случајеве коришћења. Дакле, ако можете, захтевајте више од добављача претраживача и притискајте нас да применимо функције које су вам потребне. Разумем да је за то потребно време, а такође може да буде застрашујуће (да не помињемо високу баријеру за улазак), али такође функционише. Ево неколико начина на које можете да добијете глас (или ваше компаније): Узмите годишње анкете о стању ЈС-а, стању ЦСС-а и стању ХТМЛ-а. Они играју велику улогу у томе како добављачи претраживача дају приоритет свом раду. Ако вам је потребан одређени АПИ заснован на стандарду који ће се доследно имплементирати у свим прегледачима, размислите о подношењу предлога на следећој итерацији пројекта Интероп. Захтева више времена, али размислите о томе како су Схопифи и РУМвисион поделили своје листе жеља за Интероп 2026. Овакве детаљне информације могу бити веома корисне за добављаче претраживача да дају приоритет. За више корисних веза за утицај на продавце претраживача, погледајте мој Цхеатсхеет Навигација по веб платформи. Закључак За крај, надам се да вам је овај чланак оставио неколико ствари о којима треба да размислите:

Узбуђење за Масонри и друге предстојеће веб функције. Неколико веб функција које бисте можда желели да почнете да користите. Неколико делова прилагођеног кода или кода треће стране које ћете можда моћи да уклоните у корист уграђених функција. Неколико начина да пратите шта долази и утичете на продавце прегледача.

Што је још важније, надам се да сам вас уверио у предности коришћења веб платформе до њеног пуног потенцијала.

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