Bezplatné herné nástroje v HTML5 a JavaScripte. Bezplatné herné nástroje HTML5 a JavaScript Zrýchlite počiatočné vykresľovanie pomocou zdieľanej vyrovnávacej pamäte štýlu

Článok bol aktualizovaný 18. januára 2018 a je úplne aktuálny.
Takmer každý začiatočník stojí pred otázkou výberu CMS pre svoj web alebo blog. Je to pochopiteľné, pretože vedieť všetko vopred sa nedá. A už sa objavilo pomerne veľa rôznych redakčných systémov. Táto recenzia obsahuje iba bezplatné riešenia. V žiadnom prípade nie sú horšie ako ich platení kolegovia a niekedy sa s nimi dokonca priaznivo porovnávajú. Koniec koncov, je oveľa jednoduchšie robiť úpravy v otvorenom zdrojovom kóde, a preto sú všetky nájdené zraniteľnosti rýchlejšie opravené. A tiež všetky nové a odvážne nápady sa tu objavujú ako prvé.

Na začiatok by sme mali systémy podmienečne rozdeliť podľa ich zamerania. Existujú CMS určené výhradne na tvorbu blogov, ale aj flexibilnejšie systémy, ktoré umožňujú vytvárať plnohodnotné webové stránky a mediálne portály. Zároveň môžu byť blogovacie systémy navrhnuté tak, aby vytvorili celý rad projektov, napríklad pre celý podnik. Za zmienku tiež stojí vývojové obdobie platformy (čím je dlhšie, tým je systém lepšie vyvinutý a obsahuje menej chýb), prítomnosť komunity (pomôže, ak sa vyskytnú problémy s inštaláciou, ladením alebo používaním systému) , výkon (nie všetky systémy sú vhodné pre projekty s vysokou záťažou). Takže teraz sa pozrime na každý CMS podrobnejšie.

Oficiálna stránka.

Toto je jeden z dosť starých a osvedčených motorov. Je to skvelé pre elektronický obchod a predaj produktov online. Mnoho pluginov, ako napríklad VirtueMart, vám umožňuje otvoriť obchod veľmi rýchlo a v krátkom čase. Je pravda, že na pochopenie všetkého od začiatku budete musieť stráviť trochu času čítaním manuálov, čítaním dokumentácie a fóra. Našťastie má Joomla veľmi dobrú podporu a obrovskú komunitu vo viacerých jazykoch vrátane ruštiny.

Výhody systému zahŕňajú prítomnosť nasledujúcich funkcií „out of box“:

  • autentifikácia používateľa, a to aj prostredníctvom OpenID;
  • vizuálny editor článkov;
  • pohodlná správa súborov;
  • systém komentárov a ochrana pred spamom v nich;
  • správca pluginov a rozšírení.

V skutočnosti existuje oveľa viac výhod, je veľmi ťažké ich všetky jednoducho vymenovať v jednom článku. Preto zaujíma popredné miesto v hodnotení a topoch CMS. Existujú však určité nevýhody: vďaka svojej flexibilite a mnohým nastaveniam bude musieť začiatočník stráviť viac ako jeden deň porozumením celej tejto rozmanitosti. Jeho funkčnosť môže byť pre mnohé jednoduché stránky s vizitkami nadbytočná. Ale je vhodný pre internetové obchody a vystavenie produktov.

TYPO3

Oficiálna stránka.

Nie je to tak dávno, čo si na internete začal získavať na popularite pomerne starý redakčný systém TYPO3, ktorý teraz pevne zakotvil v TOP 5. Štruktúru stránok tu predstavuje strom stránok. Každý z nich môže obsahovať štandardné obsahové prvky: text, obrázky, tabuľky atď. Tento redakčný systém je založený na šablónach, ktoré si môžete buď stiahnuť hotové, alebo si ich sami napísať v TypoScripte.

Výhody TYPO3:

  • schopnosť doladiť používateľské práva;
  • jednoduchosť údržby viacerých lokalít súčasne;
  • schopnosť používať rozšírenia z TER (repozitár rozšírení TYPO3);
  • vysoké bezpečnostné požiadavky;
  • pokročilý textový editor s kontrolou pravopisu, náhľadom, históriou zmien.

Nevýhody tohto systému:

  • ťažkosti s úpravou štruktúry lokality pomocou nástroja na šablóny;
  • pomalé vykresľovanie veľkých stránok s rôznorodým obsahom (tabuľky, obrázky);
  • niekoľko hotových riešení pre internetové obchody

Odporúča sa na použitie vo veľkých priemyselných podnikoch a bankách. S najväčšou pravdepodobnosťou nebude vhodný pre mladé a malé lokality, prípadne budú náklady na rozvoj a podporu neúmerné prínosom využívania.

Drupal

Oficiálna stránka.

Je to tiež veľmi populárny a rozšírený CMS, ktorý používajú na vytváranie webových stránok veľmi veľké podniky, napríklad Sony Music. Vybrali si Drupal kvôli jeho širokej škále funkcií na vytváranie interných aj externých webových stránok pre firemnú sieť. Existuje obrovská databáza nástrojov na správu jednej používateľskej základne. Dobre sa hodí na organizovanie systému blogov a fór. Drupal má veľmi aktívnu vývojársku komunitu, obrovskú vedomostnú základňu a živé fórum. Odpovede na otázky týkajúce sa inštalácie a nasadenia stránok a modulov nájdete pomerne jednoducho.

Výhody Drupalu:

  • vynikajúca podpora od komunity používateľov a vývojárov;
  • viac ako 6000 modulov, ktoré uľahčujú rozšírenie funkčnosti;
  • Jednoducho spravujte používateľské práva, vytvárajte kolektívne blogy a fóra.

Nevýhody systému:

  • môže byť pre jednoduché stránky príliš zložité;
  • úplný nedostatok krásnych a funkčných tém;
  • pre netrénovaného používateľa je ťažké sa naučiť.

Pre weby s vizitkami sa výber tohto CMS kategoricky neodporúča, ale na organizovanie stredných a veľkých portálov, kde budú používatelia pridávať svoje materiály a komentovať ich, je Drupal vhodný ako žiadny iný.

