- Notifications
You must be signed in to change notification settings - Fork30
Browser environment, specs#136
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Open
riftmat wants to merge3 commits intojavascript-tutorial:masterChoose a base branch fromriftmat:patch-1
base:master
Could not load branches
Branch not found:{{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline, and old review comments may become outdated.
Uh oh!
There was an error while loading.Please reload this page.
Open
Changes fromall commits
Commits
Show all changes
3 commits Select commitHold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
There are no files selected for viewing
94 changes: 47 additions & 47 deletions2-ui/1-document/01-browser-environment/article.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,115 +1,115 @@ | ||
#Środowisko przeglądarki, specyfikacje | ||
Język JavaScriptbył pierwotnie stworzony na przeglądarki internetowe. Od jego stworzenia ewoluował i stał się językiem o wielu zastosowaniach i platformach. | ||
Platformą może być przeglądarka, serwer WWW, inny host albo nawet ekspres do kawy. Każdy z nich posiada specyficzną dla siebie funkcjonalność. W nomenklaturzeJavaScriptnazywamy to *środowiskiem hosta*. | ||
Środowisko hosta wprowadza swoje własne obiekty i funkcje dodatkowe, do języka programowania. Na przykład przeglądarki internetowe umożliwiają kontrolę nad stronami internetowymi, Node.jswprowadza nowe funkcjonalności po stronie serwera i tak dalej. | ||
Poniżej został przedstawiony widok z lotu ptaka na to co się dzieje kiedyJavaScriptdziała w przeglądarce internetowej. | ||
 | ||
Istnieje obiekt "root"o nazwie `window`.Ma on dwie role: | ||
1.Jest to obiekt globalny, tak jak to opisano w rozdziale <info:global-object>. | ||
2.Obiekt ten reprezentuje "okno przeglądarki" i zapewnia narzędzia do kontrolowania nim. | ||
Dla przykładu, poniżej używamy tego obiektu jako globalnego: | ||
```js run | ||
function sayHi() { | ||
alert("Hello"); | ||
} | ||
//funkcje globalne są metodami obiektu globalnego: | ||
window.sayHi(); | ||
``` | ||
A tutaj używamy go jako okna przeglądaraki w celu zobaczenia wysokośi okna: | ||
```js run | ||
alert(window.innerHeight); //wewnętrzna wysokość okna | ||
``` | ||
Jest znacznie więcej metod i właściwości dla okien, ale nimi zajmiemy się później. | ||
## DOM (Document Object Model) | ||
Obiektowy model dokumentu (z ang.Document Object Model) w skrócie DOM, reprezentuje zawartość całej strony, która może zostać zmodyfikowana. | ||
`Dokument` (który jest obiektem) jest głównym "punktem wejścia" na stronę. Możemy za jego pomocą stworzyć lub zmodyfikować całą stronę. | ||
Dla przykładu: | ||
```js run | ||
//zmienia kolor tła na czerwony | ||
document.body.style.background = "red"; | ||
//zmienia go spowrotme po sekundzie | ||
setTimeout(() => document.body.style.background = "", 1000); | ||
``` | ||
W przykładzie poniżej używamy`document.body.style` ale metod modyfikacji jest o wiele więcej. Właściwości i metody zostały opisane w specyfikacji: | ||
- **DOM Living Standard**dostępnym pod adresem <https://dom.spec.whatwg.org> | ||
```smart header="DOM is not only for browsers" | ||
Specyfikacja DOMtłumaczy strukturę dokumentu i zapewnia narzędzia do manipulowania nim. Istnieją też inne narzędzia, inne niż przeglądarki, które również używają DOM. | ||
Dla przykładu skrypty po stronie serwera, które ściągają strony HTML i przetwarzają je, również używająDOM.Mogą one jednak obsługiwać tylko część specyfikacji. | ||
``` | ||
```smart header="CSSOM for styling" | ||
ZasadyCSSi arkusze stylów mają strukturę inną niż HTML. Dla nich jest inna specyfikacja, która wyjąsnia, w jaki sposób są one przedstawiane jako obiekty i jak je zapisać i wczytać. Jest ona dostępna pod adresem[CSS Object Model (CSSOM)](https://www.w3.org/TR/cssom-1/). | ||
CSSOMjest używany razem z DOMkiedy modyfikujemy reguły stylu dla dokumentu. W praktyce jednak CSSOMjest bardzo rzadko używany, ponieważ zasady CSSsą statyczne. Bardzo rzadko zdarza się, że trzeba nam usunąć lub dodać zasady CSS z JavaScriptu. | ||
``` | ||
## BOM (Browser Object Model) | ||
Model obiektowy przeglądarki (z ang.Browser Object Model) w skrócie BOM, reprezentuje dodatkowe obiekty dostarczane przez przeglądarkę (środowisko hosta) do pracy ze wszystkim oprócz dokumentu. | ||
Dla przykładu: | ||
-Objekt [navigator](mdn:api/Window/navigator)dostarcza podstawowych informacji o przeglądarce i systemie operacyjnym. Istnieje wiele właściwości, ale dwie najbardziej znane to: `navigator.userAgent` --o obecnej przeglądarce oraz`navigator.platform` --o platformie (może pomóc w rozpoznaniu między Windows/Linux/Macitp.) | ||
-Obiekt [location](mdn:api/Window/location)pozwala nam odczytać aktualny adresURLi może przekierwoać przeglądarkę na nowy. | ||
Oto jak możemy wykorzystać obiekt`location` | ||
```js run | ||
alert(location.href); //pokazuje aktualny URL | ||
if (confirm("Go to Wikipedia?")) { | ||
location.href = "https://wikipedia.org"; //przekierowuje przeglądarkę do innego adresu URL | ||
} | ||
``` | ||
Funkcje `alert/confirm/prompt`również są częściąBOM. Nie są one bezpośrednio powiązane z dokumentem, ale reprezentują metody komunikacji przeglądarki z użytkownikiem. | ||
```smart header="Specifications" | ||
BOMjest częścią ogólnej [specyfikacji HTML](https://html.spec.whatwg.org). | ||
Tak dobrze usłyszałeś. Specyfikacje HTMLdostępne pod adresem<https://html.spec.whatwg.org>nie są tylko o językuHTML(tagi, atrybuty) ale także omawiają obiekty, metody i rozszerzenia DOMwłaściwych dla przeglądarki. To jest „HTMLw ogólnych zarysach”. Ponadto niektóre części mają dodatkowe specyfikacje wymienione na stronie <https://spec.whatwg.org>. | ||
``` | ||
##Podsumowanie | ||
Jeżli chodzi o standardy, to mamy: | ||
Specyfikację DOM | ||
:która mówi o strukturze dokumentu, manipulowaniu nim oraz zdarzenia. Zobacz: <https://dom.spec.whatwg.org>. | ||
Specyfikację CSSOM | ||
:która opisuje arkusze stylów, reguły stylów, manipulacje nimi i ich wiązanie z dokumentem. Zobacz: <https://www.w3.org/TR/cssom-1/>. | ||
Specyfikację HTML | ||
:która opisuje językHTML(np. tagi), a takżeBOM (model obiektowy przeglądarki) --różne funkcje przeglądarki: `setTimeout`, `alert`, `location`itd. Zobaczhttps://html.spec.whatwg.org. Wykorzystuje specyfikacjęDOMi rozszerza ją o wiele dodatkowych właściwości i metod. | ||
Dodatkowo niektóre klasy są opisane oddzielnie na <https://spec.whatwg.org/>. | ||
Weź pod uwagę te linki, ponieważ jest tak wiele do nauczenia się i zapamiętania, że nie sposób omówić i zapamiętać wszystko. | ||
Jeśli zechcesz przeczytać o jakiejś właściwości lub metodzie, skorzystaj z podręcznika Mozilli pod adresemhttps://developer.mozilla.org/en-US/search który jest również dobrym źródłem informacji, ale właściwa specyfikacja może okazać się lepsza, ponieważ jest bardziej złożona i dłuższa, ale sprawi, że twoja podstawowa wiedza będzie solidna i kompletna. | ||
Aby coś znaleźć, często wygodnie jest skorzystać z wyszukiwarki internetowej i wpisać"WHATWG [szukany termin]"albo "MDN [szukany termin]",np.https://google.com?q=whatwg+localstorage,https://google.com?q=mdn+localstorage. | ||
Teraz przejdziemy do naukiDOM,ponieważ dokument odgrywa kluczową rolę w interfejsie użytkownika. |
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.