Obsah
- 1 Co je to apple web kit
- 2 O zenu
- 3 Populární témata v zenu
- 4 4,5M
- 5 Přes 10 milionů
- 6 Přes 20 milionů
- 7 Přes 7 milionů
- 8 Přes 6,6 milionů
- 9 12M
- 10 4M
- 11 9M
- 12 Jak vytvořit kanál
- 13 WebKit pro vývojáře
- 14 Standardní komponenty webového prohlížeče
- 15 Porty WebKit
- 16 Některé porty WebKit
- 17 Co mají všechny prohlížeče WebKit společného?
- 18 Co je společné pro každý port WebKit.
- 19 Co není společné pro porty WebKit:
- 20 Dobře, tak odkud pocházíme?
- 21 A tak jsou nyní všechny WebKity úplně jiné. Bojím se.
- 22 Opera se právě přesunula na WebKit. co z toho vzejde?
- 23 . a noční sestavení WebKitu. co to je?
Co je to apple web kit
Inspirativní trasy, neobvyklé recepty, recenze zařízení, sportovní novinky, make-up tutoriály, analýza vědeckých teorií, doporučení pro výběr auta, recenze výstav – v Zen můžete psát texty a natáčet videa na jakékoli téma! A chytré algoritmy vám vždy pomohou najít publikum, které bude mít zájem.
Připojte se ke komunitě zenových spisovatelů a uvolněte svůj tvůrčí potenciál naplno.
O zenu
31M
tolik uživatelů se denně přihlásí do Zen
100 000 +
tolik autorů sdílí své
obsah každý týden
Možnost výdělku
získat příjem ze zpeněžení
a nativní reklama
4 formáty
můžete se vyjádřit v krátkých videích,
dlouhá videa, příspěvky a dlouhé čtení
24 hodin denně
Tým podpory je připraven nepřetržitě odpovídat na vaše otázky
Populární témata v zenu
Gadgets a IT Sport Jídlo Krása a styl Cestování Věda Umění Osobní doprava
4,5M
Přesně tolik uživatelů odebírá zenové autory, kteří vytvářejí recenze zařízení, vytvářejí průvodce výběrem a používáním gadgetů, sdílejí novinky ze světa technologií a mnoho dalšího.
Přes 10 milionů
přihlaste se k odběru sportovních spisovatelů na Zenu, kteří sdílejí sportovní zprávy, užitečné tipy pro zdravý životní styl nebo zajímavosti z biografií sportovců
Přes 20 milionů
sledovat gastro kanály v zenu. Jídlo je jedním z nejoblíbenějších témat na platformě. Foodblogeři nejen sdílejí recepty na vaření, ale také recenzují kavárny a restaurace, mluví o tradicích a zvycích různých zemí
Přes 7 milionů
pravidelně hledejte stylové tipy a užitečné životní triky pro péči o sebe, sledujte tutoriály líčení a seznamte se s nejnovějšími módními trendy od zenových autorů
Přes 6,6 milionů
přihlášeni k odběru cestovatelských kanálů v zenu, které sdílejí recenze atrakcí, jejich dojmy, doporučení pro výběr tras a další inspirativní cestovatelský obsah
12M
studijní obsah v zenu od odborníků, kteří mluví o fascinujících vědeckých teoriích a objevech, inovativních technologiích a úžasných experimentech
4M
mají zájem o recenze představení, reportáže z výstav, dozvědět se nové věci o umělcích nebo sledovat tvorbu svých oblíbených autorů v zenu
9M
neustále se zajímají o to, jak vybrat auto, skútr nebo třeba loď, zajímají se o osobní zkušenosti a životní hacky pro provozování osobní dopravy od autorů Zen
Jak vytvořit kanál
Buď sám sebou
nebo zkusit něco nového
vytvářet obsah ve svém stylu – a v jakémkoli formátu
Odbornost, kvalita, upřímnost a jedinečný styl jsou klíčem k srdci publika. My v Zen podporujeme ty nejodvážnější experimenty. K tomu máte ve svém inventáři různé formáty – namíchejte si je podle svého vkusu: krátká vertikální videa, články s ilustracemi, horizontální videa.
Spolupracovat
se Zenem
účastnit se pravidelných projektů platformy
Zen neustále podporuje komunitu autorů soutěžemi, akcemi a speciálními projekty. Můžete se jich také zúčastnit spolu s dalšími autory, získat skvělé zkušenosti a rozšířit publikum svého kanálu. Aktuální aktivity můžete sledovat na kanálu „Zen pro autory“.
Zpeněžit
obsah
připojit monetizaci nebo dělat nativní reklamu
Existují dva způsoby, jak zpeněžit kanál v Zen:
Automatická monetizace – přerozdělení výnosů ze Zen reklamy mezi autory v závislosti na zobrazení obsahu v konkrétním kanálu. Více o monetizaci naleznete zde.
Nativní reklama – budete moci přímo spolupracovat s inzerenty a přilákat velké značky, když váš kanál získá velké a loajální publikum. Další tipy k nativní integraci naleznete zde.
WebKit pro vývojáře
Pro mnoho z nás vývojářů WebKit je černá skříňka. Hodíme na to HTML, CSS, JS a hromadu obrázků a WebKit nám nějak. magicky dá webovou stránku, která vypadá a funguje dobře.
Ale ve skutečnosti, jak říká můj kolega Ilja Grigorik:
Webová sada není Černá skříňka. Toto je bílá krabice. A nejen bílé, ale také otevřít box.
- Co je WebKit?
- Co WebKit není?
- Jak WebKit používají prohlížeče WebKit?
- Proč mnoho WebKitů není stejných?
Standardní komponenty webového prohlížeče
Uveďme si několik součástí moderních prohlížečů:
- Analýza (analýza HTML, XML, CSS, Javascript)
- Rozložení
- Vykreslování textu a grafiky
- Dekódování obrazu
- Interakce s GPU
- Přístup k síti
- Hardwarová akcelerace
Každý „port“ WebKit implementuje zbývající komponenty odlišně. Pojďme zjistit, co to znamená.
Porty WebKit
Existuje mnoho „portů“ WebKit a já poskytuji Ariya Hidayat, WebKit hacker a tech. Ředitel společnosti Sencha má právo o tom mluvit:
Nejpopulárnějším spojením s konceptem WebKit je obvykle verze WebKit od Applu, která běží na Mac OS X (první a původní knihovna WebKit). Jak můžete hádat, různá rozhraní jsou implementována pomocí různých nativních knihoven Mac OS X, soustředěných především v komponentě CoreFoundation. Pokud například definujete barevné ploché tlačítko se specifickým poloměrem obrysu, WebKit ví, kde a jak toto tlačítko nakreslit. Konečné vykreslení tlačítka (ve formě pixelů na monitoru uživatele) přitom leží na bedrech CoreGraphics.
Jak jsem uvedl výše, použitá CoreGraphics je jedinečná pro každý port WebKit. Chrome pro Mac například používá Skia.
V určitém okamžiku byl WebKit „portován“ na různé platformy, stolní i mobilní. Tato varianta se obvykle nazývá „port WebKit“. Pro Safari Windows, Apple také sám „portoval WebKit“ pro běh na Windows pomocí Windows verze své (omezené implementace) knihovny CoreFoundation.
. nehledě na to, že Safari pro Windows je nyní mrtvé.
Kromě toho existovalo také mnoho dalších „portů“ (viz úplný seznam). Google vytvořil a nadále podporuje svůj port Chromium. Existuje také WebKitGtk, který je založen na Gtk+. Nokia (a nyní Trolltech, který ji koupil) podporuje port WebKit Qt, který se stal populární jako modul QtWebKit.
Některé porty WebKit
- Safari
— Safari pro OS X a Safari pro Windows jsou dva různé porty
– Noční sestavení WebKit je sestavení „portu“ zdrojového kódu Mac, který se používá pro Safari, pouze novější - Mobilní Safari
— Vyvinuto v soukromé pobočce, ale později bylo odhaleno.
— Chrome pro iOS (používá Apple WebView; více o rozdílu později) - Chrome (Chromium)
— Chrome pro Android (používá přímo „port“ Chromium)
— Chromium je také základem pro prohlížeče: Yandex, 360, Sogou a brzy i Opera. - Android prohlížeč
– Používá nejnovější zdrojový kód WebKit dostupný v době vydání. - Ještě více portů: Amazon Silk, Dolphin, Blackberry, QtWebKit, WebKitGTK+, Port EFL (Tizen), wxWebKit, WebKitWinCE atd.
Co mají všechny prohlížeče WebKit společného?
Nejprve se podívejme na společné funkce, které se používají ve všech prohlížečích WebKit:
Víte, je to vtipné, několikrát jsem se pokusil napsat tento odstavec. A pokaždé mě členové týmu Chrome opravili, jak uvidíte.
- A tak za prvé WebKit analyzuje HTML stejným způsobem. Až na to, že Chromium je v současnosti jediný port, který zahrnuje podporu vláken pro analýzu HTML.
- . Dobře, ale po analýze HTML je strom DOM vytvořen stejným způsobem. Ve skutečnosti je Shadow DOM povolen pouze pro port Chromium, což znamená, že konstrukce DOM se liší. Také pro vlastní prvky.
- …Dobře, WebKit vytváří objekty oken a dokumentů stejným způsobem pro všechny. Pravda, ačkoli vlastnosti a konstrukce, které poskytují, mohou záviset na použití příznaků prvků.
- . Analýza CSS je stejná. Sníst svůj CSS a přeměnit ho na CSSOM je docela standardní. Ano, ačkoli Chrome podporuje pouze předpony -webkit-, když Apple a další prohlížeče podporují starší předpony -khtml- a -apple-.
- . rozvržení. umístění? Je to jako chleba s máslem. Všude je to stejné, ne? Tak už! Rozvržení subpixelů a bohatá aritmetika rozvržení jsou součástí WebKit, ale liší se port od portu.
- Супер.
Takže je to těžké.
Stejně jako Flickr a Github skrývají implementované funkce za speciální příznaky, WebKit dělá totéž. To umožňuje portům povolit/zakázat jakoukoli funkci v době kompilace pomocí příznaků funkcí WebKit v době kompilace. Funkce lze také povolit za běhu pomocí možností příkazového řádku (pro Chromium) nebo konfigurací, jako je about:flags.
Nyní se pokusme shrnout, co má svět WebKit společného.
Co je společné pro každý port WebKit.
- DOM, okno, dokument
Víceméně - CSSOM
- Analýza CSS, vlastnost/hodnota
rozdíly v prefixech výrobce - Analýza HTML a vytvoření DOM
Je to stejné, pokud zapomeneme na Web Components. - Rozložení a umístění
Flexbox, Floats, kontext formátování bloku. vše je společné - Nástroje uživatelského rozhraní a vývojářské nástroje, jako je Chrome DevTools aka WebKit inspector.
I když od loňského dubna Safari používá svůj vlastní Safari Inspector, který není WebKit, uzavřený zdroj. - Funkce jako contenteditable, pushState, File API, většina SVG, CSS transformační matematika, Web Audio API, localStorage
I když provedení se může lišit. Každý port může používat svůj vlastní úložný systém pro localStorage a může používat různé audio API pro Web Audio API. - Spousta dalších funkcí.
Co není společné pro porty WebKit:
- Vše, co souvisí s GPU
— 3D transformace
– WebGL
— Dekódování videa - Vykreslování 2D na obrazovku
— Vyhlazovací technologie
— Vykreslování přechodů SVG a CSS - Vykreslování textu a dělení slov
- Síťové technologie (SPDY, předběžné vykreslování, přenos WebSocket)
- JavaScript engine
— Engine JavaScriptCore je v úložišti WebKit. Ve WebKitu však existují vazby jak pro něj, tak pro V8. - Vykreslování prvků formuláře
- Chování video a audio tagů a podpora kodeků
- Dekódování obrazu
- Navigace zpět/vpřed
— Part pushState() - Funkce SSL, jako je Strict Transport Security a Public Key Pins
Nebo abychom šli do podrobností, nedávno přidaná funkce: CSS.supports() byla povolena pro všechny porty kromě win a wincairo, které nemají povoleny podmíněné funkce css3.
Nyní dostáváme technický. čas na pedantství. Ani to, co bylo řečeno výše, není úplně správné. Toto je ve skutečnosti WebCore, generická komponenta. WebCore je knihovna rozvržení, vykreslování a DOM pro HTML a SVG a je v podstatě tím, co si lidé představí, když se řekne WebKit. Ve skutečnosti je „WebKit“ technicky vrstvou vazeb mezi WebCore a „porty“, ačkoli v běžné konverzaci je tento rozdíl do značné míry nedůležitý.
Schéma by mělo pomoci:
Mnoho komponent WebKitu je přepínatelných (zobrazeno šedě).
Například JavaScriptový engine WebKit, JavaScriptCore, je výchozím modulem WebKitu. Původně je založen na KJS (z KDE) z dob, kdy WebKit začínal jako fork KHTML. Port Chromium se zároveň přepne na engine V8 a používá unikátní vazby DOM.
Písma a vykreslování textu jsou velmi velkou součástí platformy. Ve WebKitu existují 2 samostatné cesty pro text: Rychlá a Tvrdá. Oba vyžadují podporu specifickou pro platformu (implementovanou na straně portu), ale Fast potřebuje pouze vědět, jak blitovat glyfy (které WebKit ukládá do mezipaměti pro platformu), zatímco Complex přesune vykreslování řetězců zcela na úroveň platformy a říká pouze „nakreslete to, prosím.“
„WebKit je jako sendvič. Jinak v případě Chromia spíš taco. Lahodné taco z webových technologií.
Dmitri Glazkov, hacker Chrome WebKit. Champion of Web Components a shadow dom.
Nyní rozšíříme rozsah a podíváme se na několik portů a několik subsystémů. Níže je uvedeno pět portů WebKit, všimněte si, jak se sada nástrojů pro každý z nich liší navzdory společným komponentám:
Chrome (OS X) | Safari (OS X) | QtWebKit | prohlížeč Android | Chrome pro iOS | |
---|---|---|---|---|---|
překlad | Lyžování | CoreGraphics | QtGui | Zásobník Android/Skia | CoreGraphics |
networking | Síťový zásobník Chromium | CFNetwork | QtNetwork | Rozvětvení síťového zásobníku Chromium | Chromový zásobník |
Fonty | CoreText přes Skia | CoreText | Vnitřní části Qt | Zásobník Android | CoreText |
JavaScript | V8 | JavaScriptCore | JSC (V8 se používá jinde v Qt) | V8 | JavaScriptCore (bez JITting) * |
* Poznámka pod čarou o prohlížeči Chrome pro iOS. Používá UIWebView, jak asi víte. Podle možností UIWebView to znamená, že může používat pouze stejný vykreslovací engine jako Mobile Safari, JavaScriptCore (nikoli V8) a jednovláknový model. Některý kód je však vypůjčen z Chromia, jako je síťový subsystém, infrastruktura synchronizace záložek, omnibox, metriky a hlášení o selhání. (Také JavaScript je tak zřídka úzkým hrdlem na mobilních zařízeních, že absence kompilátoru JITting má minimální dopad.)
Dobře, tak odkud pocházíme?
A tak jsou nyní všechny WebKity úplně jiné. Bojím se.
Nestojí to za to! Pokrytí testů „layoutTest“ WebKit je obrovské. (28,000 5 testů při posledním počtu), a to nejen pro existující funkce, ale také pro všechny nalezené regrese. Ve skutečnosti, kdykoli se učíte nové nebo „tajné“ funkce DOM/CSS/HTML-XNUMX, testovací sady „layoutTest“ mají obvykle vynikající minimální demo.
Kromě toho se W3C snaží standardizovat testovací sadu. To znamená, že můžeme očekávat, že oba porty WebKit a všechny ostatní prohlížeče budou testovány se stejnými testovacími sadami, což nás povede k menšímu počtu vtipů a interoperabilnějšímu webu. Všem, kteří si dali námahu a zúčastnili se akce Test The Web Forward. děkujeme!
Opera se právě přesunula na WebKit. co z toho vzejde?
Tohoto tématu se již dotkli Robert Nyman a Rob Hawkes, ale dodám, že jednou z důležitých částí oznámení bylo, že Opera se přepne na Chromium. To znamená, že WebGL, Canvas, HTML5 formuláře, implementace 2D grafiky, všechny tyto věci budou nyní stejné v Chrome a Opeře. Stejné API a implementace na nízké úrovni. Vzhledem k tomu, že Opera je založena na prohlížeči Chromium, můžete mít pocit, že omezujete svou pracovní zátěž kvůli kontrole kompatibility mezi Operou a Chrome.
To bych měl také poznamenat vše Prohlížeče Opera budou přepnuty na Chromium. Tedy Opera pro Windows, Mac, Linux a Opera Mobile (plnohodnotný mobilní prohlížeč). Dokonce i Opera Mini, tenký klient, bude převeden ze své současné renderovací farmy založené na Presto na verzi založenou na Chromiu.
. a noční sestavení WebKitu. co to je?
Toto je mac port WebKit běžící na stejném kódu jako Safari (ačkoli některé interní knihovny byly změněny). Je z velké části provozován společností Apple, takže chování a sada funkcí jsou konzistentní s tím, co byste našli v Safari. V mnoha případech je Apple konzervativní, pokud jde o zahrnutí funkcí, které implementují jiné porty nebo s nimi experimentují. Abyste použili analogii, představte si to jako. noční sestavení WebKit pro Safari je jako Chromium pro Chrome.
Chrome Canary také používá nejnovější zdrojový kód WebKit, který je starý asi den.