MODX

Oficiálna stránka.

Jeden z najmladších CMS (vývoj prebieha od roku 2004), ktorý sa objavil na samom začiatku formovania takzvaného Web 2.0. Cieľom bolo zapojiť používateľov do úprav a pridávania obsahu na stránku. Napríklad písanie recenzií, recenzií a dokonca aj celých článkov. Preto existuje dobrý systém registrácie používateľov, vyhľadávanie na stránkach pomocou AJAX (bez opätovného načítania stránky), môžete rýchlo rozšíriť informačný kanál a kolektívny blog. Medzi nevýhody patria časté problémy s ruským kódovaním, ktoré nie sú úplne vyriešené, hoci sa objavili už dávno; nedostatok hotových modulov a riešení na organizovanie galérie, fóra alebo elektronického obchodu.

WordPress

Oficiálna stránka.

Ak niekto stále pochybuje o tom, že WordPress už dávno prerástol fázu „systému blogov“, potom by tieto pochybnosti mali zahodiť bokom. Na tomto CMS je vyvinuté veľké množstvo webových stránok vrátane sociálnych sietí, webových stránok spoločností, internetových obchodov a produktov, fór, ako aj jednoduchých stránok s vizitkami.

Vďaka tisíckam hotových tém, pluginov a dokonca aj hotových zostáv pre rôzne potreby má WordPress zaslúžené miesto v TOP 5. Je tu aktívna komunita vývojárov, ktorí generujú lekcie a informačné materiály.

Výhody WordPress:

  • veľká komunita vývojárov a dobre štruktúrovaná dokumentácia;
  • tisíce bezplatných doplnkov a tém pre stránku;
  • pohodlný admin panel.

Nevýhody WordPressu

  • spúšťacia funkčnosť ihneď po inštalácii je pomerne skromná, musíte ju doplniť aspoň 4-5 pluginmi;
  • Po jednoduchej inštalácii sú potrebné niektoré vylepšenia zabezpečenia.

V skutočnosti ide o jeden z najjednoduchších a najprívetivejších systémov pre začiatočníkov. Umožňuje vám vytvárať webové stránky bez toho, aby ste rozumeli niečomu o programovaní (prečítajte si moje). Dôrazne sa odporúča ako váš prvý CMS. Ak sa v budúcnosti ukáže, že jeho funkčnosť je pre vás obmedzená, môžete stránku ľahko preniesť na iný nástroj podľa vlastného výberu.
[Vo väčšine prípadov sú tie najvyššie obsadené týmito 5 CMS, ktoré som recenzoval v tomto článku.

Pri odpovedi na otázku „ktorý CMS si vybrať pre webovú stránku“ by ste mali venovať pozornosť skutočnosti, že populárne motory sú neustále pod útokmi. Ich kód je otvorený na použitie pre každého, vrátane nie celkom čestných ľudí, ktorí v ňom môžu hľadať slabiny a využiť ich na svoje sebecké účely. Nebezpečenstvu sa dá vyhnúť, ak urýchlene aktualizujete motor na najnovšiu verziu. Zároveň, ak používate menej bežný redakčný systém, tak v prípade ťažkostí možno nemáte kde nájsť pomoc a môžete sa spoľahnúť len sami na seba. Berte do úvahy aj tento faktor. Veľa štastia!

Ahoj Habr! Predstavujem vám preklad článku Inside a super fast CSS engine: Quantum CSS (aka Stylo) od Lyn Clark.


Možno ste už počuli o Project Quantum... Ide o projekt na výrazné prepracovanie vnútorných častí Firefoxu s cieľom zrýchliť prehliadač. Kúsok po kúsku implementujeme vývoj nášho experimentálneho prehliadača Servo a výrazne zlepšujeme ďalšie prvky motora.


Projekt bol prirovnaný k výmene motora lietadla za chodu. Vykonávame zmeny vo Firefoxe komponent po komponente, takže ich účinok môžete vyhodnotiť v ďalšom vydaní prehliadača hneď, ako bude pripravené.



Poznámka prekladateľ: pod rezom je veľa ilustrácií. Všetky sú klikacie (pre prezeranie vo vyššom rozlíšení). Ak narazíte na nepresnosti v preklade a iné chyby, budem vďačný, ak to nahlásite v komentároch alebo v osobnej správe.


A prvý hlavný komponent od Servo – nový CSS engine Quantum CSS (predtým známy ako Stylo) – je teraz k dispozícii na testovanie v nočnej zostave Firefoxu. (pozn. prekladateľa: v komentároch naznačili, že už je v stabilnej 55). Možnosť layout.css.servo.enabled v about:config je zodpovedná za jej aktiváciu.


Nový engine stelesňuje tie najlepšie inovácie z iných prehliadačov.



Quantum CSS využíva výhody moderného hardvéru tým, že paralelizuje prácu naprieč všetkými jadrami procesora, čo vedie k zrýchleniu až 2, 4 alebo dokonca 18 krát.


Navyše kombinuje moderné optimalizácie z iných prehliadačov, takže aj bez paralelizácie je veľmi rýchly.



Ale čo presne robí CSS engine? Najprv sa pozrime, čo je CSS engine vo všeobecnosti a aké je jeho miesto v prehliadači a potom sa pozrieme na to, ako to celé zrýchľuje Quantum CSS.

Čo je to CSS engine?

CSS engine je súčasťou vykresľovacieho jadra prehliadača. Vykresľovací mechanizmus vezme súbory HTML a CSS stránky a premení ich na pixely na obrazovke.



Každý prehliadač má vykresľovacie jadro. Chrome má Blink, Edge má EdgeHTML, Safari má WebKit a Firefox má Gecko.


Ak chcete stráviť súbory na pixely, všetky robia približne to isté:


1) Analýza súborov do objektov čitateľných prehliadačom, vrátane DOM. V tejto fáze DOM vie o štruktúre stránky, vie o nadradených vzťahoch medzi prvkami, ale nevie, ako by tieto prvky mali vyzerať.



2) Určenie vzhľadu prvkov. Pre každý uzol DOM nástroj CSS zistí, ktoré pravidlá CSS sa majú použiť. Potom definuje hodnotu pre každú vlastnosť CSS. Štýluje každý uzol v strome DOM pripojením vypočítaných štýlov.



3) Určite rozmery a polohu pre každý uzol. Na všetko, čo je potrebné zobraziť na obrazovke, sú vytvorené boxy. Predstavujú nielen uzly DOM, ale aj to, čo sa v nich môže nachádzať. Napríklad riadky textu.



4) Kreslenie blokov. Môže sa vyskytovať vo viacerých vrstvách. Predstavujem si to ako staré ručne kreslené animácie na niekoľkých listoch priesvitného papiera. To vám umožní zmeniť jednu vrstvu bez toho, aby ste museli prekresľovať ostatné.



5) Kombinovanie vrstiev do jedného obrázka, pričom sa na ne predtým aplikovali potrebné vlastnosti skladateľa (napríklad transformácie). Je to ako fotografovanie vrstiev, ktoré sa kombinujú. Tento obrázok sa potom zobrazí na obrazovke.



To znamená, že pred začatím výpočtu štýlov je vstup CSS motora:

  • DOM strom
  • Zoznam pravidiel štýlu

A tak postupne definuje štýly pre každý uzol DOM, jeden po druhom. Ku každej vlastnosti CSS je priradená hodnota, aj keď nie je nastavená v šablónach štýlov.


Beriem to ako vyplnenie formulára, kde sú povinné všetky polia. Tento formulár musíte vyplniť pre každý uzol DOM.



Aby to mohol urobiť, CSS engine musí urobiť dve veci:

  • Vyberte pravidlá, ktoré sa majú použiť na uzol (zhoda selektora)
  • Doplňte všetky chýbajúce hodnoty štandardnými hodnotami alebo zdeďte rodičovské hodnoty (kaskádu)

Mapovanie selektora

Na začiatok vyberieme všetky pravidlá, ktoré sa vzťahujú na uzol, do zoznamu. Keďže môže existovať viac ako jedno pravidlo zhody, je možné viacero definícií tej istej vlastnosti.



Okrem toho samotný prehliadač pridáva niektoré štandardné štýly (štýly používateľského agenta). Ako teda nástroj CSS určí, ktorá hodnota sa má použiť?


Tu nám pomáha „pravidlo špecifickosti“. CSS engine vytvorí tabuľku definícií, ktorú potom zoradí do rôznych stĺpcov.



Vyhráva pravidlo s najvyššou konkrétnosťou. Na základe takejto tabuľky CSS engine zadá do formulára všetky hodnoty v nej nastavené.



Zvyšok sa vypočítava pomocou kaskády.

Kaskádové

Kaskádovanie uľahčuje písanie a údržbu CSS. Vďaka nej môžete nastaviť vlastnosť color body a vedzte, že farba textu v prvkoch p , span , li bude rovnaká (pokiaľ ju sami neprepíšete).


Nástroj CSS kontroluje prázdne polia vo formulári. Ak je vlastnosť v predvolenom nastavení zdedená, potom modul CSS prejde na strom a skontroluje, či je hodnota tejto vlastnosti nastavená na nadradenom prvku. Ak hodnotu nedefinuje žiadny z predkov alebo nie je zdedená, nastaví sa predvolená hodnota.



Takže teraz sú vypočítané všetky štýly pre daný uzol DOM, formulár je vyplnený.

Poznámka: Štruktúry štýlu zdieľania

Opísaný formulár je mierne zjednodušený. CSS má stovky vlastností. Ak by nástroj CSS uložil hodnotu každej vlastnosti pre každý uzol DOM, rýchlo by spotreboval všetku dostupnú pamäť.


Namiesto toho motory zvyčajne používajú zdieľanie štruktúr štýlu. Ukladajú hodnoty, ktoré sa bežne používajú spolu (napríklad vlastnosti písma) v inom objekte, ktorý sa nazýva štruktúra štýlu. Okrem toho, namiesto uloženia všetkých vlastností do jedného objektu, objekty vypočítaného štýlu obsahujú iba ukazovateľ. Pre každú kategóriu vlastností je ukazovateľ na štruktúru štýlu s požadovanými hodnotami.



To šetrí pamäť aj čas. Uzly s podobnými štýlmi môžu jednoducho ukazovať na rovnaké štruktúry štýlu pre spoločné vlastnosti. A keďže sa mnohé vlastnosti dedia, rodič môže zdieľať svoju štruktúru s akýmikoľvek podriadenými uzlami, ktoré neprepisujú ich vlastné hodnoty.

Ako to teda všetko urýchliť?

Takto vyzerá proces výpočtu neoptimalizovaného štýlu.



Je tu dosť veľa práce. A to nielen v momente, keď sa stránka prvýkrát načíta. A znova a znova, keď komunikujete so stránkou, keď umiestnite kurzor myši na prvky alebo zmeníte DOM, štýly sa prepočítajú.



To znamená, že výpočet šablóny štýlov CSS je skvelým kandidátom na optimalizáciu... A za posledných 20 rokov prehliadače testovali mnoho rôznych optimalizačných stratégií. Quantum CSS sa snaží spojiť to najlepšie z nich a vytvoriť nový superrýchly engine.


Poďme sa spolu pozrieť, ako to celé funguje.

Paralelizácia

Projekt Servo (z ktorého pochádza Quantum CSS) je experimentálny prehliadač, ktorý sa snaží paralelizovať všetko v procese vykresľovania webovej stránky. Čo to znamená?


Počítač môžete prirovnať k mozgu. Existuje prvok zodpovedný za myslenie (ALU). V jej blízkosti je niečo ako krátkodobá pamäť (registre), tie sú zoskupené na centrálnom procesore. Okrem toho existuje dlhodobá pamäť (RAM).



Prvé počítače dokázali myslieť iba jednu myšlienku naraz. Ale za posledné desaťročia sa procesory zmenili, teraz majú niekoľko ALU a registrov zoskupených do jadier. Takže teraz môžu procesory myslieť niekoľko myšlienok naraz - paralelne.



Quantum CSS využíva tieto výhody oddelením výpočtov štýlu pre rôzne uzly DOM medzi rôznymi jadrami.


Môže sa to zdať jednoduché... Stačí rozštiepiť konáre stromu a spracovať ich na rôznych jadrách. V skutočnosti je všetko oveľa komplikovanejšie z niekoľkých dôvodov. Prvým dôvodom je, že stromy DOM sú často nerovnomerné. To znamená, že niektoré jadrá dostanú podstatne viac práce ako iné.



Na rovnomernejšie rozdelenie práce používa Quantum CSS techniku ​​nazývanú krádež práce. Keď sa uzol DOM spracuje, program vezme svojich priamych potomkov a rozdelí ich do jednej alebo viacerých „pracovných jednotiek“. Tieto jednotky práce sú zaradené do frontu.



Keď jadro dokončí všetku prácu vo svojom fronte, môže hľadať prácu v iných frontoch. Takto rozložíme prácu rovnomerne bez potreby predbežného hodnotenia prechodom cez celý strom.



To bude ťažké správne implementovať vo väčšine prehliadačov. Paralelnosť je notoricky náročná úloha a samotný CSS engine je dosť zložitý. Nachádza sa tiež medzi ďalšími dvoma najzložitejšími časťami vykresľovacieho jadra - DOM a značkovanie. Vo všeobecnosti je ľahké urobiť chybu a paralelizácia môže viesť k pomerne ťažko odchytiteľným chybám nazývaným „dátové preteky“. Tieto chyby popisujem podrobnejšie v inom článku (existuje aj preklad do ruštiny).


Ak prijmete úpravy od stoviek tisícov prispievateľov, ako môžete bez obáv použiť súbežnosť? Preto máme Rust.



Hrdza vám umožňuje staticky overiť, že neexistujú žiadne preteky s údajmi. To znamená, že sa vyhnete ťažko odchytateľným chybám tým, že ich v prvom rade nevpustíte do svojho kódu. Kompilátor vám to jednoducho nedovolí. Viac o tom napíšem v ďalších článkoch. Môžete sa tiež pozrieť úvodné video o súbežnosti v Rust alebo tento podrobnejší rozhovor o „krádeži práce“.


To všetko značne zjednodušuje záležitosť. Teraz vám už takmer nič nebráni v efektívnej paralelnej implementácii výpočtov štýlov CSS. To znamená, že sa môžeme priblížiť k lineárnemu zrýchleniu. Ak je váš procesor 4-jadrový, paralelizácia zvýši rýchlosť takmer 4-krát.

Zrýchlenie prepočtu pomocou stromu pravidiel

Pre každý uzol DOM musí nástroj CSS prejsť všetkými pravidlami a vykonať párovanie selektora. Pre väčšinu uzlov sa príslušné selektory pravdepodobne nebudú meniť veľmi často. Napríklad, ak používateľ podrží kurzor myši nad prvkom, príslušné pravidlá sa môžu zmeniť. Musíme prepočítať štýly pre všetky jeho deti, aby sme zvládli dedičstvo majetku. Ale pravidlá zodpovedajúce týmto potomkom sa zrejme meniť nebudú.


Bolo by pekné zapamätať si, ktoré pravidlá zodpovedajú týmto deťom, aby ste nemuseli znova priraďovať selektory... A práve to robí strom pravidiel, pochádzajúci z predchádzajúcich verzií Firefoxu.


Nástroj CSS vyberie selektory, ktoré zodpovedajú prvku, a potom ich zoradí podľa špecifickosti. Výsledkom je prepojený zoznam pravidiel.


Tento zoznam sa pridá do stromu.



Modul CSS sa snaží minimalizovať počet vetiev v strome a opakovane ich používa, kedykoľvek je to možné.


Ak väčšina selektorov v zozname zodpovedá existujúcej vetve, bude ju nasledovať. Môže to však dosiahnuť bod, keď sa ďalšie pravidlo v zozname nezhoduje s pravidlom z existujúcej vetvy. Iba v tomto prípade sa vytvorí nová vetva.



Uzol DOM dostane ukazovateľ na pravidlo, ktoré bolo pridané ako posledné (v našom príklade div#warning). Je to najkonkrétnejšie.


Pri prepočítavaní štýlov motor vykoná rýchlu kontrolu, či zmena pravidiel nadradeného prvku môže ovplyvniť pravidlá podriadených prvkov. Ak nie, potom pre všetky deti môže motor jednoducho použiť ukazovateľ na zodpovedajúce pravidlo v strome. To znamená, že priraďovanie a triedenie selektora úplne preskočíte.



To pomáha šetriť čas pri prepočítavaní štýlov, ale počiatočný výpočet je stále náročný na prácu. Ak existuje 10 000 uzlov, priraďovanie selektora je potrebné vykonať 10 000-krát. Existuje však spôsob, ako to urýchliť.

Zrýchlite počiatočné vykresľovanie pomocou zdieľanej vyrovnávacej pamäte štýlu

Predstavte si stránku s tisíckami uzlov. Mnohé z nich budú dodržiavať rovnaké pravidlá. Predstavte si napríklad dlhú stránku Wikipédie... Odstavce hlavného obsahu by mali mať absolútne identické pravidlá štýlu a absolútne identické vypočítané štýly.


Bez optimalizácií musí CSS engine zodpovedať selektorom a vypočítať štýly pre každý odsek zvlášť. Ak by však existoval spôsob, ako dokázať, že štýly pre všetky odseky sú rovnaké, potom by engine mohol jednoducho urobiť úlohu raz a z každého uzla jednoducho ukázať na rovnaký vypočítaný štýl.


Toto robí vyrovnávacia pamäť všeobecných pravidiel, ktorá sa inšpiruje prehliadačmi Safari a Chrome. Po spracovaní prvku sa vypočítaný štýl uloží do vyrovnávacej pamäte. Ďalej, pred začatím výpočtu štýlov ďalšieho prvku sa vykoná niekoľko kontrol, aby sa zistilo, či je možné použiť niečo z vyrovnávacej pamäte.


Kontroly sú nasledovné:

  • Majú 2 uzly rovnaké ID, triedy atď. Ak áno, budú dodržiavať rovnaké pravidlá.
  • Majú rovnaký význam pre všetko, čo nie je založené na selektore (napríklad vložené štýly). Ak áno, vyššie uvedené pravidlá nebudú prepísané, alebo budú prepísané rovnakým spôsobom pre obe.
  • Ukazujú rodičia oboch na rovnaký objekt vypočítaných štýlov. Ak áno, zdedené hodnoty budú tiež rovnaké.


Tieto kontroly boli implementované v skorých verziách cache zdieľaného štýlu od úplného začiatku. Ale existuje veľa malých situácií, v ktorých sa štýly nezhodujú. Ak napríklad pravidlo CSS používa selektor:first-child, štýly dvoch odsekov sa nemusia zhodovať, aj keď vyššie uvedené kontroly hovoria inak.


WebKit a Blink sa v takýchto situáciách vzdávajú a nepoužívajú vyrovnávaciu pamäť bežného štýlu. A keďže viac stránok používa tieto moderné selektory, optimalizácia sa stáva menej užitočnou, a preto ju tím Blink nedávno úplne odstránil. Ale ukazuje sa, že je možné držať krok so všetkými týmito aktualizáciami a celkovou vyrovnávacou pamäťou štýlu.


V Quantum CSS zhromažďujeme všetky tie podivné selektory a kontrolujeme, či sa vzťahujú na uzol DOM. Výsledok tejto kontroly potom uložíme ako jednotky a nuly pre každý takýto selektor. Ak majú dva prvky rovnakú množinu jednotiek a núl, vieme, že ide o presnú zhodu.



Ak uzol DOM môže používať štýly, ktoré už boli vypočítané, potom sa takmer všetka práca preskočí. Stránky majú často veľa uzlov s rovnakými štýlmi, takže zdieľaná vyrovnávacia pamäť štýlov šetrí pamäť a skutočne zrýchľuje prácu.


Záver

Toto je prvý veľký prenos technológie zo Servo do Firefoxu. Naučili sme sa veľa o tom, ako do jadra Firefoxu vniesť moderný, vysoko výkonný Rust kód.


Sme nadšení, že máme veľký kus Project Quantum pripravený na použitie v beta verzii. Budeme vďační, ak to vyskúšate a v prípade chýb ich nahlásite.

O Lyn Clarkovej

Lin je inžinier v tíme Mozilla Developer Relations. Funguje s JavaScript, WebAssembly, Rust a Servo. Kreslí aj kreslené kódy.

Štítky: Pridajte štítky

Dobrý deň, milí čitatelia blogu. Dnes chcem hovoriť o takej veci, ako je webový engine alebo, vedecky povedané, CMS (systém na správu obsahu).

V podstate ide o programy pre webový server, ktoré výrazne zjednodušujú vytváranie a údržbu webovej stránky. Samotná webová stránka vám to umožní (ak si ju vytvoríte sami a nebudete míňať peniaze na jej propagáciu).

Ak chcete k tomuto hodnoteniu pridať svoj zdroj, nepoužívajte príslušné tlačidlo vpravo nad tabuľkou.

Mimochodom, ak si myslíte, že to pre vás bude trochu ťažké, môžete sa pozrieť hodnotenie webového štúdia, ktorý sa nachádza na rovnakom zdroji. Tam si môžete pozrieť projekty vytvorené týmto štúdiom kliknutím na odkaz v stĺpci „Diela“.

Zhruba takto vyzerajú štatistiky o motoroch používaných používateľmi RuNet (tu nielen Joomla, ale všeobecne všetky populárne CMS), v kontexte ktorej verzie CMS sa používa – nová alebo zastaraná:

Na Joomle sa okrem bežných webových stránok vytvára pomerne veľa, a to vďaka existujúcemu rozšíreniu obchodu s názvom .

Pravdepodobne najjednoduchší bezplatný nástroj na naučenie je WordPress. Samozrejme, používa sa hlavne na pomerne úzky výklenok (vytváranie a zavádzanie blogov), ale v prípade potreby ho možno použiť na implementáciu webových stránok, fór a galérií. V prvom rade je však WordPress veľmi funkčný blogovací CMS.

stránka beží pod kontrolou WordPress (ale to je tajomstvo, pretože použitý motor a jeho verzia musia byť skryté, súdiac podľa vyššie uvedenej rady Yandex). Napísal som a naďalej píšem o jemnostiach a nuansách práce s týmto motorom v sekcii ao rozšíreniach v sekcii.

Súdiac podľa vyššie uvedeného grafu rýchlosti CMS, WordPress preteká, ale osobne som to necítil. Vo všeobecnosti môže byť WordPress nastavený tak, aby bežal rýchlo bez vytvárania poburujúceho . Je pravda, že to bude chvíľu trvať, ale váš blog sa môže stať veľmi rýchlym a veľmi jednoduchým. O náraste som písal v rovnomennom stĺpci.

Teraz je môj blog hostovaný na a pri záťaži 20-25 tisíc návštevníkov denne som stále spokojný s rýchlosťou WordPressu, najmä po finalizácii šablóny a optimalizácii všetkého, čo sa optimalizovať dá. Aj keď pri použití veľkého množstva doplnkov, bez a bez dodatočnej optimalizácie, sa WordPress stáva pomerne ťažkým monštrom.

Je jasné, že stále existuje množstvo bezplatných CMS, ktoré sa používajú na rôzne účely. Ide o rovnaký Drupal alebo DLE (DataLife Engine) a v mnohých prípadoch bude ich použitie opodstatnené, pretože ideálny CMS neexistuje, no najobľúbenejšie sú vyššie spomínané WordPress a Joomla. Dôvodom môže byť ich celkom jednoduchý dizajn a prehľadnosť pre začínajúcich používateľov.

Ktoré platené motory sú najzaujímavejšie?

Ďalším príkladom, ktorý možno uviesť ako nie veľmi drahý a pomerne rýchlo platený CMS, je S.Builder. Aby ste pochopili, ako vytvoriť webové stránky na tomto motore, s najväčšou pravdepodobnosťou vám to nezaberie veľa času, pretože... má pomerne nízku bariéru vstupu (ako sa hovorí, je intuitívne). Tento systém je napísaný pre koncového používateľa – absolútne nepripraveného a bez skúseností s webmasteringom (môže fungovať vo Worde a to je v poriadku).

S.Builder je pomerne flexibilný a môžete s ním robiť takmer všetko, ale, povedzme, na rozdiel od Drupalu (ktorý tiež dokáže takmer všetko), s S.Builder to všetko môžete urobiť bez toho, aby ste sa dostali do kódu (existuje výkonný návrhár modulov podľa vašich potrieb).

No ako som už spomínal, tento CMS je jeden z najrýchlejších motorov a celkom dobre drží záťaž, hoci je tiež napísaná v PHP. Je to pravdepodobne spôsobené dobrou čistotou kódu (bol napísaný od začiatku) a dobrým výkonom ukladania do vyrovnávacej pamäte.

S.Builder si môžete zadarmo vyskúšať online aj offline. V prvom prípade budete musieť prejsť na stránku „Demo verzia on-line“ a na tomto CMS vytvoria dočasnú stránku, kde budú dostupné všetky moduly na „vyskúšanie pera“. Ak vám online testovanie nevyhovuje, môžete si zo stránky „Stiahnuť CMS“ stiahnuť plne funkčnú a úplne bezplatnú offline verziu tohto motora (ako keby ste boli) – „Skúšobná verzia CMS na inštaláciu na lokálnom počítači“.

Na záver vám chcem poskytnúť názor profesionálneho optimalizátora z veľmi známej SEO firmy Ashmanov and Partners, ktorý na otázku dal pomerne podrobnú odpoveď - Ktorý CMS je lepší?:

P.S. Niekedy to chceš vedieť na akom engine beží ten či onen web?. Ukazuje sa, že to možno urobiť celkom jednoducho a elegantne. V článku som práve spomenul taký plugin - Wappalyzer. Veľmi zaujímavá vec.

Ktorý motor by ste si mali vybrať pre internetový obchod? To je otázka, ktorú si kladie väčšina začínajúcich podnikateľov. Existuje toľko platforiem, že orientácia v nich môže byť niekedy dosť náročná. Táto recenzia sa bude zaoberať najlepším CMS. Používateľ si bude môcť vybrať najvhodnejší nástroj pre svoj webový zdroj.

Najlepšie CMS systémy

Väčšina spoločností ponúka webové stránky na platformách, ktoré sú pre nich známejšie a ľahšie sa s nimi pracuje. Často tieto motory nespĺňajú požiadavky zákazníkov. Aby ste sa nestretli s obmedzeniami platformy, musíte poznať ten najlepší CMS na tvorbu webu. Výber správneho nástroja zabezpečuje úspech webového zdroja. Existujú 2 kategórie platforiem: komerčné a bezplatné produkty.

Prvý typ motorov bol vytvorený s cieľom dosiahnuť zisk z predaja licencií a doplnkov. Tieto systémy vedú v kvalite práce a popularite. Takmer všetky užitočné moduly sú platené. Začínajúci podnikatelia si nemôžu vždy dovoliť kúpiť najlepší CMS na komerčnej báze. Boli pre nich vytvorené bezplatné motory.

Systém "1C-Bitrix"

Táto platforma je najlepším CMS pre internetový obchod. Prečo sa stala tak populárnou? Motor pracuje s rozsiahlou databázou 1C. V prípade potreby môže používateľ nastaviť bonusové programy pre kupujúcich a určiť rôzne sadzby pre právnické osoby. Platforma slúži na vytváranie veľkých portálov, informačných zdrojov, ako aj ďalších služieb.

Stránky vytvorené na tomto CMS vynikajú medzi ostatnými webmi kvalitou svojej práce, veľkým množstvom doplnkových modulov, spoľahlivou ochranou pred útokmi hackerov a možnosťou zdieľať práva medzi viacerými administrátormi. Systém si vyžaduje značné investície. Preto sa odporúča používať platformu 1C-Bitrix výhradne na vytváranie veľkých projektov.

Magento

Tento systém je najlepší CMS pre internetový obchod spomedzi bezplatných produktov. Pomocou tohto nástroja bolo vytvorených viac ako 150 tisíc webových stránok na internete. Platforma je poskytovaná v troch vydaniach. Komunitná edícia je bezplatná. Admin panel je veľmi pohodlný.

V prípade potreby môžete rozlišovať používateľské práva. Rozhranie v ruštine. Odpovede na vaše otázky nájdete v komunite vývojárov. Používateľ má prístup k možnostiam generovania podrobných prehľadov a pridávania zľavových kupónov. Klient môže pracovať s databázou 1C.

Produkty sa dovážajú do Yandex.Market. Existujú rôzne produktové filtre. V prípade potreby môžete zákazníkom posielať reklamné správy a prepájať sociálne siete. Vývojári ponúkajú klientom vytvorenie pridruženého programu pre ich internetový obchod. Administrátor môže spravovať viacero projektov z jedného účtu.

Nevýhody Magento

Medzi nevýhody patrí nedostatočná integrácia s ruskými platobnými systémami a doručovacími službami. Tento problém je možné vyriešiť inštaláciou platených modulov a úpravou existujúcich. Pri spustení internetového obchodu budete musieť využiť služby skúseného programátora.

Motor spotrebúva veľké množstvo serverových zdrojov. Platforma by sa mala používať iba na vytváranie veľkých online obchodov. Moduly užitočné pre elektronický obchod sú platené. Niektoré z nich sú výrazne predražené.

Joomla

Platforma je na treťom mieste v rebríčku. Produkt sa vyznačuje svojou kvalitou. Ak používateľ hľadá najlepší CMS engine, potom by mal venovať pozornosť Joomle. Klient môže rozsiahlu sadu nástrojov rozširovať pomocou ďalších modulov a pluginov. Je zabezpečená vysoká bezpečnosť práce so službou.

Používateľ má prístup k možnostiam pripojenia viacúrovňovej autorizácie pre administrátorov a rozdelenia práv moderátorov. Zmena vzhľadu stránky sa vykonáva pomocou hotovej šablóny z rozsiahleho katalógu. Ak chcete, môžete vytvoriť vlastné rozloženie. Mnoho klientov verí, že toto je najlepší CMS pre obchod, pretože vám umožňuje prispôsobiť si mnohé prvky. Webové stránky založené na tomto motore majú flexibilnú štruktúru.

Ďalšie komponenty pre Joomla

Vývojári neustále vydávajú aktualizácie. Pôvodne bola platforma vytvorená pre firemné webové zdroje, blogy a stránky vizitiek. Teraz motor spolupracuje s online obchodmi a sociálnymi platformami. Ak chcete na stránku pridať produkty, musíte si stiahnuť ďalší komponent. Najbežnejšie skripty sú VirtueMart a JoomShopping.

V prípade potreby sa nainštalujú ďalšie moduly. Pomocou VirtueMart môže používateľ integrovať stránku s databázou 1C, pripojiť populárne platobné systémy a nakonfigurovať import/export produktov. Doplnkový komponent je vhodný pre spustenie malých a stredných internetových obchodov. VirtueMart sa nepoužíva pri vytváraní veľkých portálov, pretože nemá potrebné funkcie a vhodný bezpečnostný systém.

Drupal

Táto platforma je zameraná na komplexné webové stránky a profesionálnych programátorov. Práca so softvérom si vyžaduje skúsenosti a primerané školenie. Systém sa synchronizuje s partnerskými stránkami. Používateľ si môže vybrať krátke adresy, použiť témy šablón a vytvoriť webové zdroje s podobnými prvkami (jednotná používateľská základňa). K dispozícii je funkcia viacjazyčného prekladu.

Motor je vhodný pre veľké internetové obchody a komunity. V ostatných prípadoch nebudú náklady oprávnené. Ak chcete používať platformu, musíte si nainštalovať Ubercart. Tento dodatočný komponent sa prakticky nelíši od skriptu VirtueMart. Najlepšie bezplatné CMS Magento a Joomla obsadili prvé miesto v rebríčku len preto, že sú o niečo bežnejšie a menej náročné na naučenie a prispôsobenie ako Drupal.

MODX

Táto platforma môže bežať na takmer všetkých serveroch a interagovať s rôznymi prehliadačmi. Softvér je distribuovaný na základe licencie. Motor sa používa na vytváranie webových stránok rôznych typov. Platforma je zároveň prostredím na vývoj aplikácií. Nie je náročný na zdroje servera.

Inštalácia a konfigurácia motora nie je náročná. Medzi nevýhody patrí nízka prevalencia v krajinách SNŠ a nedostatok potrebných funkcií na spustenie plnohodnotného internetového obchodu na týchto územiach. Mnoho používateľov naznačuje, že pri práci s motorom vznikajú problémy s bezpečnosťou webových zdrojov.

OpenCart

Komerčný alebo úplne bezplatný CMS - čo je lepšie? Platforma OpenCart je príkladom toho, ako môže slobodný softvér prekonať najdivokejšie očakávania zákazníkov. Tento motor je najvhodnejším riešením pre malé projekty. Platforma sa ľahko inštaluje a konfiguruje. Motor nie je náročný na zdroje servera.

Pomocou obrovského množstva modulov môžete do svojho internetového obchodu pridať takmer akúkoľvek požadovanú funkcionalitu. Vývojári z rusky hovoriacej komunity pomôžu vyriešiť všetky problémy, ktoré môžu nastať. V prípade potreby môžete použiť vstavaný inštalačný program modulov. Platforma spočiatku nebola zameraná na trh SNŠ. Teraz môžete nájsť zostavy s dodatočnými funkciami.

Vývojári aktualizovali spôsoby platby a doručenia a pridali rôzne filtre. Medzi najobľúbenejšie zostavy patria ocStore a MaxyStore. Klient si môže vždy vytvoriť svoju vlastnú verziu z potrebných doplnkov. Používateľ má prístup k funkcii špecifikácie kľúčových slov a meta tagov pre každý produkt zvlášť. Nevýhody zahŕňajú zamrznutie systému pri veľkom počte produktov, ako aj vysoké náklady na mnohé moduly.

PrestaShop

Vývojári vytvorili túto platformu v roku 2007. Motor je vhodný pre menšie a stredne veľké internetové obchody. Rovnako ako OpenCart má platforma PrestaShop pôsobivú funkčnosť. Ak chcete pracovať s ruskými platobnými systémami, budete musieť pridať ďalšie moduly. Motor je absolútne nenáročný na zdroje servera.

V roku 2011 bol PrestaShop zvolený za najlepšiu bezplatnú platformu elektronického obchodu. Na rozdiel od OpenCart nemá engine oficiálnu vývojársku podporu. Prídavných modulov teda nie je toľko, koľko by si používatelia želali. Základná verzia platformy využíva viac zdrojov ako OpenCart. Náklady na ďalšie moduly sú oveľa nižšie ako v prípade Magento.

UMI.CMS

Platforma sa vyznačuje citlivým dizajnom a cenovou efektívnosťou. Klient si môže vybrať jazyk, s ktorým bude pracovať, nastaviť témy šablón a sledovať štatistické informácie, ako sú údaje založené na priemernom účte.

WordPress

V pokračovaní témy „najlepší CMS“ by sme mali spomenúť tento motor. Platforma je jednoduchá, zrozumiteľná, no zároveň funkčná. Na prevádzku motora nie sú potrebné žiadne technické znalosti. S jednoduchým rozhraním budú spokojní aj profesionáli. Odpovede na vaše otázky nájdete v návode.

Platforma bola vytvorená pre blogy, spravodajské zdroje a iné portály, kde potrebujete rýchlo pridávať informácie. Pluginy na rozšírenie funkčnosti je možné zakúpiť za prijateľnú cenu. Vývojári ponúkajú viac ako 10 ďalších komponentov na vytvorenie internetového obchodu pomocou motora WordPress. Najpopulárnejší je doplnok WooCommerce. Na jeho základe je veľmi ťažké spustiť plnohodnotný internetový obchod.

Môžete pridať maximálne 100 produktových kariet, ktoré nevyžadujú aktualizáciu. Platforma sa dá ľahko naučiť. Systém je vhodný pre začiatočníkov, ktorí majú blog na webe WordPress. Medzi nedostatky treba poznamenať nedostatočnú integráciu s 1C, ruskými platobnými systémami a doručovacími službami. Po nainštalovaní pluginu môže nastať konflikt so šablónou.

NetCat

Platforma poskytuje príležitosť v mobilnej verzii. Podporovaný responzívny dizajn. Najlepší CMS by mal mať dobrú funkcionalitu na propagáciu vyhľadávačov a integráciu webových stránok s užitočnými službami. Tento motor spĺňa všetky požiadavky. Rozhranie je intuitívne.

Platforma pracuje s databázou 1C a elektronickými platobnými systémami. Pri práci s platformou nie je potrebné používať zložité technologické riešenia. Rozhranie možno rozdeliť na dve časti: pre používateľov a vývojárov.

HostCMS

Engine je nenáročný na hosting a servery. Táto platforma je najlepší CMS pre SEO. Používateľ má možnosti na vytváranie krátkych adries stránok, špecifikovanie metaznačiek atď. Motor funguje skvele s webovými zdrojmi s vysokou návštevnosťou. Platforma pracuje so systémom 1C.

Cena licencie je 6 tisíc rubľov. Klient dostane pomerne funkčnú platformu s možnosťou rozšírenia funkčnosti inštaláciou ďalších modulov.

CS-Cart

Pri výbere najlepšieho CMS si mnohí používatelia všimnú výhody tohto motora. Tvorcovia softvéru ponúkajú klientom širokú škálu nástrojov. Platforma sa vyznačuje pohodlnou organizáciou internetového marketingu, dobrou formou práce s objednávkami, SEO optimalizáciou zdrojov, integráciou s 1C a službou Yandex.Market. Používateľ má prístup k možnostiam vytvárania adaptívneho dizajnu a jednoduchého pridávania materiálu.

Amiro.CMS

Táto platforma sa nazýva univerzálna. Motor je vhodný na vytváranie profesionálnych zdrojov rôznej úrovne zložitosti. Vývojári ponúkajú viac ako 60 doplnkových modulov, ktoré rozširujú funkčnosť. Používateľ môže spustiť kvalitnú webovú stránku takmer akéhokoľvek typu.

LPgenerátor

Online generátor webových stránok je skvelým riešením pre začiatočníkov aj expertov. Pomocou nástroja môžete vytvoriť webovú stránku s vizitkou alebo malý obchod. Niektorí používatelia jednoducho pridávajú materiály na prezentáciu produktu/služby. Klienti môžu využiť pohodlný editor, ako aj stovky šablón v LPStore.

Používateľ má možnosti na pripojenie novej domény a synchronizáciu stránky s užitočnými službami. V prípade potreby je možné rozloženie prerobiť. Vývojári tiež poskytujú nástroje na SEO optimalizáciu.

HTML5 spolu s CSS3 a JavaScript dáva vývojárom dostatok príležitostí na vytváranie hier pomocou 3D, animácií, plátna, matematiky, farieb, zvuku, WebGL. Jednou z najzrejmejších výhod HTML5 je jeho nezávislosť od platformy a vo všeobecnosti od hardvéru.

Pri bližšom skúmaní môžete identifikovať ďalšie možnosti, ktoré motory poskytujú: zjednodušenie niektorých bežných úloh alebo načítanie zdrojov, formátovaný vstup, fyzika, zvuk, bitmapy (samozrejme, nie je ich veľa). Existujú aj dosť zle navrhnuté enginy a sú aj také, ktoré vývojárom poskytujú editor 2D úrovní a nástroje na ladenie.

Predpokladá sa, že väčšina enginov slúži na skrátenie času potrebného na vývoj plnohodnotnej hry. Mnohí vývojári však radšej vytvoria svoj projekt úplne od začiatku, aby lepšie reprezentovali jeho štruktúru. Existuje niekoľko JavaScript-HTML5 motorov, ktoré skutočne stoja za niečo, ale môžu mať jednu veľkú nevýhodu: už nie sú podporované alebo sa blíži ich ukončenie. Preto si pri výbere motora vyberajte tie produkty, ktorých podpora vydrží pomerne dlho.

Takže tu sú v skutočnosti samotné motory.

Prefíkaný

Ideálne na implementáciu 2D arkádových hier a hlavolamov v retro štýle, ako je Sudoku. Má pripravenú samobežnú hernú slučku. Podporovaná myš a klávesnica. Je dobre zdokumentovaný a za jediný nedostatok možno považovať chýbajúcu zvukovú podporu.

ličiJS

Open source pre viaceré prehliadače, napísaný výhradne v JavaScripte. Postavený od základov tak, aby bol čo najflexibilnejší, má rozsiahle API a využíva najnovšie funkcie moderných prehliadačov. Tento framework je navrhnutý tak, aby urobil všetko za vás: váš nápad – jeho implementáciu pomocou najčastejšie používaných nástrojov.

GameJS

Na vytvorenie stránky sa používa JavaScript a CSS. Spolu pôsobia celkom sebavedomo a harmonicky. Určené pre začiatočníkov, ktorí sa učia základom programovania videohier. Bude to pre vás jednoduchšie, ak už máte nejaké CSS zručnosti.

ClanFX

2D grafický engine HTML5 v JavaScripte prenesený z iPhone. Umožňuje rýchlo vytvárať 2D hry a grafické aplikácie, ktoré možno spustiť na všetkých moderných zariadeniach bez inštalácie ďalších doplnkov.