From c058fa0fb22dc40ef0225b21a97578cddd0aaffa Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:51:05 +0100 Subject: unslug ru: move --- .../web/api/audiocontext/createpanner/index.html | 211 ----- .../ru/web/api/audiocontext/currenttime/index.html | 97 --- .../api/audiocontext/decodeaudiodata/index.html | 220 ------ .../api/baseaudiocontext/createpanner/index.html | 211 +++++ .../api/baseaudiocontext/currenttime/index.html | 97 +++ .../baseaudiocontext/decodeaudiodata/index.html | 220 ++++++ .../tutorial/applying_styles_and_colors/index.html | 726 +++++++++++++++++ .../tutorial/basic_animations/index.html | 308 ++++++++ .../api/canvas_api/tutorial/compositing/index.html | 108 +++ .../canvas_api/tutorial/drawing_shapes/index.html | 582 ++++++++++++++ .../canvas_api/tutorial/drawing_text/index.html | 166 ++++ .../canvas_api/tutorial/using_images/index.html | 333 ++++++++ .../index.html" | 333 -------- .../index.html" | 108 --- .../index.html" | 308 -------- .../index.html" | 726 ----------------- .../index.html" | 166 ---- .../index.html" | 582 -------------- files/ru/web/api/crypto/getrandomvalues/index.html | 73 ++ .../managing_screen_orientation/index.html | 183 +++++ .../index.html" | 183 ----- files/ru/web/api/document/activeelement/index.html | 165 ---- files/ru/web/api/document/async/index.html | 35 - files/ru/web/api/document/createelement/index.html | 82 ++ files/ru/web/api/document/getselection/index.html | 9 - files/ru/web/api/document/images/index.html | 29 + .../api/document/readystatechange_event/index.html | 90 +++ .../api/document_object_model/events/index.html | 80 ++ .../api/document_object_model/examples/index.html | 382 +++++++++ files/ru/web/api/document_object_model/index.html | 387 +++++++++ .../document_object_model/introduction/index.html | 230 ++++++ .../index.html | 50 ++ .../documentorshadowroot/activeelement/index.html | 165 ++++ .../documentorshadowroot/getselection/index.html | 9 + files/ru/web/api/element/accesskey/index.html | 74 -- files/ru/web/api/element/blur_event/index.html | 153 ++++ files/ru/web/api/element/error_event/index.html | 95 +++ files/ru/web/api/element/focusin_event/index.html | 123 +++ files/ru/web/api/element/focusout_event/index.html | 126 +++ .../web/api/elementcssinlinestyle/style/index.html | 78 ++ .../ru/web/api/eventtarget/attachevent/index.html | 9 - .../ru/web/api/eventtarget/detachevent/index.html | 92 --- .../introduction/index.html | 291 +++++++ .../index.html" | 291 ------- files/ru/web/api/fullscreen_api/index.html | 198 +++++ .../api/geolocation/using_geolocation/index.html | 91 --- .../using_the_geolocation_api/index.html | 170 ---- files/ru/web/api/geolocation_api/index.html | 91 +++ .../using_the_geolocation_api/index.html | 170 ++++ .../drag_operations/index.html | 314 ++++++++ files/ru/web/api/html_drag_and_drop_api/index.html | 72 ++ .../ru/web/api/htmlaudioelement/audio()/index.html | 85 -- files/ru/web/api/htmlaudioelement/audio/index.html | 85 ++ files/ru/web/api/htmlelement/accesskey/index.html | 74 ++ files/ru/web/api/htmlelement/dataset/index.html | 114 --- files/ru/web/api/htmlelement/innertext/index.html | 46 ++ files/ru/web/api/htmlelement/nonce/index.html | 44 -- files/ru/web/api/htmlelement/style/index.html | 78 -- files/ru/web/api/htmlelement/tabindex/index.html | 134 ---- .../api/htmlelement/transitionend_event/index.html | 165 ++++ .../api/htmlmediaelement/seeking_event/index.html | 80 ++ .../api/htmlorforeignelement/dataset/index.html | 114 +++ .../web/api/htmlorforeignelement/nonce/index.html | 44 ++ .../api/htmlorforeignelement/tabindex/index.html | 134 ++++ .../echocancellation/index.html | 77 ++ .../index.html" | 77 -- files/ru/web/api/navigator/connection/index.html | 100 +++ files/ru/web/api/navigatorgeolocation/index.html | 103 --- .../api/networkinformation/connection/index.html | 100 --- files/ru/web/api/node.replacechild/index.html | 64 -- files/ru/web/api/node/baseuriobject/index.html | 26 - files/ru/web/api/node/innertext/index.html | 46 -- files/ru/web/api/node/nodeprincipal/index.html | 29 - files/ru/web/api/node/replacechild/index.html | 64 ++ .../nextelementsibling/index.html | 173 ++++ .../index.html | 173 ---- files/ru/web/api/notation/index.html | 52 ++ files/ru/web/api/page_visibility_api/index.html | 195 +++++ .../web/api/push_api/using_the_push_api/index.html | 420 ---------- .../api/randomsource/getrandomvalues/index.html | 73 -- files/ru/web/api/randomsource/index.html | 111 --- files/ru/web/api/slotable/index.html | 45 -- files/ru/web/api/storage/localstorage/index.html | 146 ---- .../api/svgaelement/svgalement.target/index.html | 107 --- .../checking_authenticity_with_password/index.html | 33 - .../web_workers_api/using_web_workers/index.html | 871 +++++++++++++++++++++ .../creating_3d_objects_using_webgl/index.html | 131 ++++ .../index.html" | 131 ---- .../ru/web/api/webrtc_api/connectivity/index.html | 70 ++ files/ru/web/api/webrtc_api/protocols/index.html | 38 + .../ru/web/api/webrtc_api/webrtc_basics/index.html | 351 --------- .../index.html" | 38 - .../index.html" | 70 -- files/ru/web/api/websockets_api/index.html | 58 ++ .../index.html | 195 +++++ .../api/window/domcontentloaded_event/index.html | 146 ++++ files/ru/web/api/window/load_event/index.html | 88 +++ .../api/window/requestanimationframe/index.html | 92 +++ .../api/window/unhandledrejection_event/index.html | 49 ++ .../base64_encoding_and_decoding/index.html | 138 ---- files/ru/web/api/windowbase64/btoa/index.html | 141 ---- files/ru/web/api/windowbase64/index.html | 121 --- .../api/windoworworkerglobalscope/btoa/index.html | 141 ++++ .../settimeout/index.html | 260 ++++++ files/ru/web/api/windowtimers/index.html | 120 --- .../ru/web/api/windowtimers/settimeout/index.html | 260 ------ files/ru/web/api/xmldocument/async/index.html | 35 + .../api/xmlhttprequest/loadstart_event/index.html | 89 +++ .../index.html" | 195 ----- .../index.html" | 52 -- 110 files changed, 9888 insertions(+), 7495 deletions(-) delete mode 100644 files/ru/web/api/audiocontext/createpanner/index.html delete mode 100644 files/ru/web/api/audiocontext/currenttime/index.html delete mode 100644 files/ru/web/api/audiocontext/decodeaudiodata/index.html create mode 100644 files/ru/web/api/baseaudiocontext/createpanner/index.html create mode 100644 files/ru/web/api/baseaudiocontext/currenttime/index.html create mode 100644 files/ru/web/api/baseaudiocontext/decodeaudiodata/index.html create mode 100644 files/ru/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html create mode 100644 files/ru/web/api/canvas_api/tutorial/basic_animations/index.html create mode 100644 files/ru/web/api/canvas_api/tutorial/compositing/index.html create mode 100644 files/ru/web/api/canvas_api/tutorial/drawing_shapes/index.html create mode 100644 files/ru/web/api/canvas_api/tutorial/drawing_text/index.html create mode 100644 files/ru/web/api/canvas_api/tutorial/using_images/index.html delete mode 100644 "files/ru/web/api/canvas_api/tutorial/\320\270\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\320\265_\320\270\320\267\320\276\320\261\321\200\320\260\320\266\320\265\320\275\320\270\320\271/index.html" delete mode 100644 "files/ru/web/api/canvas_api/tutorial/\320\272\320\276\320\274\320\277\320\276\320\267\320\270\321\206\320\270\320\270/index.html" delete mode 100644 "files/ru/web/api/canvas_api/tutorial/\320\276\321\201\320\275\320\276\320\262\321\213_\320\260\320\275\320\270\320\274\320\260\321\206\320\270\320\270/index.html" delete mode 100644 "files/ru/web/api/canvas_api/tutorial/\320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\320\265_\321\201\321\202\320\270\320\273\320\265\320\271_\320\270_\321\206\320\262\320\265\321\202\320\276\320\262/index.html" delete mode 100644 "files/ru/web/api/canvas_api/tutorial/\321\200\320\270\321\201\320\276\320\262\320\260\320\275\320\270\320\265_\321\202\320\265\320\272\321\201\321\202\320\260/index.html" delete mode 100644 "files/ru/web/api/canvas_api/tutorial/\321\200\320\270\321\201\320\276\320\262\320\260\320\275\320\270\320\265_\321\204\320\270\320\263\321\203\321\200/index.html" create mode 100644 files/ru/web/api/crypto/getrandomvalues/index.html create mode 100644 files/ru/web/api/css_object_model/managing_screen_orientation/index.html delete mode 100644 "files/ru/web/api/css_object_model/\320\276\321\200\320\270\320\265\320\275\321\202\320\260\321\206\320\270\321\217_\321\215\320\272\321\200\320\260\320\275\320\260/index.html" delete mode 100644 files/ru/web/api/document/activeelement/index.html delete mode 100644 files/ru/web/api/document/async/index.html create mode 100644 files/ru/web/api/document/createelement/index.html delete mode 100644 files/ru/web/api/document/getselection/index.html create mode 100644 files/ru/web/api/document/images/index.html create mode 100644 files/ru/web/api/document/readystatechange_event/index.html create mode 100644 files/ru/web/api/document_object_model/events/index.html create mode 100644 files/ru/web/api/document_object_model/examples/index.html create mode 100644 files/ru/web/api/document_object_model/index.html create mode 100644 files/ru/web/api/document_object_model/introduction/index.html create mode 100644 files/ru/web/api/document_object_model/locating_dom_elements_using_selectors/index.html create mode 100644 files/ru/web/api/documentorshadowroot/activeelement/index.html create mode 100644 files/ru/web/api/documentorshadowroot/getselection/index.html delete mode 100644 files/ru/web/api/element/accesskey/index.html create mode 100644 files/ru/web/api/element/blur_event/index.html create mode 100644 files/ru/web/api/element/error_event/index.html create mode 100644 files/ru/web/api/element/focusin_event/index.html create mode 100644 files/ru/web/api/element/focusout_event/index.html create mode 100644 files/ru/web/api/elementcssinlinestyle/style/index.html delete mode 100644 files/ru/web/api/eventtarget/attachevent/index.html delete mode 100644 files/ru/web/api/eventtarget/detachevent/index.html create mode 100644 files/ru/web/api/file_and_directory_entries_api/introduction/index.html delete mode 100644 "files/ru/web/api/file_and_directory_entries_api/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" create mode 100644 files/ru/web/api/fullscreen_api/index.html delete mode 100644 files/ru/web/api/geolocation/using_geolocation/index.html delete mode 100644 files/ru/web/api/geolocation/using_geolocation/using_the_geolocation_api/index.html create mode 100644 files/ru/web/api/geolocation_api/index.html create mode 100644 files/ru/web/api/geolocation_api/using_the_geolocation_api/index.html create mode 100644 files/ru/web/api/html_drag_and_drop_api/drag_operations/index.html create mode 100644 files/ru/web/api/html_drag_and_drop_api/index.html delete mode 100644 files/ru/web/api/htmlaudioelement/audio()/index.html create mode 100644 files/ru/web/api/htmlaudioelement/audio/index.html create mode 100644 files/ru/web/api/htmlelement/accesskey/index.html delete mode 100644 files/ru/web/api/htmlelement/dataset/index.html create mode 100644 files/ru/web/api/htmlelement/innertext/index.html delete mode 100644 files/ru/web/api/htmlelement/nonce/index.html delete mode 100644 files/ru/web/api/htmlelement/style/index.html delete mode 100644 files/ru/web/api/htmlelement/tabindex/index.html create mode 100644 files/ru/web/api/htmlelement/transitionend_event/index.html create mode 100644 files/ru/web/api/htmlmediaelement/seeking_event/index.html create mode 100644 files/ru/web/api/htmlorforeignelement/dataset/index.html create mode 100644 files/ru/web/api/htmlorforeignelement/nonce/index.html create mode 100644 files/ru/web/api/htmlorforeignelement/tabindex/index.html create mode 100644 files/ru/web/api/mediatrackconstraints/echocancellation/index.html delete mode 100644 "files/ru/web/api/mediatrackconstraints/\321\215\321\205\320\276\320\277\320\276\320\264\320\260\320\262\320\273\320\265\320\275\320\270\320\265/index.html" create mode 100644 files/ru/web/api/navigator/connection/index.html delete mode 100644 files/ru/web/api/navigatorgeolocation/index.html delete mode 100644 files/ru/web/api/networkinformation/connection/index.html delete mode 100644 files/ru/web/api/node.replacechild/index.html delete mode 100644 files/ru/web/api/node/baseuriobject/index.html delete mode 100644 files/ru/web/api/node/innertext/index.html delete mode 100644 files/ru/web/api/node/nodeprincipal/index.html create mode 100644 files/ru/web/api/node/replacechild/index.html create mode 100644 files/ru/web/api/nondocumenttypechildnode/nextelementsibling/index.html delete mode 100644 files/ru/web/api/nondocumenttypechildnode/nondocumenttypechildnode.nextelementsibling/index.html create mode 100644 files/ru/web/api/notation/index.html create mode 100644 files/ru/web/api/page_visibility_api/index.html delete mode 100644 files/ru/web/api/push_api/using_the_push_api/index.html delete mode 100644 files/ru/web/api/randomsource/getrandomvalues/index.html delete mode 100644 files/ru/web/api/randomsource/index.html delete mode 100644 files/ru/web/api/slotable/index.html delete mode 100644 files/ru/web/api/storage/localstorage/index.html delete mode 100644 files/ru/web/api/svgaelement/svgalement.target/index.html delete mode 100644 files/ru/web/api/web_crypto_api/checking_authenticity_with_password/index.html create mode 100644 files/ru/web/api/web_workers_api/using_web_workers/index.html create mode 100644 files/ru/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html delete mode 100644 "files/ru/web/api/webgl_api/tutorial/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_3d_\320\276\320\261\321\212\320\265\320\272\321\202\320\276\320\262_\321\201_\320\277\320\276\320\274\320\276\321\211\321\214\321\216_webgl/index.html" create mode 100644 files/ru/web/api/webrtc_api/connectivity/index.html create mode 100644 files/ru/web/api/webrtc_api/protocols/index.html delete mode 100644 files/ru/web/api/webrtc_api/webrtc_basics/index.html delete mode 100644 "files/ru/web/api/webrtc_api/\320\277\321\200\320\276\321\202\320\276\320\272\320\276\320\273\321\213/index.html" delete mode 100644 "files/ru/web/api/webrtc_api/\321\201\320\262\321\217\320\267\321\214/index.html" create mode 100644 files/ru/web/api/websockets_api/index.html create mode 100644 files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html create mode 100644 files/ru/web/api/window/domcontentloaded_event/index.html create mode 100644 files/ru/web/api/window/load_event/index.html create mode 100644 files/ru/web/api/window/requestanimationframe/index.html create mode 100644 files/ru/web/api/window/unhandledrejection_event/index.html delete mode 100644 files/ru/web/api/windowbase64/base64_encoding_and_decoding/index.html delete mode 100644 files/ru/web/api/windowbase64/btoa/index.html delete mode 100644 files/ru/web/api/windowbase64/index.html create mode 100644 files/ru/web/api/windoworworkerglobalscope/btoa/index.html create mode 100644 files/ru/web/api/windoworworkerglobalscope/settimeout/index.html delete mode 100644 files/ru/web/api/windowtimers/index.html delete mode 100644 files/ru/web/api/windowtimers/settimeout/index.html create mode 100644 files/ru/web/api/xmldocument/async/index.html create mode 100644 files/ru/web/api/xmlhttprequest/loadstart_event/index.html delete mode 100644 "files/ru/web/api/\320\262\320\270\320\264\320\270\320\274\320\276\321\201\321\202\321\214_\321\201\321\202\321\200\320\260\320\275\320\270\321\206\321\213_api/index.html" delete mode 100644 "files/ru/web/api/\320\275\320\276\321\202\320\260\321\206\320\270\321\217/index.html" (limited to 'files/ru/web/api') diff --git a/files/ru/web/api/audiocontext/createpanner/index.html b/files/ru/web/api/audiocontext/createpanner/index.html deleted file mode 100644 index 0a4d5db32b..0000000000 --- a/files/ru/web/api/audiocontext/createpanner/index.html +++ /dev/null @@ -1,211 +0,0 @@ ---- -title: AudioContext.createPanner() -slug: Web/API/AudioContext/createPanner -translation_of: Web/API/BaseAudioContext/createPanner ---- -

{{ APIRef("Web Audio API") }}

- -
-

Метод createPanner() интерфейса {{ domxref("AudioContext") }} применяется для создания нового {{domxref("PannerNode")}}, который используется для размещения аудиопотока в виртуальном 3D пространстве.

-
- -

The panner node is spatialized in relation to the AudioContext's {{domxref("AudioListener") }} (defined by the {{domxref("AudioContext.listener") }} attribute), which represents the position and orientation of the person listening to the audio.

- -

Синтаксис

- -
var audioCtx = new AudioContext();
-var panner = audioCtx.createPanner();
- -

Возврат

- -

A {{domxref("PannerNode")}}.

- -

Пример

- -
-
Ниже можно увидеть пример использования {{domxref("AudioListener")}}, {{domxref("PannerNode")}} и метода createPanner() для управления пространством объемного звука. Обычно определяется положение в трехмерном пространстве, изначально занимаемое слушателем (listener) и источником звука (panner), а затем, при использовании приложения, обновляется позиция одного из них или обоих. Например, вы можете перемещать персонажа внутри игрового мира, и желательно чтобы передача звука изменялась реалистично, по мере приближения или отдаления персонажа относительно источника звука, вроде стереопроигрывателя. В этом примере можно видеть, что все это управляется функциями moveRight(), moveLeft(), и т.п., которые устанавливают новые значения для положения паннера через функцию PositionPanner().
- -
 
- -
-
-
Чтобы увидеть полную реализацию ознакомьтесь с нашим примером panner-node (просмотрите весь список примеров) — эта демонстрация перенесет вас в 2.5D "Room of metal" (2,5-мерную "металлическую комнату"), где можно проиграть трек на бумбоксе и затем походить вокруг него и посмотреть как изменяется звук!
- -
 
-
-
-
- -

Note how we have used some feature detection to either give the browser the newer property values (like {{domxref("AudioListener.forwardX")}}) for setting position, etc. if it supports those, or older methods (like {{domxref("AudioListener.setOrientation()")}}) if it still supports those but not the new properties.

- -
// set up listener and panner position information
-// установка сведений о слушателе (listener) и положении panner'а
-var WIDTH = window.innerWidth;
-var HEIGHT = window.innerHeight;
-
-var xPos = Math.floor(WIDTH/2);
-var yPos = Math.floor(HEIGHT/2);
-var zPos = 295;
-
-// define other variables (определяем другие переменные)
-
-var AudioContext = window.AudioContext || window.webkitAudioContext;
-var audioCtx = new AudioContext();
-
-var panner = audioCtx.createPanner();
-panner.panningModel = 'HRTF';
-panner.distanceModel = 'inverse';
-panner.refDistance = 1;
-panner.maxDistance = 10000;
-panner.rolloffFactor = 1;
-panner.coneInnerAngle = 360;
-panner.coneOuterAngle = 0;
-panner.coneOuterGain = 0;
-
-if(panner.orientationX) {
-  panner.orientationX.value = 1;
-  panner.orientationY.value = 0;
-  panner.orientationZ.value = 0;
-} else {
-  panner.setOrientation(1,0,0);
-}
-
-var listener = audioCtx.listener;
-
-if(listener.forwardX) {
-  listener.forwardX.value = 0;
-  listener.forwardY.value = 0;
-  listener.forwardZ.value = -1;
-  listener.upX.value = 0;
-  listener.upY.value = 1;
-  listener.upZ.value = 0;
-} else {
-  listener.setOrientation(0,0,-1,0,1,0);
-}
-
-var source;
-
-var play = document.querySelector('.play');
-var stop = document.querySelector('.stop');
-
-var boomBox = document.querySelector('.boom-box');
-
-var listenerData = document.querySelector('.listener-data');
-var pannerData = document.querySelector('.panner-data');
-
-leftBound = (-xPos) + 50;
-rightBound = xPos - 50;
-
-xIterator = WIDTH/150;
-
-// listener will always be in the same place for this demo
-// в этом демо слушатель всегда находится на одном и том же месте
-
-if(listener.positionX) {
-  listener.positionX.value = xPos;
-  listener.positionY.value = yPos;
-  listener.positionZ.value = 300;
-} else {
-  listener.setPosition(xPos,yPos,300);
-}
-
-listenerData.innerHTML = 'Listener data: X ' + xPos + ' Y ' + yPos + ' Z ' + 300;
-
-// panner will move as the boombox graphic moves around on the screen
-// паннер будет перемещаться по экрану за перемещением бумбокса
-function positionPanner() {
-  if(panner.positionX) {
-    panner.positionX.value = xPos;
-    panner.positionY.value = yPos;
-    panner.positionZ.value = zPos;
-  } else {
-    panner.setPosition(xPos,yPos,zPos);
-  }
-  pannerData.innerHTML = 'Panner data: X ' + xPos + ' Y ' + yPos + ' Z ' + zPos;
-}
- -
-

In terms of working out what position values to apply to the listener and panner, to make the sound appropriate to what the visuals are doing on screen, there is quite a bit of fiddly math involved, but you will soon get used to it with a bit of experimentation.

-
- -

Specifications

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Audio API', '#widl-AudioContext-createPanner-PannerNode', 'createPanner()')}}{{Spec2('Web Audio API')}} 
- -

Browser compatibility

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(10.0)}}{{property_prefix("webkit")}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(25.0)}} {{CompatNo}}15.0{{property_prefix("webkit")}}
- 22 (unprefixed)
6.0{{property_prefix("webkit")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidEdgeFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}26.01.2{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}33.0
-
- -

See also

- - diff --git a/files/ru/web/api/audiocontext/currenttime/index.html b/files/ru/web/api/audiocontext/currenttime/index.html deleted file mode 100644 index 51370701f4..0000000000 --- a/files/ru/web/api/audiocontext/currenttime/index.html +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: AudioContext.currentTime -slug: Web/API/AudioContext/currentTime -translation_of: Web/API/BaseAudioContext/currentTime ---- -

{{ APIRef("AudioContext") }}

-
-

Поле currentTime принадлежит {{ domxref("AudioContext") }} и возвращает время с момента создания AudioContext. Может использоваться при планировании воспроизведения или визуализации.  Поле currentTime является не перезаписываемым и не может быть остановлено или сброшено.

-
-

Синтаксис

-
var audioCtx = new AudioContext();
-console.log(audioCtx.currentTime);
-

Тип данных

-

A double.

-

Примеры

-
-

Примечание: для большего понимания реализации Web Audio, посмотрите наши Web Audio Demos на MDN Github repo, like panner-node. Попробуйте ввести audioCtx.currentTime в консоли вашего браузера.

-
-
var AudioContext = window.AudioContext || window.webkitAudioContext;
-var audioCtx = new AudioContext();
-// Older webkit/blink browsers require a prefix
-
-...
-
-console.log(audioCtx.currentTime);
-
-

Specifications

- - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Audio API', '#widl-AudioContext-currentTime', 'currentTime')}}{{Spec2('Web Audio API')}} 
-

Browser compatibility

-
- {{CompatibilityTable}}
-
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(10.0)}}{{property_prefix("webkit")}}{{CompatGeckoDesktop(25.0)}} {{CompatNo}}15.0{{property_prefix("webkit")}}
- 22 (unprefixed)
6.0{{property_prefix("webkit")}}
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatUnknown}}26.01.2{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}33.0
-
-

See also

- diff --git a/files/ru/web/api/audiocontext/decodeaudiodata/index.html b/files/ru/web/api/audiocontext/decodeaudiodata/index.html deleted file mode 100644 index faae982eae..0000000000 --- a/files/ru/web/api/audiocontext/decodeaudiodata/index.html +++ /dev/null @@ -1,220 +0,0 @@ ---- -title: AudioContext.decodeAudioData() -slug: Web/API/AudioContext/decodeAudioData -tags: - - API -translation_of: Web/API/BaseAudioContext/decodeAudioData ---- -

{{ APIRef("Web Audio API") }}

- -
-

The decodeAudioData() method of the {{ domxref("AudioContext") }} Interface is used to asynchronously decode audio file data contained in an {{domxref("ArrayBuffer")}}. In this case the ArrayBuffer is usually loaded from an {{domxref("XMLHttpRequest")}}'s response attribute after setting the responseType to arraybuffer. The decoded AudioBuffer is resampled to the AudioContext's sampling rate, then passed to a callback or promise.

-
- -

This is the preferred method of creating an audio source for Web Audio API from an audio track.

- -

Syntax

- -

Older callback syntax:

- -
audioCtx.decodeAudioData(audioData, function(decodedData) {
-  // use the dec​oded data here
-});
- -

Newer promise-based syntax:

- -
audioCtx.decodeAudioData(audioData).then(function(decodedData) {
-  // use the decoded data here
-});
- -

Example

- -

In this section we will first cover the older callback-based system and then the newer promise-based syntax.

- -

Older callback syntax

- -

In this example, the getData() function uses XHR to load an audio track, setting the responseType of the request to arraybuffer so that it returns an array buffer as its response that we then store in the audioData variable . We then pass this buffer into a decodeAudioData() function; the success callback takes the successfully decoded PCM data, puts it into an {{ domxref("AudioBufferSourceNode") }} created using {{ domxref("AudioContext.createBufferSource()") }}, connects the source to the {{domxref("AudioContext.destination") }} and sets it to loop.

- -

The buttons in the example simply run getData() to load the track and start it playing, and stop it playing, respectively. When the stop() method is called on the source, the source is cleared out.

- -
-

Note: You can run the example live (or view the source.)

-
- -
// define variables
-
-var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
-var source;
-
-var pre = document.querySelector('pre');
-var myScript = document.querySelector('script');
-var play = document.querySelector('.play');
-var stop = document.querySelector('.stop');
-
-// use XHR to load an audio track, and
-// decodeAudioData to decode it and stick it in a buffer.
-// Then we put the buffer into the source
-
-function getData() {
-  source = audioCtx.createBufferSource();
-  var request = new XMLHttpRequest();
-
-  request.open('GET', 'viper.ogg', true);
-
-  request.responseType = 'arraybuffer';
-
-
-  request.onload = function() {
-    var audioData = request.response;
-
-    audioCtx.decodeAudioData(audioData, function(buffer) {
-        source.buffer = buffer;
-
-        source.connect(audioCtx.destination);
-        source.loop = true;
-      },
-
-      function(e){"Error with decoding audio data" + e.err});
-
-  }
-
-  request.send();
-}
-
-// wire up buttons to stop and play audio
-
-play.onclick = function() {
-  getData();
-  source.start(0);
-  play.setAttribute('disabled', 'disabled');
-}
-
-stop.onclick = function() {
-  source.stop(0);
-  play.removeAttribute('disabled');
-}
-
-
-// dump script to pre element
-
-pre.innerHTML = myScript.innerHTML;
- -

New promise-based syntax

- -
ctx.decodeAudioData(compressedBuffer).then(function(decodedData) {
- // use the decoded data here
-});
- -

Parameters

- -
-
ArrayBuffer
-
An ArrayBuffer containing the audio data to be decoded, usually grabbed from an {{domxref("XMLHttpRequest")}}'s response attribute after setting the responseType to arraybuffer.
-
DecodeSuccessCallback
-
A callback function to be invoked when the decoding successfully finishes. The single argument to this callback is an AudioBuffer representing the decoded PCM audio data. Usually you'll want to put the decoded data into an {{domxref("AudioBufferSourceNode")}}, from which it can be played and manipulated how you want.
-
DecodeErrorCallback
-
An optional error callback, to be invoked if an error occurs when the audio data is being decoded.
-
- -

Returns

- -

An {{domxref("AudioBuffer") }} representing the decoded PCM audio data.

- -

Specifications

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Audio API', '#widl-AudioContext-decodeAudioData-Promise-AudioBuffer--ArrayBuffer-audioData-DecodeSuccessCallback-successCallback-DecodeErrorCallback-errorCallback', 'decodeAudioData()')}}{{Spec2('Web Audio API')}} 
- -

Browser compatibility

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(10.0)}}{{property_prefix("webkit")}}{{CompatGeckoDesktop(25.0)}} {{CompatNo}}15.0{{property_prefix("webkit")}}
- 22 (unprefixed)
6.0{{property_prefix("webkit")}}
Promise-based syntax{{CompatChrome(49.0)}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}26.01.2{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(33.0)}}
Promise-based syntax{{CompatUnknown}}{{CompatChrome(49.0)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(49.0)}}
-
- -

See also

- - diff --git a/files/ru/web/api/baseaudiocontext/createpanner/index.html b/files/ru/web/api/baseaudiocontext/createpanner/index.html new file mode 100644 index 0000000000..0a4d5db32b --- /dev/null +++ b/files/ru/web/api/baseaudiocontext/createpanner/index.html @@ -0,0 +1,211 @@ +--- +title: AudioContext.createPanner() +slug: Web/API/AudioContext/createPanner +translation_of: Web/API/BaseAudioContext/createPanner +--- +

{{ APIRef("Web Audio API") }}

+ +
+

Метод createPanner() интерфейса {{ domxref("AudioContext") }} применяется для создания нового {{domxref("PannerNode")}}, который используется для размещения аудиопотока в виртуальном 3D пространстве.

+
+ +

The panner node is spatialized in relation to the AudioContext's {{domxref("AudioListener") }} (defined by the {{domxref("AudioContext.listener") }} attribute), which represents the position and orientation of the person listening to the audio.

+ +

Синтаксис

+ +
var audioCtx = new AudioContext();
+var panner = audioCtx.createPanner();
+ +

Возврат

+ +

A {{domxref("PannerNode")}}.

+ +

Пример

+ +
+
Ниже можно увидеть пример использования {{domxref("AudioListener")}}, {{domxref("PannerNode")}} и метода createPanner() для управления пространством объемного звука. Обычно определяется положение в трехмерном пространстве, изначально занимаемое слушателем (listener) и источником звука (panner), а затем, при использовании приложения, обновляется позиция одного из них или обоих. Например, вы можете перемещать персонажа внутри игрового мира, и желательно чтобы передача звука изменялась реалистично, по мере приближения или отдаления персонажа относительно источника звука, вроде стереопроигрывателя. В этом примере можно видеть, что все это управляется функциями moveRight(), moveLeft(), и т.п., которые устанавливают новые значения для положения паннера через функцию PositionPanner().
+ +
 
+ +
+
+
Чтобы увидеть полную реализацию ознакомьтесь с нашим примером panner-node (просмотрите весь список примеров) — эта демонстрация перенесет вас в 2.5D "Room of metal" (2,5-мерную "металлическую комнату"), где можно проиграть трек на бумбоксе и затем походить вокруг него и посмотреть как изменяется звук!
+ +
 
+
+
+
+ +

Note how we have used some feature detection to either give the browser the newer property values (like {{domxref("AudioListener.forwardX")}}) for setting position, etc. if it supports those, or older methods (like {{domxref("AudioListener.setOrientation()")}}) if it still supports those but not the new properties.

+ +
// set up listener and panner position information
+// установка сведений о слушателе (listener) и положении panner'а
+var WIDTH = window.innerWidth;
+var HEIGHT = window.innerHeight;
+
+var xPos = Math.floor(WIDTH/2);
+var yPos = Math.floor(HEIGHT/2);
+var zPos = 295;
+
+// define other variables (определяем другие переменные)
+
+var AudioContext = window.AudioContext || window.webkitAudioContext;
+var audioCtx = new AudioContext();
+
+var panner = audioCtx.createPanner();
+panner.panningModel = 'HRTF';
+panner.distanceModel = 'inverse';
+panner.refDistance = 1;
+panner.maxDistance = 10000;
+panner.rolloffFactor = 1;
+panner.coneInnerAngle = 360;
+panner.coneOuterAngle = 0;
+panner.coneOuterGain = 0;
+
+if(panner.orientationX) {
+  panner.orientationX.value = 1;
+  panner.orientationY.value = 0;
+  panner.orientationZ.value = 0;
+} else {
+  panner.setOrientation(1,0,0);
+}
+
+var listener = audioCtx.listener;
+
+if(listener.forwardX) {
+  listener.forwardX.value = 0;
+  listener.forwardY.value = 0;
+  listener.forwardZ.value = -1;
+  listener.upX.value = 0;
+  listener.upY.value = 1;
+  listener.upZ.value = 0;
+} else {
+  listener.setOrientation(0,0,-1,0,1,0);
+}
+
+var source;
+
+var play = document.querySelector('.play');
+var stop = document.querySelector('.stop');
+
+var boomBox = document.querySelector('.boom-box');
+
+var listenerData = document.querySelector('.listener-data');
+var pannerData = document.querySelector('.panner-data');
+
+leftBound = (-xPos) + 50;
+rightBound = xPos - 50;
+
+xIterator = WIDTH/150;
+
+// listener will always be in the same place for this demo
+// в этом демо слушатель всегда находится на одном и том же месте
+
+if(listener.positionX) {
+  listener.positionX.value = xPos;
+  listener.positionY.value = yPos;
+  listener.positionZ.value = 300;
+} else {
+  listener.setPosition(xPos,yPos,300);
+}
+
+listenerData.innerHTML = 'Listener data: X ' + xPos + ' Y ' + yPos + ' Z ' + 300;
+
+// panner will move as the boombox graphic moves around on the screen
+// паннер будет перемещаться по экрану за перемещением бумбокса
+function positionPanner() {
+  if(panner.positionX) {
+    panner.positionX.value = xPos;
+    panner.positionY.value = yPos;
+    panner.positionZ.value = zPos;
+  } else {
+    panner.setPosition(xPos,yPos,zPos);
+  }
+  pannerData.innerHTML = 'Panner data: X ' + xPos + ' Y ' + yPos + ' Z ' + zPos;
+}
+ +
+

In terms of working out what position values to apply to the listener and panner, to make the sound appropriate to what the visuals are doing on screen, there is quite a bit of fiddly math involved, but you will soon get used to it with a bit of experimentation.

+
+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Web Audio API', '#widl-AudioContext-createPanner-PannerNode', 'createPanner()')}}{{Spec2('Web Audio API')}} 
+ +

Browser compatibility

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(10.0)}}{{property_prefix("webkit")}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(25.0)}} {{CompatNo}}15.0{{property_prefix("webkit")}}
+ 22 (unprefixed)
6.0{{property_prefix("webkit")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidEdgeFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}26.01.2{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}33.0
+
+ +

See also

+ + diff --git a/files/ru/web/api/baseaudiocontext/currenttime/index.html b/files/ru/web/api/baseaudiocontext/currenttime/index.html new file mode 100644 index 0000000000..51370701f4 --- /dev/null +++ b/files/ru/web/api/baseaudiocontext/currenttime/index.html @@ -0,0 +1,97 @@ +--- +title: AudioContext.currentTime +slug: Web/API/AudioContext/currentTime +translation_of: Web/API/BaseAudioContext/currentTime +--- +

{{ APIRef("AudioContext") }}

+
+

Поле currentTime принадлежит {{ domxref("AudioContext") }} и возвращает время с момента создания AudioContext. Может использоваться при планировании воспроизведения или визуализации.  Поле currentTime является не перезаписываемым и не может быть остановлено или сброшено.

+
+

Синтаксис

+
var audioCtx = new AudioContext();
+console.log(audioCtx.currentTime);
+

Тип данных

+

A double.

+

Примеры

+
+

Примечание: для большего понимания реализации Web Audio, посмотрите наши Web Audio Demos на MDN Github repo, like panner-node. Попробуйте ввести audioCtx.currentTime в консоли вашего браузера.

+
+
var AudioContext = window.AudioContext || window.webkitAudioContext;
+var audioCtx = new AudioContext();
+// Older webkit/blink browsers require a prefix
+
+...
+
+console.log(audioCtx.currentTime);
+
+

Specifications

+ + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Web Audio API', '#widl-AudioContext-currentTime', 'currentTime')}}{{Spec2('Web Audio API')}} 
+

Browser compatibility

+
+ {{CompatibilityTable}}
+
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(10.0)}}{{property_prefix("webkit")}}{{CompatGeckoDesktop(25.0)}} {{CompatNo}}15.0{{property_prefix("webkit")}}
+ 22 (unprefixed)
6.0{{property_prefix("webkit")}}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatUnknown}}26.01.2{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}33.0
+
+

See also

+ diff --git a/files/ru/web/api/baseaudiocontext/decodeaudiodata/index.html b/files/ru/web/api/baseaudiocontext/decodeaudiodata/index.html new file mode 100644 index 0000000000..faae982eae --- /dev/null +++ b/files/ru/web/api/baseaudiocontext/decodeaudiodata/index.html @@ -0,0 +1,220 @@ +--- +title: AudioContext.decodeAudioData() +slug: Web/API/AudioContext/decodeAudioData +tags: + - API +translation_of: Web/API/BaseAudioContext/decodeAudioData +--- +

{{ APIRef("Web Audio API") }}

+ +
+

The decodeAudioData() method of the {{ domxref("AudioContext") }} Interface is used to asynchronously decode audio file data contained in an {{domxref("ArrayBuffer")}}. In this case the ArrayBuffer is usually loaded from an {{domxref("XMLHttpRequest")}}'s response attribute after setting the responseType to arraybuffer. The decoded AudioBuffer is resampled to the AudioContext's sampling rate, then passed to a callback or promise.

+
+ +

This is the preferred method of creating an audio source for Web Audio API from an audio track.

+ +

Syntax

+ +

Older callback syntax:

+ +
audioCtx.decodeAudioData(audioData, function(decodedData) {
+  // use the dec​oded data here
+});
+ +

Newer promise-based syntax:

+ +
audioCtx.decodeAudioData(audioData).then(function(decodedData) {
+  // use the decoded data here
+});
+ +

Example

+ +

In this section we will first cover the older callback-based system and then the newer promise-based syntax.

+ +

Older callback syntax

+ +

In this example, the getData() function uses XHR to load an audio track, setting the responseType of the request to arraybuffer so that it returns an array buffer as its response that we then store in the audioData variable . We then pass this buffer into a decodeAudioData() function; the success callback takes the successfully decoded PCM data, puts it into an {{ domxref("AudioBufferSourceNode") }} created using {{ domxref("AudioContext.createBufferSource()") }}, connects the source to the {{domxref("AudioContext.destination") }} and sets it to loop.

+ +

The buttons in the example simply run getData() to load the track and start it playing, and stop it playing, respectively. When the stop() method is called on the source, the source is cleared out.

+ +
+

Note: You can run the example live (or view the source.)

+
+ +
// define variables
+
+var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
+var source;
+
+var pre = document.querySelector('pre');
+var myScript = document.querySelector('script');
+var play = document.querySelector('.play');
+var stop = document.querySelector('.stop');
+
+// use XHR to load an audio track, and
+// decodeAudioData to decode it and stick it in a buffer.
+// Then we put the buffer into the source
+
+function getData() {
+  source = audioCtx.createBufferSource();
+  var request = new XMLHttpRequest();
+
+  request.open('GET', 'viper.ogg', true);
+
+  request.responseType = 'arraybuffer';
+
+
+  request.onload = function() {
+    var audioData = request.response;
+
+    audioCtx.decodeAudioData(audioData, function(buffer) {
+        source.buffer = buffer;
+
+        source.connect(audioCtx.destination);
+        source.loop = true;
+      },
+
+      function(e){"Error with decoding audio data" + e.err});
+
+  }
+
+  request.send();
+}
+
+// wire up buttons to stop and play audio
+
+play.onclick = function() {
+  getData();
+  source.start(0);
+  play.setAttribute('disabled', 'disabled');
+}
+
+stop.onclick = function() {
+  source.stop(0);
+  play.removeAttribute('disabled');
+}
+
+
+// dump script to pre element
+
+pre.innerHTML = myScript.innerHTML;
+ +

New promise-based syntax

+ +
ctx.decodeAudioData(compressedBuffer).then(function(decodedData) {
+ // use the decoded data here
+});
+ +

Parameters

+ +
+
ArrayBuffer
+
An ArrayBuffer containing the audio data to be decoded, usually grabbed from an {{domxref("XMLHttpRequest")}}'s response attribute after setting the responseType to arraybuffer.
+
DecodeSuccessCallback
+
A callback function to be invoked when the decoding successfully finishes. The single argument to this callback is an AudioBuffer representing the decoded PCM audio data. Usually you'll want to put the decoded data into an {{domxref("AudioBufferSourceNode")}}, from which it can be played and manipulated how you want.
+
DecodeErrorCallback
+
An optional error callback, to be invoked if an error occurs when the audio data is being decoded.
+
+ +

Returns

+ +

An {{domxref("AudioBuffer") }} representing the decoded PCM audio data.

+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Web Audio API', '#widl-AudioContext-decodeAudioData-Promise-AudioBuffer--ArrayBuffer-audioData-DecodeSuccessCallback-successCallback-DecodeErrorCallback-errorCallback', 'decodeAudioData()')}}{{Spec2('Web Audio API')}} 
+ +

Browser compatibility

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(10.0)}}{{property_prefix("webkit")}}{{CompatGeckoDesktop(25.0)}} {{CompatNo}}15.0{{property_prefix("webkit")}}
+ 22 (unprefixed)
6.0{{property_prefix("webkit")}}
Promise-based syntax{{CompatChrome(49.0)}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}26.01.2{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(33.0)}}
Promise-based syntax{{CompatUnknown}}{{CompatChrome(49.0)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(49.0)}}
+
+ +

See also

+ + diff --git a/files/ru/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html b/files/ru/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html new file mode 100644 index 0000000000..2c9eeaae78 --- /dev/null +++ b/files/ru/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html @@ -0,0 +1,726 @@ +--- +title: Применение стилей и цветов +slug: Web/API/Canvas_API/Tutorial/Применение_стилей_и_цветов +translation_of: Web/API/Canvas_API/Tutorial/Applying_styles_and_colors +--- +
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_shapes", "Web/API/Canvas_API/Tutorial/Drawing_text")}}
+ +
+

В главе о рисовании фигур, мы использовали для линий и заполнения только стили по умолчанию. Здесь мы будем исследовать опции canvas, которые мы имеем в нашем распоряжении, чтобы сделать наши рисунки немного более привлекательными. Вы узнаете, как добавлять различные цвета, стили линий, градиенты, узоры и тени вашим рисункам.

+
+ +

Цвета

+ +

До сих пор мы видели только методы рисования контекста. Если мы хотим применить цвета к фигуре, то есть два важных свойства, которые мы можем использовать: fillStyle и strokeStyle.

+ +
+
{{domxref("CanvasRenderingContext2D.fillStyle", "fillStyle = color")}}
+
Устанавливает стиль для фона фигур.
+
{{domxref("CanvasRenderingContext2D.strokeStyle", "strokeStyle = color")}}
+
Устанавливает стиль контура фигуры. 
+
+ +

color может быть цветом, (строка, представленная в CSS {{cssxref("<color>")}}), градиентом или паттерном. Градиенты и паттерны мы рассмотрим позже. По умолчанию цвет фона и контура  — черный (значение CSS цвета  #000000).

+ +
+

На заметку: Когда вы устанавливаете  значения strokeStyle и/или fillStyle, то новое значение становится стандартным для всех фигур, которые будут нарисованы с этого момента. Когда вам нужен другой цвет, вы должны перезаписать значение в fillStyle или в strokeStyle для каждой фигуры.

+
+ +

Чтобы строка color считалась валидной, она должна соответствовать CSS {{cssxref("<color>")}}. Далее приведены примеры того, как можно по-разному задать один и тот же цвет. 

+ +
// these all set the fillStyle to 'orange'
+
+ctx.fillStyle = "orange";
+ctx.fillStyle = "#FFA500";
+ctx.fillStyle = "rgb(255,165,0)";
+ctx.fillStyle = "rgba(255,165,0,1)";
+
+ +

Пример fillStyle

+ +

В этом примере мы опять воспользуемся двойным циклом, чтобы нарисовать сетку из прямоугольников, каждый из которых имеет свой цвет. Окончательное изображение должно иметь вид, как показано на скриншоте. Здесь не происходит ничего сверхъестественного. Мы используем две переменные i и j для генерации уникального RGB цвета для каждого квадрата и изменяем только красные и зеленые значения. Синий канал представляет собой фиксированное значение. Путем изменения каналов вы можете генерировать всю палитру. Увеличив количество шагов вы можете достигнуть такого вида палитры, какая используется в Photoshop.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  for (var i=0;i<6;i++){
+    for (var j=0;j<6;j++){
+      ctx.fillStyle = 'rgb(' + Math.floor(255-42.5*i) + ',' +
+                       Math.floor(255-42.5*j) + ',0)';
+      ctx.fillRect(j*25,i*25,25,25);
+    }
+  }
+}
+ + + +

Результат выглядит так:

+ +

{{EmbedLiveSample("Пример_fillStyle", 160, 160, "https://mdn.mozillademos.org/files/5417/Canvas_fillstyle.png")}}

+ +

Пример strokeStyle

+ +

Этот пример похож на предыдущий, но мы используем свойство strokeStyle чтобы изменить цвета очертаний фигур. Так же мы используем метод arc() для рисования окружностей вместо квадратов.

+ +
  function draw() {
+    var ctx = document.getElementById('canvas').getContext('2d');
+    for (var i=0;i<6;i++){
+      for (var j=0;j<6;j++){
+        ctx.strokeStyle = 'rgb(0,' + Math.floor(255-42.5*i) + ',' +
+                         Math.floor(255-42.5*j) + ')';
+        ctx.beginPath();
+        ctx.arc(12.5+j*25,12.5+i*25,10,0,Math.PI*2,true);
+        ctx.stroke();
+      }
+    }
+  }
+
+ + + +

Результат выглядит так:

+ +

{{EmbedLiveSample("Пример_strokeStyle", "180", "180", "https://mdn.mozillademos.org/files/253/Canvas_strokestyle.png")}}

+ +

Прозрачность

+ +

В дополнении к рисованию непрозрачных фигур, мы также можем рисовать прозрачные (полупрозрачные) фигуры.  Это делается через установку свойства globalAlpha или задачи полупрозрачного цвета фона или контура.

+ +
+
{{domxref("CanvasRenderingContext2D.globalAlpha", "globalAlpha = transparencyValue")}}
+
Для применения, указывается значения прозрачности для всех будущих фигур, что будут нарисованы на canvas. Значение полупрозрачности могут быть между 0.0 (полная прозрачность) и 1.0 (полная непрозрачность). Значение 1.0 (полная непрозрачность) установлено по умолчанию.
+
+ +

Свойство globalAlpha может быть использовано, если вы хотите рисовать формы с одинаковой прозрачностью, но в иной ситуации, обычно устанавливают прозрачность индивидуально к каждой форме, когда указывают их цвет.

+ +

Так как свойства strokeStyle и fillStyle принимают цветовые значения rgba через CSS, мы можем использовать следующее обозначение  для назначения прозрачных цветов.

+ +
// Assigning transparent colors to stroke and fill style
+
+ctx.strokeStyle = "rgba(255,0,0,0.5)";
+ctx.fillStyle = "rgba(255,0,0,0.5)";
+
+ +

Функция rgba() похожа на функцию rgb(), но имеет один дополнительный параметр. Последний параметр устанавливает значение прозрачности для конкретного цвета. Действующий диапозон значений находится между 0.0 (полная прозрачность) и 1.0 (полная непрозрачность).

+ +

Пример globalAlpha

+ +

В данном примере мы нарисуем фон и четыре квадрата с различными цветами.  Сверху изображения будет выведен набор полупрозрачных кругов. Установим свойство globalAlpha значением 0.2, которое будет использовано для всех последующих форм. Каждый шаг цикла рисует круг с большим радиусом. По окончанию получим радиальный градиент. Накладывая еще больше кругов друг на друга, мы фактически сможем уменьшить прозрачность ранее нарисованных кругов. Увеличив счетчик итераций, при этом рисуя еще круги, мы сможем добиться исчезновение центра изображения.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  // фон изображения
+  ctx.fillStyle = '#FD0';
+  ctx.fillRect(0,0,75,75);
+  ctx.fillStyle = '#6C0';
+  ctx.fillRect(75,0,75,75);
+  ctx.fillStyle = '#09F';
+  ctx.fillRect(0,75,75,75);
+  ctx.fillStyle = '#F30';
+  ctx.fillRect(75,75,75,75);
+  ctx.fillStyle = '#FFF';
+
+  // устанавливаем значение прозрачности
+  ctx.globalAlpha = 0.2;
+
+  // Рисуем полупрозрачные круги
+  for (i=0;i<7;i++){
+    ctx.beginPath();
+    ctx.arc(75,75,10+10*i,0,Math.PI*2,true);
+    ctx.fill();
+  }
+}
+ + + +

{{EmbedLiveSample("Пример_globalAlpha", "180", "180", "https://mdn.mozillademos.org/files/232/Canvas_globalalpha.png")}}

+ +

Пример использования rgba()

+ +

В этом втором примере мы делаем что-то похожее на предыдущее, но вместо рисования кругов друг над другом, я рисовал маленькие прямоугольники с увеличением непрозрачности. Использование rgba() добавляет контроля и гибкости, поскольку мы можем индивидуально настраивать стиль заливки и штриха.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // Нарисовать фон
+  ctx.fillStyle = 'rgb(255,221,0)';
+  ctx.fillRect(0,0,150,37.5);
+  ctx.fillStyle = 'rgb(102,204,0)';
+  ctx.fillRect(0,37.5,150,37.5);
+  ctx.fillStyle = 'rgb(0,153,255)';
+  ctx.fillRect(0,75,150,37.5);
+  ctx.fillStyle = 'rgb(255,51,0)';
+  ctx.fillRect(0,112.5,150,37.5);
+
+  // Нарисовать полупрозрачные прямоугольники
+  for (var i=0;i<10;i++){
+    ctx.fillStyle = 'rgba(255,255,255,'+(i+1)/10+')';
+    for (var j=0;j<4;j++){
+      ctx.fillRect(5+i*14,5+j*37.5,14,27.5);
+    }
+  }
+}
+ + + +

{{EmbedLiveSample("Пример_использования_rgba()", "180", "180", "https://mdn.mozillademos.org/files/246/Canvas_rgba.png")}}

+ +

Стили линий

+ +

Есть несколько свойств, которые позволяют нам стилизовать линии.

+ +
+
{{domxref("CanvasRenderingContext2D.lineWidth", "lineWidth = value")}}
+
Устанавливает ширину линий, рисуемых в будущем.
+
{{domxref("CanvasRenderingContext2D.lineCap", "lineCap = type")}}
+
Устанавливает внешний вид концов линий.
+
{{domxref("CanvasRenderingContext2D.lineJoin", "lineJoin = type")}}
+
Устанавливает внешний вид «углов», где встречаются линии.
+
{{domxref("CanvasRenderingContext2D.miterLimit", "miterLimit = value")}}
+
Устанавливает ограничение на митру, когда две линии соединяются под острым углом, чтобы вы могли контролировать её толщину.
+
{{domxref("CanvasRenderingContext2D.getLineDash", "getLineDash()")}}
+
Возвращает текущий массив тире штриховки, содержащий четное число неотрицательных чисел.
+
{{domxref("CanvasRenderingContext2D.setLineDash", "setLineDash(segments)")}}
+
Устанавливает текущий пунктир линии.
+
{{domxref("CanvasRenderingContext2D.lineDashOffset", "lineDashOffset = value")}}
+
Указывает, где следует начинать тире массива в строке.
+
+ +

Вы лучше поймете, что они делают, глядя на приведенные ниже примеры.

+ +

Пример lineWidth

+ +

Это свойство задает толщину текущей строки. Значения должны быть положительными. По умолчанию для этого значения установлено 1.0 единицы.

+ +

Ширина линии - это толщина хода, центрированного по данному пути. Другими словами, область, которая нарисована, простирается до половины ширины линии по обе стороны пути. Поскольку координаты холста не напрямую ссылаются на пиксели, особое внимание следует уделять получению четких горизонтальных и вертикальных линий.

+ +

В приведенном ниже примере 10 прямых линий рисуются с увеличением ширины линий. Линия в крайнем левом углу - 1.0 единицы. Тем не менее, толщина левой и всех других линий нечетной ширины не выглядят четкими из-за позиционирования пути.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  for (var i = 0; i < 10; i++){
+    ctx.lineWidth = 1+i;
+    ctx.beginPath();
+    ctx.moveTo(5+i*14,5);
+    ctx.lineTo(5+i*14,140);
+    ctx.stroke();
+  }
+}
+
+ + + +

{{EmbedLiveSample("Пример_lineWidth", "180", "180", "https://mdn.mozillademos.org/files/239/Canvas_linewidth.png")}}

+ +

Получение четких строк требует понимания путей сглаживания. На рисунках ниже представлена сетка координат холста. Квадраты между сетками являются фактическими экранными пикселями. В первом изображении сетки ниже прямоугольник от (2, 1) до (5, 5) заполняется. Вся область между ними (светло-красный) падает на границы пикселей, поэтому полученный заполненный прямоугольник будет иметь четкие края.

+ +

+ +

Если вы рассмотрите путь от (3, 1) до (3, 5) с толщиной строки 1.0, вы получите ситуацию во втором изображении. Фактическая заполняемая область, (синяя), распространяется только наполовину в пикселях по обе стороны пути. Приблизительно это означает, что частично затенённые пиксели приводят к заполнению всей области (светло-голубой и синей) цветом, только наполовину темным, чем фактический цвет штриха. Это то, что происходит с линией шириной 1.0 в предыдущем примере кода.

+ +

Чтобы исправить это, вы должны быть более точными при создании пути. Зная, что линия шириной 1.0 занимает половину единицы по обе стороны пути, создание пути от (3.5, 1) до (3.5, 5) приведёт к ситуации в третьем изображении - ширина линии 1.0 закончится верно, точно заполняя вертикальную линию с одним пикселем.

+ +
+

Примечание: Имейте в виду, что в нашем примере с вертикальной линией позиция Y по-прежнему ссылается на целочисленную позицию сетки - иначе мы увидели бы пиксели с половинным охватом в конечных точках (также обратите внимание, что это поведение зависит от текущего стиля lineCap,  значение по умолчанию - butt; вы можете вычислить согласованные штрихи с полупиксельными координатами для линий с нечетной шириной, установив стиль lineCap в square, чтобы внешняя граница вокруг конечной точки линии автоматически расширялась, охватывая весь пиксель в точку).

+ +

Также обратите внимание, что затронуты только начальные и конечные  точки пути: если путь закрыт с помощью closePath(), - нет начальной и конечной точки; вместо этого все конечные точки в пути подключены к их прикрепленному предыдущему и следующему сегментам и при текущей настройке стиля lineJoin в значении по умолчанию - miter, с эффектом автоматического расширения внешних границ подключенных сегментов до их точки пересечения - обработанный ход будет точно покрывать полные пиксели с центром в каждой конечной точке, если эти связанные сегменты горизонтальны и/или вертикальны). См. следующие два раздела, демонстрирующие эти дополнительные стили.

+
+ +

Для линий с четной шириной каждая половина заканчивается как целое количество пикселей, поэтому вам нужен путь, который находится между пикселями (то есть (3,1) - (3,5)), вместо середины пикселей.

+ +

Хотя это и необычно, когда изначально работаешь с масштабируемой 2D-графикой, обращая внимание на сетку пикселей и положение путей, но вы убедитесь, что ваши рисунки будут выглядеть правильно, независимо от масштабирования или любых других преобразований. Вертикальная линия ширины 1,0, построенная таким образом, станет четкой 2-пиксельной линией при увеличении на 2 и появится в правильном положении.

+ +

Пример lineCap

+ +

Свойство lineCap определяет, как выводятся конечные точки каждой строки. Для этого свойства есть три возможных значения: butt, round и square. По умолчанию для этого свойства установлено значение butt.

+ +

+ +
+
butt
+
Концы линий соответствуют крайним точкам.
+
round
+
Концы линий округлены.
+
square
+
Концы линий описаны квадратом с равной шириной и половиной высоты толщины линии.
+
+ +

В этом примере мы проведем три строки, каждая из которых имеет другое значение для свойства lineCap. Я также добавил два руководства, чтобы увидеть точные различия между ними. Каждая из этих линий начинается и заканчивается именно на этих направляющих.

+ +

Строка слева использует butt опцию по умолчанию. Вы заметите, что она полностью очищена от направляющих. Второй вариант -  round опция. Это добавляет полукруг к концу, который имеет радиус, равный половине ширины линии. Строка справа использует square опцию. Это добавляет поле с равной шириной и половиной высоты толщины линии.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  var lineCap = ['butt','round','square'];
+
+  // Draw guides
+  ctx.strokeStyle = '#09f';
+  ctx.beginPath();
+  ctx.moveTo(10,10);
+  ctx.lineTo(140,10);
+  ctx.moveTo(10,140);
+  ctx.lineTo(140,140);
+  ctx.stroke();
+
+  // Draw lines
+  ctx.strokeStyle = 'black';
+  for (var i=0;i<lineCap.length;i++){
+    ctx.lineWidth = 15;
+    ctx.lineCap = lineCap[i];
+    ctx.beginPath();
+    ctx.moveTo(25+i*50,10);
+    ctx.lineTo(25+i*50,140);
+    ctx.stroke();
+  }
+}
+
+ + + +

{{EmbedLiveSample("Пример_lineCap", "180", "180", "https://mdn.mozillademos.org/files/236/Canvas_linecap.png")}}

+ +

Пример lineJoin

+ +

Свойство lineJoin определяет, как соединяются два сегмента (линий, дуг или кривых) с ненулевой длиной в форме (вырожденные сегменты с нулевой длиной, заданные конечные точки и контрольные точки находятся точно в том же положении - пропущены).

+ +

Для этого свойства есть три возможных значения: round, bevel и miter. По умолчанию для этого свойства установлено значение miter. Обратите внимание, что настройка lineJoin не действует, если два связанных сегмента имеют одно и то же направление, потому что в этом случае не будет добавлена ​​область соединения.

+ +

+ +
+
round
+
Радиус заполняемой части для скругленных углов равен половине ширины линии. центр этого радиуса совпадает с концами подключенных сегментов.
+
bevel
+
Заполняет дополнительную треугольную область между общей конечной точкой подключенных сегментов и отдельными внешними прямоугольными углами каждого сегмента. 
+
miter
+
Подключенные сегменты соединяются путем расширения их внешних краев для соединения в одной точке с эффектом заполнения дополнительной области в форме пастилки. Эта настройка выполняется с помощью свойства miterLimit, которое объясняется ниже.
+
+ +

В приведенном ниже примере показаны три разных пути, демонстрирующие каждый из этих трех свойств lineJoin; результат - выше. 

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  var lineJoin = ['round','bevel','miter'];
+  ctx.lineWidth = 10;
+  for (var i=0;i<lineJoin.length;i++){
+    ctx.lineJoin = lineJoin[i];
+    ctx.beginPath();
+    ctx.moveTo(-5,5+i*40);
+    ctx.lineTo(35,45+i*40);
+    ctx.lineTo(75,5+i*40);
+    ctx.lineTo(115,45+i*40);
+    ctx.lineTo(155,5+i*40);
+    ctx.stroke();
+  }
+}
+
+ + + +

{{EmbedLiveSample("Пример_lineJoin", "180", "180", "https://mdn.mozillademos.org/files/237/Canvas_linejoin.png")}}

+ +

Демонстрация свойства miterLimit

+ +

Как вы видели в предыдущем примере, при объединении двух строк с опцией miter внешние края двух соединительных линий расширены до точки, где они встречаются. Для линий, которые находятся под большими углами друг с другом, эта точка находится недалеко от внутренней точки соединения. Однако, поскольку углы между каждой линией уменьшаются, расстояние (длина меча) между этими точками увеличивается экспоненциально.

+ +

Свойство miterLimit определяет, как далеко можно установить внешнюю точку соединения из внутренней точки подключения. Если две линии превышают это значение, вместо этого получается привязка конуса. Обратите внимание, что максимальная длина митра является произведением ширины линии, измеренной в текущей системе координат, значением этого свойства miterLimit (значение по умолчанию 10,0 в HTML {{HTMLElement("canvas")}}), поэтому miterLimit может устанавливаться независимо от текущей шкалы дисплея или любых аффинных преобразований путей: она влияет только на эффективно визуализированную форму ребер линии.

+ +

Точнее, предел митры является максимально допустимым отношением длины расширения (в холсте HTML он измеряется между внешним углом соединенных краев линии и общей конечной точкой соединительных сегментов, указанными на пути), до половины ширины линии. Его можно равнозначно определить как максимально допустимое отношение расстояния между внутренней и внешней точками перехода краев к общей ширине линии. Затем он равен косекансу с половиной минимального внутреннего угла соединительных сегментов, ниже которого не будет создано ни одного соединения митра, а только скос соединяется:

+ + + +

Вот небольшая демонстрация, в которой вы можете динамически установить miterLimit и посмотреть, как это влияет на фигуры на холсте. Синие линии показывают, где начальная и конечная точки для каждой из линий в шаблоне зигзага.

+ +

Если вы укажете в этой демонстрации значение miterLimit ниже 4.2, ни один из видимых углов не присоединится к расширению митры, но только с небольшим скосом рядом с синими линиями; с отметкой miterLimit выше 10, большинство углов в этой демонстрации должны соединяться с митрой, удаленной от синих линий, высота которой уменьшается между углами слева направо, потому что они соединяются с растущими углами; с промежуточными значениями углы с левой стороны будут соединяться только с скосом рядом с синими линиями, а углы с правой стороны с удлинителем митры (также с уменьшающейся высотой).

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // Clear canvas
+  ctx.clearRect(0,0,150,150);
+
+  // Draw guides
+  ctx.strokeStyle = '#09f';
+  ctx.lineWidth   = 2;
+  ctx.strokeRect(-5,50,160,50);
+
+  // Set line styles
+  ctx.strokeStyle = '#000';
+  ctx.lineWidth = 10;
+
+  // check input
+  if (document.getElementById('miterLimit').value.match(/\d+(\.\d+)?/)) {
+    ctx.miterLimit = parseFloat(document.getElementById('miterLimit').value);
+  } else {
+    alert('Value must be a positive number');
+  }
+
+  // Draw lines
+  ctx.beginPath();
+  ctx.moveTo(0,100);
+  for (i=0;i<24;i++){
+    var dy = i%2==0 ? 25 : -25 ;
+    ctx.lineTo(Math.pow(i,1.5)*2,75+dy);
+  }
+  ctx.stroke();
+  return false;
+}
+
+ + + +

{{EmbedLiveSample("Демонстрация_свойства_miterLimit", "400", "180", "https://mdn.mozillademos.org/files/240/Canvas_miterlimit.png")}}

+ +

Использование штрихов

+ +

Метод setLineDash и свойство lineDashOffset задают шаблон штрихов для линий. Метод setLineDash принимает список чисел, который определяет расстояния для попеременного рисования линии и разрыва, а свойство lineDashOffset устанавливает смещение, с которого начинается шаблон.

+ +

В этом примере мы создаем эффект походных муравьев. Это техника анимации, часто встречающаяся в инструментах выбора программ компьютерной графики. Это помогает пользователю отличить границу выделения от фона изображения, анимируя границу. В следующей части этого руководства вы узнаете, как сделать эту и другие основные анимации.

+ + + +
var ctx = document.getElementById('canvas').getContext('2d');
+var offset = 0;
+
+function draw() {
+  ctx.clearRect(0,0, canvas.width, canvas.height);
+  ctx.setLineDash([4, 2]);
+  ctx.lineDashOffset = -offset;
+  ctx.strokeRect(10,10, 100, 100);
+}
+
+function march() {
+  offset++;
+  if (offset > 16) {
+    offset = 0;
+  }
+  draw();
+  setTimeout(march, 20);
+}
+
+march();
+ +

{{EmbedLiveSample("Используемый штрих", "120", "120", "https://mdn.mozillademos.org/files/9853/marching-ants.png")}}

+ +

Градиенты

+ +

Just like any normal drawing program, we can fill and stroke shapes using linear and radial gradients. We create a {{domxref("CanvasGradient")}} object by using one of the following methods. We can then assign this object to the fillStyle or strokeStyle properties.

+ +
+
{{domxref("CanvasRenderingContext2D.createLinearGradient", "createLinearGradient(x1, y1, x2, y2)")}}
+
Creates a linear gradient object with a starting point of (x1, y1) and an end point of (x2, y2).
+
{{domxref("CanvasRenderingContext2D.createRadialGradient", "createRadialGradient(x1, y1, r1, x2, y2, r2)")}}
+
Creates a radial gradient. The parameters represent two circles, one with its center at (x1, y1) and a radius of r1, and the other with its center at (x2, y2) with a radius of r2.
+
+ +

For example:

+ +
var lineargradient = ctx.createLinearGradient(0, 0, 150, 150);
+var radialgradient = ctx.createRadialGradient(75, 75, 0, 75, 75, 100);
+
+ +

Once we've created a CanvasGradient object we can assign colors to it by using the addColorStop() method.

+ +
+
{{domxref("CanvasGradient.addColorStop", "gradient.addColorStop(position, color)")}}
+
Creates a new color stop on the gradient object. The position is a number between 0.0 and 1.0 and defines the relative position of the color in the gradient, and the color argument must be a string representing a CSS {{cssxref("<color>")}}, indicating the color the gradient should reach at that offset into the transition.
+
+ +

You can add as many color stops to a gradient as you need. Below is a very simple linear gradient from white to black.

+ +
var lineargradient = ctx.createLinearGradient(0,0,150,150);
+lineargradient.addColorStop(0, 'white');
+lineargradient.addColorStop(1, 'black');
+
+ +

Пример createLinearGradient

+ +

In this example, we'll create two different gradients. As you can see here, both the strokeStyle and fillStyle properties can accept a canvasGradient object as valid input.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // Create gradients
+  var lingrad = ctx.createLinearGradient(0,0,0,150);
+  lingrad.addColorStop(0, '#00ABEB');
+  lingrad.addColorStop(0.5, '#fff');
+  lingrad.addColorStop(0.5, '#26C000');
+  lingrad.addColorStop(1, '#fff');
+
+  var lingrad2 = ctx.createLinearGradient(0,50,0,95);
+  lingrad2.addColorStop(0.5, '#000');
+  lingrad2.addColorStop(1, 'rgba(0,0,0,0)');
+
+  // assign gradients to fill and stroke styles
+  ctx.fillStyle = lingrad;
+  ctx.strokeStyle = lingrad2;
+
+  // draw shapes
+  ctx.fillRect(10,10,130,130);
+  ctx.strokeRect(50,50,50,50);
+
+}
+
+ + + +

The first is a background gradient. As you can see, we assigned two colors at the same position. You do this to make very sharp color transitions—in this case from white to green. Normally, it doesn't matter in what order you define the color stops, but in this special case, it does significantly. If you keep the assignments in the order you want them to appear, this won't be a problem.

+ +

In the second gradient, we didn't assign the starting color (at position 0.0) since it wasn't strictly necessary, because it will automatically assume the color of the next color stop. Therefore, assigning the black color at position 0.5 automatically makes the gradient, from the start to this stop, black.

+ +

{{EmbedLiveSample("Пример_createLinearGradient", "180", "180", "https://mdn.mozillademos.org/files/235/Canvas_lineargradient.png")}}

+ +

Пример createRadialGradient

+ +

In this example, we'll define four different radial gradients. Because we have control over the start and closing points of the gradient, we can achieve more complex effects than we would normally have in the "classic" radial gradients we see in, for instance, Photoshop (that is, a gradient with a single center point where the gradient expands outward in a circular shape).

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // Create gradients
+  var radgrad = ctx.createRadialGradient(45,45,10,52,50,30);
+  radgrad.addColorStop(0, '#A7D30C');
+  radgrad.addColorStop(0.9, '#019F62');
+  radgrad.addColorStop(1, 'rgba(1,159,98,0)');
+
+  var radgrad2 = ctx.createRadialGradient(105,105,20,112,120,50);
+  radgrad2.addColorStop(0, '#FF5F98');
+  radgrad2.addColorStop(0.75, '#FF0188');
+  radgrad2.addColorStop(1, 'rgba(255,1,136,0)');
+
+  var radgrad3 = ctx.createRadialGradient(95,15,15,102,20,40);
+  radgrad3.addColorStop(0, '#00C9FF');
+  radgrad3.addColorStop(0.8, '#00B5E2');
+  radgrad3.addColorStop(1, 'rgba(0,201,255,0)');
+
+  var radgrad4 = ctx.createRadialGradient(0,150,50,0,140,90);
+  radgrad4.addColorStop(0, '#F4F201');
+  radgrad4.addColorStop(0.8, '#E4C700');
+  radgrad4.addColorStop(1, 'rgba(228,199,0,0)');
+
+  // draw shapes
+  ctx.fillStyle = radgrad4;
+  ctx.fillRect(0,0,150,150);
+  ctx.fillStyle = radgrad3;
+  ctx.fillRect(0,0,150,150);
+  ctx.fillStyle = radgrad2;
+  ctx.fillRect(0,0,150,150);
+  ctx.fillStyle = radgrad;
+  ctx.fillRect(0,0,150,150);
+}
+
+ + + +

In this case, we've offset the starting point slightly from the end point to achieve a spherical 3D effect. It's best to try to avoid letting the inside and outside circles overlap because this results in strange effects which are hard to predict.

+ +

The last color stop in each of the four gradients uses a fully transparent color. If you want to have a nice transition from this to the previous color stop, both colors should be equal. This isn't very obvious from the code because it uses two different CSS color methods as a demonstration, but in the first gradient #019F62 = rgba(1,159,98,1).

+ +

{{EmbedLiveSample("Пример_createRadialGradient", "180", "180", "https://mdn.mozillademos.org/files/244/Canvas_radialgradient.png")}}

+ +

Шаблоны

+ +

В одном из предыдущих примеров мы использовали несколько циклов, чтобы создать шаблон из повторяющихся изображений. Однако, есть более простой способ сделать подобное - метод createPattern().

+ +
+
{{domxref("CanvasRenderingContext2D.createPattern", "createPattern(image, type)")}}
+
Создает и возвращает новый canvas объект - шаблон (pattern). image - {{domxref("CanvasImageSource")}} (то есть {{domxref ("HTMLImageElement")}}, другой холст, элемент {{HTMLElement ("video")}} или подобный  объект. type - строка, указывающая, как использовать image.
+
+ +

Тип указывает, как использовать image для создания шаблона и должен быть одним из следующих значений:

+ +
+
repeat
+
Повторяет изображение в вертикальном и горизонтальном направлениях.
+
repeat-x
+
Повторяет изображение по горизонтали, но не по вертикали.
+
repeat-y
+
Повторяет изображение по вертикали, но не по горизонтали.
+
no-repeat
+
Не повторяет изображение. Используется только один раз.
+
+ +

Мы используем этот метод, чтобы создать {{domxref("CanvasPattern")}} объект, который очень похож на методы градиента, рассмотренные ранее. Как только мы создали шаблон, мы можем назначить ему свойства fillStyle или strokeStyle. Например:

+ +
var img = new Image();
+img.src = 'someimage.png';
+var ptrn = ctx.createPattern(img,'repeat');
+
+ +
+

Примечание: По аналогии с методом drawImage(), вы должны убедиться, что изображение, которое вы используете, загружено до вызова этого метода. Иначе шаблон может быть отрисован некорректно.

+
+ +

Пример createPattern

+ +

In this last example, we'll create a pattern to assign to the fillStyle property. The only thing worth noting is the use of the image's onload handler. This is to make sure the image is loaded before it is assigned to the pattern.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // create new image object to use as pattern
+  var img = new Image();
+  img.src = 'https://mdn.mozillademos.org/files/222/Canvas_createpattern.png';
+  img.onload = function(){
+
+    // create pattern
+    var ptrn = ctx.createPattern(img,'repeat');
+    ctx.fillStyle = ptrn;
+    ctx.fillRect(0,0,150,150);
+
+  }
+}
+
+ + + +

{{EmbedLiveSample("Пример_createPattern", "180", "180", "https://mdn.mozillademos.org/files/222/Canvas_createpattern.png")}}

+ +

Тени

+ +

Using shadows involves just four properties:

+ +
+
{{domxref("CanvasRenderingContext2D.shadowOffsetX", "shadowOffsetX = float")}}
+
Indicates the horizontal distance the shadow should extend from the object. This value isn't affected by the transformation matrix. The default is 0.
+
{{domxref("CanvasRenderingContext2D.shadowOffsetY", "shadowOffsetY = float")}}
+
Indicates the vertical distance the shadow should extend from the object. This value isn't affected by the transformation matrix. The default is 0.
+
{{domxref("CanvasRenderingContext2D.shadowBlur", "shadowBlur = float")}}
+
Indicates the size of the blurring effect; this value doesn't correspond to a number of pixels and is not affected by the current transformation matrix. The default value is 0.
+
{{domxref("CanvasRenderingContext2D.shadowColor", "shadowColor = color")}}
+
A standard CSS color value indicating the color of the shadow effect; by default, it is fully-transparent black.
+
+ +

The properties shadowOffsetX and shadowOffsetY indicate how far the shadow should extend from the object in the X and Y directions; these values aren't affected by the current transformation matrix. Use negative values to cause the shadow to extend up or to the left, and positive values to cause the shadow to extend down or to the right. These are both 0 by default.

+ +

The shadowBlur property indicates the size of the blurring effect; this value doesn't correspond to a number of pixels and is not affected by the current transformation matrix. The default value is 0.

+ +

The shadowColor property is a standard CSS color value indicating the color of the shadow effect; by default, it is fully-transparent black.

+ +
+

Note: Shadows are only drawn for source-over compositing operations.

+
+ +

Пример текста с тенью

+ +

This example draws a text string with a shadowing effect.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  ctx.shadowOffsetX = 2;
+  ctx.shadowOffsetY = 2;
+  ctx.shadowBlur = 2;
+  ctx.shadowColor = "rgba(0, 0, 0, 0.5)";
+
+  ctx.font = "20px Times New Roman";
+  ctx.fillStyle = "Black";
+  ctx.fillText("Sample String", 5, 30);
+}
+
+ + + +

{{EmbedLiveSample("Пример_текста_с_тенью", "180", "100", "https://mdn.mozillademos.org/files/2505/shadowed-string.png")}}

+ +

We will look at the font property and fillText method in the next chapter about drawing text.

+ +

Canvas fill rules

+ +

When using fill (or {{domxref("CanvasRenderingContext2D.clip", "clip")}} and {{domxref("CanvasRenderingContext2D.isPointInPath", "isPointinPath")}}) you can optionally provide a fill rule algorithm by which to determine if a point is inside or outside a path and thus if it gets filled or not. This is useful when a path intersetcs itself or is nested.
+
+ Two values are possible:

+ + + +

In this example we are using the evenodd rule.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  ctx.beginPath();
+  ctx.arc(50, 50, 30, 0, Math.PI*2, true);
+  ctx.arc(50, 50, 15, 0, Math.PI*2, true);
+  ctx.fill("evenodd");
+}
+ + + +

{{EmbedLiveSample("Canvas_fill_rules", "110", "110", "https://mdn.mozillademos.org/files/9855/fill-rule.png")}}

+ +

{{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_shapes", "Web/API/Canvas_API/Tutorial/Drawing_text")}}

diff --git a/files/ru/web/api/canvas_api/tutorial/basic_animations/index.html b/files/ru/web/api/canvas_api/tutorial/basic_animations/index.html new file mode 100644 index 0000000000..a47b8b734e --- /dev/null +++ b/files/ru/web/api/canvas_api/tutorial/basic_animations/index.html @@ -0,0 +1,308 @@ +--- +title: Простые анимации +slug: Web/API/Canvas_API/Tutorial/Основы_анимации +tags: + - HTML + - HTML5 + - Графика + - Обучение + - Средний уровень + - Холст +translation_of: Web/API/Canvas_API/Tutorial/Basic_animations +--- +
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Compositing", "Web/API/Canvas_API/Tutorial/Advanced_animations")}}
+ +
+

Поскольку для управления элементами {{HTMLElement ("canvas")}} используется JavaScript, не составляет труда сделать (интерактивные) анимации. В этой главе мы рассмотрим, как делаются некоторые базовые анимации.

+
+ +

Вероятно, самым большим ограничением является то, что когда фигура нарисована, её уже нельзя двигать. Чтобы изобразить движение нам нужно перерисовать фигуру и всё, что было нарисовано до неё. Перерисовка сложных кадров занимает много времени, и производительность сильно зависит от скорости компьютера, на котором она выполняется.

+ +

Основные шаги анимации

+ +

Ниже перечислены необходимые шаги для того, чтобы нарисовать кадр:

+ +
    +
  1. Очистить canvas
    + Если фигура, которую вы собираетесь нарисовать, не занимает всю площадь canvas (как фон, например), то всё что было нарисовано ранее необходимо стереть. Проще всего это сделать при помощи метода {{domxref("CanvasRenderingContext2D.clearRect", "clearRect()")}}.
  2. +
  3. Сохранить изначальное состояние canvas
    + Если вы изменяете любые настройки (такие как стили, трансформации и т.п.), которые затрагивают состояние canvas и вы хотите убедиться, что оригинальное состояние используется каждый раз, когда был отрисован кадр, то вам следует сохранить это оригинальное состояние.
  4. +
  5. Нарисовать анимированные фигуры
    + Шаг на котором вы собственно отрисовываете кадр.
  6. +
  7. Восстановить состояние canvas
    + Если вы сохраняли состояние, восстановите его, прежде чем отрисовывать новый кадр.
  8. +
+ +

Управление анимацией

+ +

Фигуры отрисовываются на canvas либо напрямую — при помощи методов canvas, либо с помощью сторонних функций. В нормальной ситуации результат станет виден на canvas после окончания выполнения скрипта. К примеру, цикл for использовать для анимации нельзя. 

+ +

Это значит, нужен способ выполнения функций отрисовки через интервалы времени. Есть два способа для управления такой анимацией.

+ +

Запланированные обновления

+ +

Первый — это функции {{domxref("window.setInterval()")}}, {{domxref("window.setTimeout()")}}, и {{domxref("window.requestAnimationFrame()")}}, которые могут быть использованы для вызова некоторой функции, через заданный промежуток времени.

+ +
+
{{domxref("WindowTimers.setInterval", "setInterval(function, delay)")}}
+
Начинает периодически исполнять функцию function каждые delay миллисекунд.
+
{{domxref("WindowTimers.setTimeout", "setTimeout(function, delay)")}}
+
Запускает выполнение указанной функции function через delay миллисекунд.
+
{{domxref("Window.requestAnimationFrame()", "requestAnimationFrame(callback)")}}
+
Сообщает браузеру, что вы хотите выполнить анимацию, и запрашивает, чтобы браузер вызвал указанную функцию callback для обновления анимации перед следующей перерисовкой.
+
+ +

Если вы не планируете никакого взаимодействия с пользователем, вы можете использовать функцию setInterval() , которая многократно выполняет, предоставленный ей код. Если же вы планиуете создать игру, в которой контроль анимации осуществляется мышью или клавиатурой, то необходимо использовать  setTimeout(). Установив {{domxref("EventListener")}}, вы можете перехватываете любые действия пользователя и запустить соответствующие функции анимации.

+ +
+

В примерах ниже мы будем использовать функцию {{domxref("window.requestAnimationFrame()")}} для контроля анимации. Функция requestAnimationFrame является более эффективной для создания анимации, так как новая итерация вызывается, когда система готова к отрисовке нового кадра. Количество вызовов в секунду примерно равно 60 и уменьшается, когда вкладка неактивна. Для более подробного изучения цикла анимации, особенно для игр, прочитайте статью Анатомия видеоигр В Зоне разработке игр.

+
+ +

Анимированная солнечная система

+ +

В этом примере анимируется небольшая модель солнечной системы.

+ +
var sun = new Image();
+var moon = new Image();
+var earth = new Image();
+function init(){
+  sun.src = 'https://mdn.mozillademos.org/files/1456/Canvas_sun.png';
+  moon.src = 'https://mdn.mozillademos.org/files/1443/Canvas_moon.png';
+  earth.src = 'https://mdn.mozillademos.org/files/1429/Canvas_earth.png';
+  window.requestAnimationFrame(draw);
+}
+
+function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  ctx.globalCompositeOperation = 'destination-over';
+  ctx.clearRect(0,0,300,300); // clear canvas
+
+  ctx.fillStyle = 'rgba(0,0,0,0.4)';
+  ctx.strokeStyle = 'rgba(0,153,255,0.4)';
+  ctx.save();
+  ctx.translate(150,150);
+
+  // Earth
+  var time = new Date();
+  ctx.rotate( ((2*Math.PI)/60)*time.getSeconds() + ((2*Math.PI)/60000)*time.getMilliseconds() );
+  ctx.translate(105,0);
+  ctx.fillRect(0,-12,50,24); // Shadow
+  ctx.drawImage(earth,-12,-12);
+
+  // Moon
+  ctx.save();
+  ctx.rotate( ((2*Math.PI)/6)*time.getSeconds() + ((2*Math.PI)/6000)*time.getMilliseconds() );
+  ctx.translate(0,28.5);
+  ctx.drawImage(moon,-3.5,-3.5);
+  ctx.restore();
+
+  ctx.restore();
+
+  ctx.beginPath();
+  ctx.arc(150,150,105,0,Math.PI*2,false); // Earth orbit
+  ctx.stroke();
+
+  ctx.drawImage(sun,0,0,300,300);
+
+  window.requestAnimationFrame(draw);
+}
+
+init();
+
+ + + +

{{EmbedLiveSample("An_animated_solar_system", "310", "310", "https://mdn.mozillademos.org/files/202/Canvas_animation1.png")}}

+ +

Анимированные часы

+ +

В этом примере создаются анимированные часы, показывающие правильное время.

+ +
function clock(){
+  var now = new Date();
+  var ctx = document.getElementById('canvas').getContext('2d');
+  ctx.save();
+  ctx.clearRect(0,0,150,150);
+  ctx.translate(75,75);
+  ctx.scale(0.4,0.4);
+  ctx.rotate(-Math.PI/2);
+  ctx.strokeStyle = "black";
+  ctx.fillStyle = "white";
+  ctx.lineWidth = 8;
+  ctx.lineCap = "round";
+
+  // Hour marks
+  ctx.save();
+  for (var i=0;i<12;i++){
+    ctx.beginPath();
+    ctx.rotate(Math.PI/6);
+    ctx.moveTo(100,0);
+    ctx.lineTo(120,0);
+    ctx.stroke();
+  }
+  ctx.restore();
+
+  // Minute marks
+  ctx.save();
+  ctx.lineWidth = 5;
+  for (i=0;i<60;i++){
+    if (i%5!=0) {
+      ctx.beginPath();
+      ctx.moveTo(117,0);
+      ctx.lineTo(120,0);
+      ctx.stroke();
+    }
+    ctx.rotate(Math.PI/30);
+  }
+  ctx.restore();
+
+  var sec = now.getSeconds();
+  var min = now.getMinutes();
+  var hr  = now.getHours();
+  hr = hr>=12 ? hr-12 : hr;
+
+  ctx.fillStyle = "black";
+
+  // write Hours
+  ctx.save();
+  ctx.rotate( hr*(Math.PI/6) + (Math.PI/360)*min + (Math.PI/21600)*sec )
+  ctx.lineWidth = 14;
+  ctx.beginPath();
+  ctx.moveTo(-20,0);
+  ctx.lineTo(80,0);
+  ctx.stroke();
+  ctx.restore();
+
+  // write Minutes
+  ctx.save();
+  ctx.rotate( (Math.PI/30)*min + (Math.PI/1800)*sec )
+  ctx.lineWidth = 10;
+  ctx.beginPath();
+  ctx.moveTo(-28,0);
+  ctx.lineTo(112,0);
+  ctx.stroke();
+  ctx.restore();
+
+  // Write seconds
+  ctx.save();
+  ctx.rotate(sec * Math.PI/30);
+  ctx.strokeStyle = "#D40000";
+  ctx.fillStyle = "#D40000";
+  ctx.lineWidth = 6;
+  ctx.beginPath();
+  ctx.moveTo(-30,0);
+  ctx.lineTo(83,0);
+  ctx.stroke();
+  ctx.beginPath();
+  ctx.arc(0,0,10,0,Math.PI*2,true);
+  ctx.fill();
+  ctx.beginPath();
+  ctx.arc(95,0,10,0,Math.PI*2,true);
+  ctx.stroke();
+  ctx.fillStyle = "rgba(0,0,0,0)";
+  ctx.arc(0,0,3,0,Math.PI*2,true);
+  ctx.fill();
+  ctx.restore();
+
+  ctx.beginPath();
+  ctx.lineWidth = 14;
+  ctx.strokeStyle = '#325FA2';
+  ctx.arc(0,0,142,0,Math.PI*2,true);
+  ctx.stroke();
+
+  ctx.restore();
+
+  window.requestAnimationFrame(clock);
+}
+
+window.requestAnimationFrame(clock);
+ + + +

{{EmbedLiveSample("An_animated_clock", "180", "180", "https://mdn.mozillademos.org/files/203/Canvas_animation2.png")}}

+ +

Зацикленная панорама

+ +

В этом примере панорама прокручивается слева направо. Мы используем фото национального парка Йосемити взятое из Википедии, но вы можете использовать любое изображение, большее элемента canvas.

+ +
var img = new Image();
+
+// User Variables - customize these to change the image being scrolled, its
+// direction, and the speed.
+
+img.src = 'https://mdn.mozillademos.org/files/4553/Capitan_Meadows,_Yosemite_National_Park.jpg';
+var CanvasXSize = 800;
+var CanvasYSize = 200;
+var speed = 30; //lower is faster
+var scale = 1.05;
+var y = -4.5; //vertical offset
+
+// Main program
+
+var dx = 0.75;
+var imgW;
+var imgH;
+var x = 0;
+var clearX;
+var clearY;
+var ctx;
+
+img.onload = function() {
+    imgW = img.width*scale;
+    imgH = img.height*scale;
+    if (imgW > CanvasXSize) { x = CanvasXSize-imgW; } // image larger than canvas
+    if (imgW > CanvasXSize) { clearX = imgW; } // image larger than canvas
+    else { clearX = CanvasXSize; }
+    if (imgH > CanvasYSize) { clearY = imgH; } // image larger than canvas
+    else { clearY = CanvasYSize; }
+    //Get Canvas Element
+    ctx = document.getElementById('canvas').getContext('2d');
+    //Set Refresh Rate
+    return setInterval(draw, speed);
+}
+
+function draw() {
+    //Clear Canvas
+    ctx.clearRect(0,0,clearX,clearY);
+    //If image is <= Canvas Size
+    if (imgW <= CanvasXSize) {
+        //reset, start from beginning
+        if (x > (CanvasXSize)) { x = 0; }
+        //draw aditional image
+        if (x > (CanvasXSize-imgW)) { ctx.drawImage(img,x-CanvasXSize+1,y,imgW,imgH); }
+    }
+    //If image is > Canvas Size
+    else {
+        //reset, start from beginning
+        if (x > (CanvasXSize)) { x = CanvasXSize-imgW; }
+        //draw aditional image
+        if (x > (CanvasXSize-imgW)) { ctx.drawImage(img,x-imgW+1,y,imgW,imgH); }
+    }
+    //draw image
+    ctx.drawImage(img,x,y,imgW,imgH);
+    //amount to move
+    x += dx;
+}
+
+ +

Заметьте, что ширина и высота должны совпадать  со значениями CanvasXZSize и CanvasYSize.

+ +
<canvas id="canvas" width="800" height="200"></canvas>
+ +

{{EmbedLiveSample("A_looping_panorama", "830", "230")}}

+ +

Другие примеры

+ +
+
A basic ray-caster
+
Хороший пример того, как сделать управляемую анимацию с клавиатуры.
+
Advanced animations
+
Мы рассмотрим некоторые продвинутые методы анимации и физику в следующей главе.
+
+ +

{{PreviousNext("Web/API/Canvas_API/Tutorial/Compositing", "Web/API/Canvas_API/Tutorial/Advanced_animations")}}

diff --git a/files/ru/web/api/canvas_api/tutorial/compositing/index.html b/files/ru/web/api/canvas_api/tutorial/compositing/index.html new file mode 100644 index 0000000000..264cc7e544 --- /dev/null +++ b/files/ru/web/api/canvas_api/tutorial/compositing/index.html @@ -0,0 +1,108 @@ +--- +title: Композиция и обрезка +slug: Web/API/Canvas_API/Tutorial/Композиции +tags: + - канвас +translation_of: Web/API/Canvas_API/Tutorial/Compositing +--- +
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Transformations", "Web/API/Canvas_API/Tutorial/Basic_animations")}}
+ +
+

Во всех наших предыдущих примерах, фигуры всегда были нарисованы одна поверх другой. Это более чем достаточно для большинства ситуаций, но это ограничивает порядок, в котором построены композиционные формы. Однако, мы можем изменить это поведение, установив свойство globalCompositeOperation. Кроме того, свойства clip позволяет скрыть нежелательные части формы.

+
+ +

globalCompositeOperation

+ +

Мы можем не только рисовать новые фигуры за существующие формы, но мы также можем использовать его, чтобы замаскировать определенные участки, очистить разделы от холста (не ограничивается прямоугольниками, как{{domxref("CanvasRenderingContext2D.clearRect", "clearRect()")}} method does) и другое.

+ +
+
{{domxref("CanvasRenderingContext2D.globalCompositeOperation", "globalCompositeOperation = type")}}
+
Это задает Тип операции композиции для применения при разработке новых форм, где Тип является строкой, идентифицирующей, какие из двенадцати операций композитинг в использовании.
+
+ +

См.  примеры компоновки кода из следующих примеров.

+ +

{{EmbedLiveSample("Compositing_example", 750, 6750, "" ,"Web/API/Canvas_API/Tutorial/Compositing/Example")}}

+ +

Обрезка контуров

+ +

Отсеченный контур похож на обычную форму холста, но он действует как маска, чтобы скрыть нежелательные части фигур. Это визуализируется на изображении справа. Форма красной звезды - наша отправочная дорожка. Все, что выходит за пределы этого пути, не будет нарисовано на холсте.

+ +

Если мы сравниваем отсеченный контур со свойством globalCompositeOperation на изображении, мы видим два режима композитинга, которые достигают более или менее того же эффекта в исходном и исходном состоянии.   Наиболее важные различия между ними заключаются в том, что отсечение контура фактически  никогда не обращается к холсту и контур обрезки никогда не влияет добавление новых форм. Это делает обрезку контура идеальным для рисования нескольких фигур в ограниченной области.

+ +

В главе о рисовании форм, я назвал только stroke() и fill() методы, но есть третий способ можно использовать с контурами, так называемый clip().

+ +
+
{{domxref("CanvasRenderingContext2D.clip", "clip()")}}
+
Преобразует текущий выстраиваемый контур в отсечённый контур.
+
+ +

Используйте clip() вместо closePath() для закрытия контура и его преобразования в отсечённый контур вместо создания заполняющего  или обрамляющего контура.

+ +

По умолчанию элемент {{HTMLElement("canvas")}} использует отсечённый контур, который в точности совпадает по размеру с размером самого холста. Это означает, что никакого отсечения попросту не произойдёт.

+ +

Пример обрезки

+ +

В этом примере мы будем использовать круговую обрезку контура, чтобы ограничить рисование набора случайных звезд определенной областью.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  ctx.fillRect(0, 0, 150, 150);
+  ctx.translate(75, 75);
+
+  // Create a circular clipping path
+  ctx.beginPath();
+  ctx.arc(0, 0, 60, 0, Math.PI * 2, true);
+  ctx.clip();
+
+  // draw background
+  var lingrad = ctx.createLinearGradient(0, -75, 0, 75);
+  lingrad.addColorStop(0, '#232256');
+  lingrad.addColorStop(1, '#143778');
+
+  ctx.fillStyle = lingrad;
+  ctx.fillRect(-75, -75, 150, 150);
+
+  // draw stars
+  for (var j = 1; j < 50; j++) {
+    ctx.save();
+    ctx.fillStyle = '#fff';
+    ctx.translate(75 - Math.floor(Math.random() * 150),
+                  75 - Math.floor(Math.random() * 150));
+    drawStar(ctx, Math.floor(Math.random() * 4) + 2);
+    ctx.restore();
+  }
+
+}
+
+function drawStar(ctx, r) {
+  ctx.save();
+  ctx.beginPath();
+  ctx.moveTo(r, 0);
+  for (var i = 0; i < 9; i++) {
+    ctx.rotate(Math.PI / 5);
+    if (i % 2 === 0) {
+      ctx.lineTo((r / 0.525731) * 0.200811, 0);
+    } else {
+      ctx.lineTo(r, 0);
+    }
+  }
+  ctx.closePath();
+  ctx.fill();
+  ctx.restore();
+}
+
+ + + +

В первых нескольких строках кода мы рисуем черный прямоугольник размером с холстом в качестве фона, а затем переводим начало координат в центр. Затем мы создаем круговой обтравочный контур, рисуя дугу и вызывающий clip(). Обрезанные контуры также являются частью состояния сохранения холста. Если бы мы хотели сохранить исходный обтравочный контур, мы могли бы сохранить состояние холста перед созданием нового.

+ +

Все, что нарисовано после создания отсеченного контура, появится только внутри этого пути. Вы можете видеть это четко в линейном градиенте, который нарисован далее. После этого набирается набор из 50 случайно расположенных и масштабированных звезд, используя drawStar(). Снова звезды появляются только в пределах определенного обтравочного контура.

+ +

{{EmbedLiveSample("A_clip_example", "180", "180", "https://mdn.mozillademos.org/files/208/Canvas_clip.png")}}

+ +

{{PreviousNext("Web/API/Canvas_API/Tutorial/Transformations", "Web/API/Canvas_API/Tutorial/Basic_animations")}}

diff --git a/files/ru/web/api/canvas_api/tutorial/drawing_shapes/index.html b/files/ru/web/api/canvas_api/tutorial/drawing_shapes/index.html new file mode 100644 index 0000000000..f6ca6c23ef --- /dev/null +++ b/files/ru/web/api/canvas_api/tutorial/drawing_shapes/index.html @@ -0,0 +1,582 @@ +--- +title: Рисование фигур с помощью canvas +slug: Web/API/Canvas_API/Tutorial/Рисование_фигур +translation_of: Web/API/Canvas_API/Tutorial/Drawing_shapes +--- +
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_usage", "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors")}}
+ +
+

Теперь, установив наше окружение canvas, мы можем погрузиться в детали того, как рисовать в canvas. К концу этой статьи, Вы научитесь рисовать прямоугольники, треугольники, линии, дуги и кривые, при условии что Вы хорошо знакомы с основными геометрическими фигурами. Работа с путями весьма важна, когда рисуете объекты на canvas и мы увидим как это может быть сделано.

+
+ +

Сетка

+ +

Перед тем, как мы начнем рисовать, нам нужно поговорить о сетке canvas или координатной плоскости. Наш HTML каркас из предыдущей страницы включал в себя элемент canvas 150 пикселей в ширину и 150 пикселей в высоту. Справа можно увидеть этот canvas с сеткой, накладываемой по умолчанию. Обычно 1 единица на сетке соответствует 1 пикселю на canvas. Начало координат этой сетки расположено в верхнем левом углу в координате (0,0 ). Все элементы размещены относительно этого начала. Таким образом, положение верхнего левого угла синего квадрата составляет х пикселей слева и у пикселей сверху, на координате , у). Позже в этом уроке мы увидим, как можно перевести начало координат в другое место, вращать сетку и даже масштабировать ее, но сейчас мы будем придерживаться настроек сетки по умолчанию.

+ +

Рисование прямоугольников

+ +

В отличие от {{Glossary("SVG")}}, {{HTMLElement("canvas")}} поддерживает только одну примитивную фигуру: прямоугольник. Все другие фигуры должны быть созданы комбинацией одного или большего количества контуров (paths), набором точек, соединенных в линии. К счастью в ассортименте рисования контуров у нас есть  функции, которые делают возможным составление очень сложных фигур.

+ +

Сначала рассмотрим прямоугольник. Ниже представлены три функции рисования прямоугольников в canvas:

+ +
+
{{domxref("CanvasRenderingContext2D.fillRect", "fillRect(x, y, width, height)")}}
+
Рисование заполненного прямоугольника.
+
{{domxref("CanvasRenderingContext2D.strokeRect", "strokeRect(x, y, width, height)")}}
+
Рисование прямоугольного контура.
+
{{domxref("CanvasRenderingContext2D.clearRect", "clearRect(x, y, width, height)")}}
+
Очистка  прямоугольной области, делая содержимое совершенно прозрачным.
+
+ +

Каждая из приведенных функций принимает несколько параметров: 

+ + + +

Ниже приведена функция draw(), использующая эти три функции.

+ +

Пример создания прямоугольных фигур

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext) {
+    var ctx = canvas.getContext('2d');
+
+    ctx.fillRect(25,25,100,100);
+    ctx.clearRect(45,45,60,60);
+    ctx.strokeRect(50,50,50,50);
+  }
+}
+ +

Этот пример изображен ниже.

+ +

{{EmbedLiveSample("Пример_создания_прямоугольных_фигур", 160, 160, "https://mdn.mozillademos.org/files/245/Canvas_rect.png")}}

+ +

Функция fillRect() рисует большой чёрный квадрат со стороной 100 px. Функция clearRect() вырезает квадрат 60х60 из центра, а функция strokeRect() создает прямоугольный контур 50х50 пикселей внутри очищенного квадрата.

+ +

На следующей странице мы рассмотрим две альтернативы методу clearRect(), и также увидим, как можно изменять цвет и стиль контура отображаемых фигур.

+ +

В отличие от функций создания контуров, которые будут рассмотрены в следующем разделе, все три функции создания прямоугольника сразу же отображаются на canvas.

+ +

Рисование контуров (path)

+ +

Остальные примитивные фигуры создаются контурами. Контур - это набор точек, которые, соединяясь в отрезки линий, могут образовывать различные фигуры, изогнутые или нет, разной ширины и разного цвета. Контур (или субконтур) может быть закрытым.

+ +

Создание фигур используя контуры происходит в несколько важных шагов:

+ +
    +
  1. Сначала вы создаете контур.
  2. +
  3. Затем, используя команды рисования, рисуете контур.
  4. +
  5. Потом закрываете контур.
  6. +
  7. Созданный контур вы можете обвести или залить для его отображения.
  8. +
+ +

Здесь приведены функции, которые можно использовать в описанных шагах:

+ +
+
{{domxref("CanvasRenderingContext2D.beginPath", "beginPath()")}}
+
Создает новый контур. После создания используется в дальнейшем командами рисования при построении контуров.
+
Path методы
+
Методы для установки различных контуров объекта.
+
{{domxref("CanvasRenderingContext2D.closePath", "closePath()")}}
+
Закрывает контур, так что будущие команды рисования вновь направлены контекст.
+
{{domxref("CanvasRenderingContext2D.stroke", "stroke()")}}
+
Рисует фигуру с внешней обводкой.
+
{{domxref("CanvasRenderingContext2D.fill", "fill()")}}
+
Рисует фигуру с заливкой внутренней области.
+
+ +

Первый шаг создания контура заключается в вызове функции beginPath(). Внутри содержатся контуры в виде набора суб-контуров (линии, дуги и др.), которые вместе образуют форму фигуры. Каждый вызов этого метода очищает набор, и мы можем начинать рисовать новые фигуры.

+ +
Note:  если текущий контур пуст (например, как после вызова beginPath() или на вновь созданном canvas), первой командой построения контура всегда является функция  moveTo(). Поэтому мы всегда можем установить начальную позицию рисования контура после перезагрузки.
+ +

Вторым шагом является вызов методов, определяемых видом контура, который нужно нарисовать. Их мы рассмотрим позднее.

+ +

Третий и необязательный шаг - это вызов closePath(). Этот метод пытается закрыть фигуру, рисуя прямую линию из текущей точки в начальную. Если фигура была уже закрыта или является просто точкой, то функция ничего не делает.

+ +
Note: Когда вы вызываете fill(), то каждая открытая фигура закрывается автоматически, так что вы можете не использовать closePath(). Это обстоятельство не имеет место в случае вызова stroke().
+ +

Рисование треугольника

+ +

Например, код для рисования треугольника будет выглядеть как-то так:

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    ctx.beginPath();
+    ctx.moveTo(75,50);
+    ctx.lineTo(100,75);
+    ctx.lineTo(100,25);
+    ctx.fill();
+  }
+}
+
+ +

Результат выглядит так:

+ +

{{EmbedLiveSample("Рисование_треугольника", 110, 110, "https://mdn.mozillademos.org/files/9847/triangle.png")}}

+ +

Передвижение пера

+ +

Одна очень полезная функция, которая ничего не рисует, но связана по смыслу с вышеописанными функциями  - это moveTo(). Вы можете представить это как отрыв (подъем) пера от бумаги и его перемещение в другое место.

+ +
+
{{domxref("CanvasRenderingContext2D.moveTo", "moveTo(x, y)")}}
+
Перемещает перо в точку с координатами x и y.
+
+ +

При инициализации canvas или при вызове beginPath(), вы захотите использовать функцию moveTo() для перемещения в точку начала рисования. Можно использовать moveTo() и для рисования несвязанного(незакрытого) контура. Посмотрите на смайлик ниже.

+ +

Вы можете проверить это сами, используя участок кода ниже. Просто вставьте в функцию draw(), рассмотренную ранее.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+     var ctx = canvas.getContext('2d');
+
+    ctx.beginPath();
+    ctx.arc(75,75,50,0,Math.PI*2,true); // Внешняя окружность
+    ctx.moveTo(110,75);
+    ctx.arc(75,75,35,0,Math.PI,false);  // рот (по часовой стрелке)
+    ctx.moveTo(65,65);
+    ctx.arc(60,65,5,0,Math.PI*2,true);  // Левый глаз
+    ctx.moveTo(95,65);
+    ctx.arc(90,65,5,0,Math.PI*2,true);  // Правый глаз
+    ctx.stroke();
+  }
+}
+
+ +

Результат этого ниже:

+ +

{{EmbedLiveSample("Передвижение_пера", 160, 160, "https://mdn.mozillademos.org/files/252/Canvas_smiley.png")}}

+ +

Если вы захотите увидеть соединные линии, то можете удалить вызов moveTo().

+ +
+

Note: Подробнее о функции arc(),посмотрите {{anch("Дуги")}} .

+
+ +

Линии

+ +

Для рисования прямых линий используйте метод lineTo().

+ +
+
{{domxref("CanvasRenderingContext2D.lineTo", "lineTo(x, y)")}}
+
Рисует линию с текущей позиции до позиции, определенной x и y.
+
+ +

Этот метод принимает два аргумента x и y, которые являются координатами конечной точки линии. Начальная точка зависит от ранее нарисованных путей, причём конечная точка предыдущего пути является начальной точкой следующего и т. д. Начальная точка также может быть изменена с помощью метода moveTo().

+ +

Пример ниже рисует два треугольника, один закрашенный и другой обведен контуром.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    // Filled triangle
+    ctx.beginPath();
+    ctx.moveTo(25,25);
+    ctx.lineTo(105,25);
+    ctx.lineTo(25,105);
+    ctx.fill();
+
+    // Stroked triangle
+    ctx.beginPath();
+    ctx.moveTo(125,125);
+    ctx.lineTo(125,45);
+    ctx.lineTo(45,125);
+    ctx.closePath();
+    ctx.stroke();
+  }
+}
+
+ +

Отрисовка начинается с вызова beginPath(), чтобы начать рисовать путь новой фигуры. Затем мы используем метод moveTo(), чтобы переместить начальную точку в нужное положение. Ниже рисуются две линии, которые образуют две стороны треугольника.

+ +

{{EmbedLiveSample("Линии", 160, 160, "https://mdn.mozillademos.org/files/238/Canvas_lineTo.png")}}

+ +

Вы заметите разницу между закрашенным и обведенным контуром треугольниками. Это, как упоминалось выше, из-за того, что фигуры автоматически закрываются, когда путь заполнен (т. е. закрашен), но не тогда, когда он очерчен (т. е. обведен контуром). Если бы мы не учли closePath() для очерченного треугольника, тогда только две линии были бы нарисованы, а не весь треугольник.

+ +

Дуги

+ +

Для рисования дуг и окружностей, используем методы arc() и arcTo().

+ +
+
{{domxref("CanvasRenderingContext2D.arc", "arc(x, y, radius, startAngle, endAngle, anticlockwise)")}}
+
Рисуем дугу с центром в точке (x,y) радиусом radius, начиная с угла startAngle и заканчивая в endAngle в направлении против часовой стрелки anticlockwise (по умолчанию по ходу движения часовой стрелки).
+
{{domxref("CanvasRenderingContext2D.arcTo", "arcTo(x1, y1, x2, y2, radius)")}}
+
Рисуем дугу с заданными контрольными точками и радиусом, соединяя эти точки прямой линией.
+
+ +

Рассмотрим детальнее метод arc(), который имеет пять параметров: x и y — это координаты центра окружности, в которой должна быть нарисована дуга. radius — не требует пояснений. Углы startAngle и endAngle определяют начальную и конечную точки дуги в радианах вдоль кривой окружности. Отсчет происходит от оси x. Параметр anticlockwise — логическое значение, которое, если true, то рисование дуги совершается против хода часовой стрелки; иначе рисование происходит по ходу часовой стрелки.

+ +
+

Note: Углы в функции arc() измеряют в радианах, не в градусах. Для перевода градусов в радианы вы можете использовать JavaScript-выражение: radians = (Math.PI/180)*degrees.

+
+ +

Следующий пример немного сложнее, чем мы рассматривали ранее. Здесь нарисованы 12 различных дуг с разными углами и заливками.

+ +

Два for цикла размещают дуги по столбцам и строкам. Для каждой дуги, мы начинаем новый контур, вызывая beginPath(). В этом коде каждый параметр дуги для большей ясности задан в виде переменной, но вам не обязательно делать так в реальных проектах.

+ +

Координаты x и y  должны быть достаточно ясны. radius and startAngle — фиксированы. endAngle начинается со 180 градусов (полуокружность) в первой колонке и, увеличиваясь с шагом 90 градусов, достигает кульминации полноценной окружностью в последнем столбце.

+ +

Установка параметра clockwise определяет результат; в первой и третьей строках рисование дуг происходит по часовой стрелке, а во второй и четвертой - против часовой стрелки. Благодаря if-условию верхняя половина дуг образуется с контуром, (обводкой), а нижняя половина дуг - с заливкой.

+ +
+

Note: Этот пример требует немного большего холста (canvas), чем другие на этой странице: 150 x 200 pixels.

+
+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    for(var i=0;i<4;i++){
+      for(var j=0;j<3;j++){
+        ctx.beginPath();
+        var x = 25+j*50; // x coordinate
+        var y = 25+i*50; // y coordinate
+        var radius = 20; // Arc radius
+        var startAngle = 0; // Starting point on circle
+        var endAngle = Math.PI+(Math.PI*j)/2; // End point on circle
+        var anticlockwise = i%2==0 ? false : true; // clockwise or anticlockwise
+
+        ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise);
+
+        if (i>1){
+          ctx.fill();
+        } else {
+          ctx.stroke();
+        }
+      }
+    }
+  }
+}
+
+ +

{{EmbedLiveSample("Дуги", 160, 210, "https://mdn.mozillademos.org/files/204/Canvas_arc.png")}}

+ +

Безье и квадратичные кривые

+ +

Следующим типом доступных контуров являются  кривые Безье, и к тому же доступны в кубическом и квадратичном вариантах. Обычно они используются при рисовании сложных составных фигур.

+ +
+
{{domxref("CanvasRenderingContext2D.quadraticCurveTo", "quadraticCurveTo(cp1x, cp1y, x, y)")}}
+
Рисуется квадратичная кривая Безье с текущей позиции пера в конечную точку с координатами x и y, используя контрольную точку с координатами cp1x и cp1y.
+
{{domxref("CanvasRenderingContext2D.bezierCurveTo", "bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)")}}
+
Рисуется кубическая кривая Безье с текущей позиции пера в конечную точку с координатами x и y, используя две контрольные точки с координатами (cp1x, cp1y) и (cp2x, cp2y).
+
+ +

Различие между ними можно увидеть на рисунке, изображенном справа. Квадратичная кривая Безье имеет стартовую и конечную точки (синие точки) и всего одну контрольную точку (красная точка), в то время как кубическая кривая Безье использует две контрольные точки.

+ +

Параметры x и y в этих двух методах являются координатами конечной точки. cp1x и cp1y — координаты первой контрольной точки, а cp2x и cp2y — координаты второй контрольной точки.

+ +

Использование квадратичных или кубических кривых Безье может быть  спорным выходом, так как в отличие от приложений векторной графики типа Adobe Illustrator, мы не имеем полной видимой обратной связи с тем, что мы делаем. Этот факт делает довольно сложным процесс рисования сложных фигур. В следующем примере мы нарисуем совсем простую составную фигуру, но, если у вас есть время и ещё больше терпения, можно создать более сложные составные фигуры.

+ +

В этом примере нет ничего слишком тяжелого. В обоих случаях мы видим последовательность кривых, рисуя которые, в результате получим составную фигуру.

+ +

Квадратичные кривые Безье

+ +

В этом примере многократно используются квадратичные кривые Безье для рисования речевой выноски.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext) {
+    var ctx = canvas.getContext('2d');
+
+    // Quadratric curves example
+    ctx.beginPath();
+    ctx.moveTo(75,25);
+    ctx.quadraticCurveTo(25,25,25,62.5);
+    ctx.quadraticCurveTo(25,100,50,100);
+    ctx.quadraticCurveTo(50,120,30,125);
+    ctx.quadraticCurveTo(60,120,65,100);
+    ctx.quadraticCurveTo(125,100,125,62.5);
+    ctx.quadraticCurveTo(125,25,75,25);
+    ctx.stroke();
+  }
+}
+
+ +

{{EmbedLiveSample("Квадратичные_кривые_Безье", 160, 160, "https://mdn.mozillademos.org/files/243/Canvas_quadratic.png")}}

+ +

Кубические кривые Безье

+ +

В этом примере нарисовано сердце с использованием кубических кривых Безье.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    // Cubic curves example
+    ctx.beginPath();
+    ctx.moveTo(75,40);
+    ctx.bezierCurveTo(75,37,70,25,50,25);
+    ctx.bezierCurveTo(20,25,20,62.5,20,62.5);
+    ctx.bezierCurveTo(20,80,40,102,75,120);
+    ctx.bezierCurveTo(110,102,130,80,130,62.5);
+    ctx.bezierCurveTo(130,62.5,130,25,100,25);
+    ctx.bezierCurveTo(85,25,75,37,75,40);
+    ctx.fill();
+  }
+}
+
+ +

{{EmbedLiveSample("Cubic_Bezier_curves", 160, 160, "https://mdn.mozillademos.org/files/207/Canvas_bezier.png")}}

+ +

Прямоугольники

+ +

Все эти методы мы видели в  {{anch("Рисование прямоугольников")}}, которые рисуют прямоугольники сразу в canvas, так же есть метод rect(), который не отображает, а только добавляет контур рисования (path) заданного прямоугольника к последнему открытому контуру.

+ +
+
{{domxref("CanvasRenderingContext2D.rect", "rect(x, y, width, height)")}}
+

+ Добавляет в path прямоугольник, верхний левый угол которого указан с помощью (x, y) с вашими width и height
+
+
+ +

Когда этот метод вызван, автоматически вызывается метод moveTo() с параметрами (x, y). Другими словами, позиция курсора устанавливается в начало добавленного прямоугольника.

+ +

Создание комбинаций

+ +

До сих пор, в каждом примере использовался только один тип функции контуров для каждой фигуры.
+ Однако, нет никаких ограничений на количество или типы контуров, которые вы можете использовать для создания фигур. Давайте в этом примере объединим все вышеперечисленные  функции контуров, чтобы создать набор очень известных игровых персонажей.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    roundedRect(ctx,12,12,150,150,15);
+    roundedRect(ctx,19,19,150,150,9);
+    roundedRect(ctx,53,53,49,33,10);
+    roundedRect(ctx,53,119,49,16,6);
+    roundedRect(ctx,135,53,49,33,10);
+    roundedRect(ctx,135,119,25,49,10);
+
+    ctx.beginPath();
+    ctx.arc(37,37,13,Math.PI/7,-Math.PI/7,false);
+    ctx.lineTo(31,37);
+    ctx.fill();
+
+    for(var i=0;i<8;i++){
+      ctx.fillRect(51+i*16,35,4,4);
+    }
+
+    for(i=0;i<6;i++){
+      ctx.fillRect(115,51+i*16,4,4);
+    }
+
+    for(i=0;i<8;i++){
+      ctx.fillRect(51+i*16,99,4,4);
+    }
+
+    ctx.beginPath();
+    ctx.moveTo(83,116);
+    ctx.lineTo(83,102);
+    ctx.bezierCurveTo(83,94,89,88,97,88);
+    ctx.bezierCurveTo(105,88,111,94,111,102);
+    ctx.lineTo(111,116);
+    ctx.lineTo(106.333,111.333);
+    ctx.lineTo(101.666,116);
+    ctx.lineTo(97,111.333);
+    ctx.lineTo(92.333,116);
+    ctx.lineTo(87.666,111.333);
+    ctx.lineTo(83,116);
+    ctx.fill();
+
+    ctx.fillStyle = "white";
+    ctx.beginPath();
+    ctx.moveTo(91,96);
+    ctx.bezierCurveTo(88,96,87,99,87,101);
+    ctx.bezierCurveTo(87,103,88,106,91,106);
+    ctx.bezierCurveTo(94,106,95,103,95,101);
+    ctx.bezierCurveTo(95,99,94,96,91,96);
+    ctx.moveTo(103,96);
+    ctx.bezierCurveTo(100,96,99,99,99,101);
+    ctx.bezierCurveTo(99,103,100,106,103,106);
+    ctx.bezierCurveTo(106,106,107,103,107,101);
+    ctx.bezierCurveTo(107,99,106,96,103,96);
+    ctx.fill();
+
+    ctx.fillStyle = "black";
+    ctx.beginPath();
+    ctx.arc(101,102,2,0,Math.PI*2,true);
+    ctx.fill();
+
+    ctx.beginPath();
+    ctx.arc(89,102,2,0,Math.PI*2,true);
+    ctx.fill();
+  }
+}
+
+// A utility function to draw a rectangle with rounded corners.
+
+function roundedRect(ctx,x,y,width,height,radius){
+  ctx.beginPath();
+  ctx.moveTo(x,y+radius);
+  ctx.lineTo(x,y+height-radius);
+  ctx.quadraticCurveTo(x,y+height,x+radius,y+height);
+  ctx.lineTo(x+width-radius,y+height);
+  ctx.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);
+  ctx.lineTo(x+width,y+radius);
+  ctx.quadraticCurveTo(x+width,y,x+width-radius,y);
+  ctx.lineTo(x+radius,y);
+  ctx.quadraticCurveTo(x,y,x,y+radius);
+  ctx.stroke();
+}
+
+ +

Конечное изображение выглядит так:

+ +

{{EmbedLiveSample("Создание_комбинаций", 160, 160, "https://mdn.mozillademos.org/files/9849/combinations.png")}}

+ +

Мы не будем подробно останавливаться на том, так как это на самом деле удивительно просто. Наиболее важные вещи, которые следует отметить, это использование свойства fillStyle в контексте рисования и использование функции утилиты (в данном случае roundedRect()). Использование функций утилиты для битов чертежа часто может быть очень полезным и сократить количество необходимого кода, а также его сложность.

+ +

Позже, в этом уроке, мы еще раз рассмотрим fillStyle, но более подробно. Здесь же мы используем его для изменения цвета заливки путей вместо цвета по умолчанию от черного до белого, а затем обратно.

+ +

Path2D объекты

+ +

Как мы видели в последнем примере, есть серия путей и команд для рисования объектов на вашем холсте. Чтобы упростить код и повысить производительность, объект {{domxref("Path2D")}}, доступный в последних версиях браузеров, позволяет вам кэшировать или записывать эти команды рисования. Вы можете быстро запускать свои пути.
+ Давайте посмотрим, как мы можем построить объект Path2D :

+ +
+
{{domxref("Path2D.Path2D", "Path2D()")}}
+
Конструктор Path2D() возвращает вновь созданный объект Path2D  необязательно с другим путем в качестве аргумента (создает копию) или необязательно со строкой, состоящей из данных пути SVG path .
+
+ +
new Path2D();     // пустой path объект
+new Path2D(path); // копирование из другого path
+new Path2D(d);    // path из SVG
+ +

Все  методы path , такие как  moveTo,  rect,  arc, или quadraticCurveTo,  итп, которые мы уже знаем, доступны для объектов Path2D

+ +

API Path2D также добавляет способ комбинирования путей с использованием метода addPath. Это может быть полезно, если вы хотите, например, создавать объекты из нескольких компонентов.

+ +
+
{{domxref("Path2D.addPath", "Path2D.addPath(path [, transform])")}}
+
Добавляет путь к текущему пути с необязательной матрицей преобразования.
+
+ +

Path2D пример

+ +

В этом примере мы создаем прямоугольник и круг. Оба они сохраняются как объект Path2D, поэтому они доступны для последующего использования. С новым API Path2D несколько методов были обновлены, чтобы при необходимости принять объект Path2D для использования вместо текущего пути. Здесь stroke и fill используются с аргументом пути, например, для рисования обоих объектов на холст.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext){
+    var ctx = canvas.getContext('2d');
+
+    var rectangle = new Path2D();
+    rectangle.rect(10, 10, 50, 50);
+
+    var circle = new Path2D();
+    circle.moveTo(125, 35);
+    circle.arc(100, 35, 25, 0, 2 * Math.PI);
+
+    ctx.stroke(rectangle);
+    ctx.fill(circle);
+  }
+}
+
+ +

{{EmbedLiveSample("Path2D_example", 130, 110, "https://mdn.mozillademos.org/files/9851/path2d.png")}}

+ +

Использование SVG путей

+ +

Еще одна мощная функция нового Canvas Path2D API использует данные пути SVG, SVG path data, для инициализации путей на вашем холсте. Это может позволить вам передавать данные пути и повторно использовать их как в SVG, так и в холсте.

+ +

Путь перемещается в точку (M10 10), а затем горизонтально перемещается на 80 пунктов вправо (h 80), затем на 80 пунктов вниз (v 80), затем на 80 пунктов влево (h -80), а затем обратно на start (z). 
+ Этот пример можно увидеть на странице  Path2D constructor.

+ +
var p = new Path2D("M10 10 h 80 v 80 h -80 Z");
+ +
{{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_usage", "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors")}}
diff --git a/files/ru/web/api/canvas_api/tutorial/drawing_text/index.html b/files/ru/web/api/canvas_api/tutorial/drawing_text/index.html new file mode 100644 index 0000000000..90915c5e09 --- /dev/null +++ b/files/ru/web/api/canvas_api/tutorial/drawing_text/index.html @@ -0,0 +1,166 @@ +--- +title: Рисование текста +slug: Web/API/Canvas_API/Tutorial/Рисование_текста +tags: + - Canvas + - Графика + - Примеры + - Рукводовство + - мануал +translation_of: Web/API/Canvas_API/Tutorial/Drawing_text +--- +
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Applying_styles_and_colors", "Web/API/Canvas_API/Tutorial/Using_images")}}
+ +
+

После того, как мы увидели в предыдущей главе, как применять стили и цвета, взглянем на написание текста в canvas.

+
+ +

Рисование текста

+ +

Контекст рендеринга canvas предоставляет два метода для рисования текста:

+ +
+
{{domxref("CanvasRenderingContext2D.fillText", "fillText(text, x, y [, maxWidth])")}}
+
Вставляет заданный текст в положении (x,y). Опционально может быть указана максимальная ширина.
+
{{domxref("CanvasRenderingContext2D.strokeText", "strokeText(text, x, y [, maxWidth])")}}
+
Вставляет контур заданного текста в положении (x,y). Опционально может быть указана максимальная ширина.
+
+ +

Пример fillText

+ +

Текст вставлен с использованием текущего fillStyle.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  ctx.font = "48px serif";
+  ctx.fillText("Hello world", 10, 50);
+}
+ + + +

{{EmbedLiveSample("A_fillText_example", 310, 110)}}

+ +

Пример strokeText

+ +

Текст вставлен с использованием текущего strokeStyle.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  ctx.font = "48px serif";
+  ctx.strokeText("Hello world", 10, 50);
+}
+ + + +

{{EmbedLiveSample("A_strokeText_example", 310, 110)}}

+ +

Стилизация текста

+ +

В примерах выше мы уже использовали свойство font для изменения размера текста. Кроме него существуют еще несколько свойств, позволяющие настроить вывод текста на canvas:

+ +
+
{{domxref("CanvasRenderingContext2D.font", "font = value")}}
+
Это основной стиль, который будет использоваться для вывода текста. Строка имеет такой же синтаксис, как CSS-свойство {{cssxref("font")}}. По умолчанию - sans-serif высотой 10px.
+
{{domxref("CanvasRenderingContext2D.textAlign", "textAlign = value")}}
+
Настройка выравнивания текста. Возможные значения: start, end, left, right или center. По умолчанию - start.
+
{{domxref("CanvasRenderingContext2D.textBaseline", "textBaseline = value")}}
+
Настройка выравнивания текста по вертикали. Возможные значения: top, hanging, middle, alphabetic, ideographic, bottom. По умолчанию - alphabetic.
+
{{domxref("CanvasRenderingContext2D.direction", "direction = value")}}
+
Направление текста. Возможные значения: ltr, rtl, inherit. По умолчанию - inherit.
+
+ +

Эти свойства могут быть вам знакомы если вы работали с CSS.

+ +

Изображение от WHATWG ниже показывает различные варианты свойства textBaseline.The top of the em square is
+roughly at the top of the glyphs in a font, the hanging baseline is
+where some glyphs like आ are anchored, the middle is half-way
+between the top of the em square and the bottom of the em square,
+the alphabetic baseline is where characters like Á, ÿ,
+f, and Ω are anchored, the ideographic baseline is
+where glyphs like 私 and 達 are anchored, and the bottom
+of the em square is roughly at the bottom of the glyphs in a
+font. The top and bottom of the bounding box can be far from these
+baselines, due to glyphs extending far outside the em square.

+ +

Пример textBaseline

+ +

Редактируя код ниже, вы можете видеть, как меняется отображение текста на canvas в реальном времени:

+ +
ctx.font = "48px serif";
+ctx.textBaseline = "hanging";
+ctx.strokeText("Hello world!", 0, 100);
+
+ + + +

{{ EmbedLiveSample('Playable_code', 700, 360) }}

+ +

Измерение ширины текста

+ +

Для измерения ширины текста (без рисования его на canvas) можно воспользоваться следующим методом:

+ +
+
{{domxref("CanvasRenderingContext2D.measureText", "measureText()")}}
+
Возвращает объект {{domxref("TextMetrics")}}, содержащий ширину текста в пикселах, до отрисовки на canvas.
+
+ +

Пример ниже показывает, как можно измерить ширину текста.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  var text = ctx.measureText("foo"); // TextMetrics object
+  text.width; // 16;
+}
+
+ +

Примечания

+ +

В ранних версиях Gecko (движок рендеринга в Firefox, Firefox OS и других приложениях Mozilla) были реализованы методы API с префиксами для рисования текста на canvas. На данный момент они устарели и уже, возможно, удалены, поэтому их правильная работа не гарантируется.

+ +

{{PreviousNext("Web/API/Canvas_API/Tutorial/Applying_styles_and_colors", "Web/API/Canvas_API/Tutorial/Using_images")}}

diff --git a/files/ru/web/api/canvas_api/tutorial/using_images/index.html b/files/ru/web/api/canvas_api/tutorial/using_images/index.html new file mode 100644 index 0000000000..3ce4b8384e --- /dev/null +++ b/files/ru/web/api/canvas_api/tutorial/using_images/index.html @@ -0,0 +1,333 @@ +--- +title: Использование изображений +slug: Web/API/Canvas_API/Tutorial/Использование_изображений +tags: + - Графика +translation_of: Web/API/Canvas_API/Tutorial/Using_images +--- +
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_text", "Web/API/Canvas_API/Tutorial/Трансформации")}}
+ +
+

До сих пор мы создавали наши собственные фигуры и применяли стили к ним. Одна из самых впечатляющих функций {{HTMLElement("canvas")}} это возможность использования изображений. Они могут быть использованы для динамического композитинга фото или как фоны графиков, для спрайтов в играх, и так далее. Внешние изображения могут быть использованы в любых поддерживаемых браузером форматах, таких как PNG, GIF, или JPEG. Вы можете даже использовать изображение, произведенное другими canvas элементами на той же странице как источник!

+
+ +

Импортирование изображений в canvas в основном состоит из 2 этапов:

+ +
    +
  1. Дав ссылку на {{domxref("HTMLImageElement")}} объект или для другого canvas элемента как источник. Также можно использовать изображение дав ссылку на URL.
  2. +
  3. Для рисования изображения на canvas используется функция drawImage().
  4. +
+ +

Давайте посмотрим как это сделать.

+ +

Использование изображений для рисования

+ +

Canvas API может использовать все перечисленные далее типы данных как источник изображения:

+ +
+
{{domxref("HTMLImageElement")}}
+
Эти изображения созданы, используя конструктор Image(), также как все{{HTMLElement("img")}} элементы.
+
{{domxref("HTMLVideoElement")}}
+
Используя HTML {{HTMLElement("video")}} элемент как источник изображения захватывает текущий кадр из видео и использует его как изображение.
+
{{domxref("HTMLCanvasElement")}}
+
Вы можете использовать другой {{HTMLElement("canvas")}} элемент как источник изображения.
+
+ +

Эти источники совместно именуемые по типу {{domxref("CanvasImageSource")}}.

+ +

Есть несколько способов, чтобы получить изображения для использования на холсте.

+ +

Использование изображений из той же страницы

+ +

Мы можем получить ссылку на изображение, на той же странице, на canvas с используя  один из способов: 

+ + + +

Использование изображений из других доменов

+ +

Использование {{htmlattrxref("crossorigin", "img")}} атрибута {{HTMLElement("img")}} элемент (отображается  {{domxref("HTMLImageElement.crossOrigin")}} свойства), вы можете запросить разрешение на загрузку другого домена для использования в drawImage(). Если хостинг домен разрешает доступ к междоменному изображению, то изображение может быть использовано в вашем canvas без  without tainting it;иначе он может испортить ваш canvas.

+ +

Использование других canvas элементов

+ +

Как и с обычными изображениями, мы можем получить доступ к другим canvas элементам используя либо {{domxref("document.getElementsByTagName()")}} либо {{domxref("document.getElementById()")}} метод. Проверьте, что в canvas источнике уже что-то нарисовано, прежде чем использовать его в целевом изображении canvas.

+ +

Одним из удобных способов было бы использование второго элемента canvas  в качестве миниатюры другого большего изображения canvas.

+ +

Создание изображений с нуля

+ +

Другой способ это создать новые {{domxref("HTMLImageElement")}} объекты в нашем скрипте.  Чтобы это сделать, вы можете использовать удобный Image() конструктор:

+ +
var img = new Image();   // Создает новый элемент изображения
+img.src = 'myImage.png'; // Устанавливает путь
+
+ +

Когда этот скрипт выполнится, изображение начнет загружаться.

+ +

Если вы попытаетесь вызвать функцию drawImage() перед тем как изображение загрузится, то скрипт ничего не сделает (или, в старых браузерах, может даже выдать исключение). Поэтому вам необходимо использовать событие load, чтобы вы не пытались сделать это прежде, чем изображение загрузится:

+ +
var img = new Image();   // Создает новое изображение
+img.addEventListener("load", function() {
+  // здесь выполняет drawImage функцию
+}, false);
+img.src = 'myImage.png'; // Устанавливает источник файла
+
+ +

Если вы используете только одно стороннее изображение, то этот метод может быть хорошим примером, но если нужно следить за несколькими изображениями, то необходимо придумать что-то более умное. Хотя поиски тактики проверки загрузки изображений выходят за пределы этого обучающего курса,  вы должны об этом помнить.

+ +

Вложение изображения с помощью данных: URL

+ +

Другой возможный способ включить изображение это через data: url. Data URLs позволяет вам полностью определить изображение как Base64 кодированную строку символов прямо в ваш код.

+ +
var img = new Image();   // Создает новый элемент img
+img.src = 'data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==';
+
+ +

Одним из преимуществ data URLs  это то что полученное изображение доступно сразу без других запросов туда-обратно на сервер. Другое потенциальное преимущество в том, что также можно инкапсулировать всё в одном файле все ваши CSS, JavaScript, HTML, и изображения, что делает его более портативным в других местах.

+ +

Некоторые недостатки этого метода в том что ваше изображение не кешировано, и для изображений с большим размером кодированние url может стать очень долгим процессом.

+ +

Использование кадров из видео

+ +

Вы также можете использовать кадры из видео представленных {{HTMLElement("video")}} элементом (даже если видео не видно). Например, если у вас есть  {{HTMLElement("video")}} элемент с  ID "myvideo", вы можете сделать:

+ +
function getMyVideo() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext) {
+    var ctx = canvas.getContext('2d');
+
+    return document.getElementById('myvideo');
+  }
+}
+
+ +

Эта функция вернет {{domxref("HTMLVideoElement")}} объект для этого видео, который, как мы упоминали ранее, является одним из объектов, который можно использовать как CanvasImageSource.

+ +

Рисование изображений

+ +

Как только мы получили ссылку на источник объекта изображения, мы можем использовать метод drawImage() для включения его в  canvas. Как мы увидим далее, метод drawImage() перегружен и у него есть несколько вариантов. В базовом варианте он выглядит как:

+ +
+
{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, x, y)")}}
+
Рисует  изображение, указанное в CanvasImageSource в координатах  (x, y).
+
+ +
+

SVG изображения должны указывать ширину и высоту корневого  <svg> элемента.

+
+ +

Пример: Простой линейный график

+ +

В следующем примере, мы будем использовать внешнее изображение в качестве фона для небольшого линейного графика. Использование фонов может сделать ваш скрипт значительно меньше, потому что мы можем избежать необходимости писать код для создания фона. В этом примере мы используем только один образ, поэтому я использую обработчик событий изображения объекта загрузки для выполнения операторов рисования. drawImage() метод определяющий место фона с координатами (0, 0), которые привязаны к верхнему левому углу canvas.

+ + + +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  var img = new Image();
+  img.onload = function(){
+    ctx.drawImage(img,0,0);
+    ctx.beginPath();
+    ctx.moveTo(30,96);
+    ctx.lineTo(70,66);
+    ctx.lineTo(103,76);
+    ctx.lineTo(170,15);
+    ctx.stroke();
+  };
+  img.src = 'https://mdn.mozillademos.org/files/5395/backdrop.png';
+}
+ +

Получившийся график выглядит так:

+ +

{{EmbedLiveSample("Example_A_simple_line_graph", 220, 160, "https://mdn.mozillademos.org/files/206/Canvas_backdrop.png")}}

+ +

Изменение размеров

+ +

Второй вариант метода drawImage() добавляет два новых параметра и позволяет разместить изображение в  canvas с измененными размерами.

+ +
+
{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, x, y, width, height)")}}
+
Это добавляет параметр ширины и высоты, которые указывают до какого размера нужно изменить изображение при рисовании его в  canvas.
+
+ +

Пример: Тайлинг изображения

+ +

В этом примере, мы будем использовать изображение в качестве обоев и повторим его в canvas несколько раз. Это может быть сделано просто через цикл, располагая измененные изображения на разных позициях. В коде внизу, первый цикл for проходит по рядам. Второй цикл for проходит по колонкам. Изображение уменьшено на треть от реального размера, которое было  50x38 пикселей.

+ +
+

Обратите внимание: Изображения могут стать размытыми, при большом увеличении или зернистыми при значительном уменьшении. Возможно, лучше всего не изменять размеры изображения, если на них есть текст, который должен остаться читаемым. 

+
+ + + +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  var img = new Image();
+  img.onload = function(){
+    for (var i=0;i<4;i++){
+      for (var j=0;j<3;j++){
+        ctx.drawImage(img,j*50,i*38,50,38);
+      }
+    }
+  };
+  img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg';
+}
+ +

Получившийся рисунок canvas выглядит так:

+ +

{{EmbedLiveSample("Example_Tiling_an_image", 160, 160, "https://mdn.mozillademos.org/files/251/Canvas_scale_image.png")}}

+ +

Нарезка

+ +

У третьего и последнего варианта метода drawImage() в дополнении к источнику изображения есть еще восемь параметров . Он позволяет нам вырезать кусок из изображения, затем изменить его размер и нарисовать его в canvas.

+ +
+
{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)")}}
+
В данном изображении, эта функция берет фрагмент из изображения, в виде прямоугольника, левый верхний угол которого -  (sx, sy), ширина и высота -  sWidth и sHeight и рисует  в  canvas, располагая его в точке  (dx, dy) и изменяя его размер на указанные величины в  dWidth и dHeight.
+
+ +

Чтобы понять что  делает нарезка, можно посмотреть на изображение справа. Первые четыре параметра определяют местоположение и размер фрагмента исходного изображения.  Последние четыре параметра определяют прямоугольник, в который будет вписано изображение на целевом рисунке  canvas.

+ +

Нарезка может быть полезным инструментом, когда вы захотите сделать композицию.  Вы могли бы собрать все элементы в одном файле изображения и использовать этот метод для создания композиции. Например, если вы захотите сделать график, вы могли бы сделать PNG изображение, содержащее все необходимые тексты в одном файле и в зависимости от ваших данных, могли бы достаточно просто изменять график. Другим преимуществом является то, что нет необходимости загружать каждое изображение по отдельности, получив возможность увеличить скорость загрузки.

+ +

Пример: Обрамление изображения

+ +

В этом примере, мы будем использовать того же носорога, что и в предыдущем примере, но мы отрежем его голову и включим ее в рамку. Изображение рамки это 24-х битный PNG, который включает падающую тень. Так как в 24-х битные PNG изображения включается полный 8-ми битный альфа-канал, в отличие от GIF и 8-битных PNG изображений, он может быть помещен в любой фон, без беспокойства о матовом цвете. 

+ +
<html>
+ <body onload="draw();">
+   <canvas id="canvas" width="150" height="150"></canvas>
+   <div style="display:none;">
+     <img id="source" src="https://mdn.mozillademos.org/files/5397/rhino.jpg" width="300" height="227">
+     <img id="frame" src="https://mdn.mozillademos.org/files/242/Canvas_picture_frame.png" width="132" height="150">
+   </div>
+ </body>
+</html>
+
+ +
function draw() {
+  var canvas = document.getElementById('canvas');
+  var ctx = canvas.getContext('2d');
+
+  // Рисуем фрагмент
+  ctx.drawImage(document.getElementById('source'),
+                33, 71, 104, 124, 21, 20, 87, 104);
+
+  // Рисуем рамку
+  ctx.drawImage(document.getElementById('frame'),0,0);
+}
+ +

В этот раз мы применили другой способ загрузки изображения. Вместо загрузки методом создания новых {{domxref("HTMLImageElement")}} объектов, мы включили их как  {{HTMLElement("img")}} тэги прямо в наш HTML файл и из них выбрали изображения. Изображения скрыты с помощью  CSS свойства {{cssxref("display")}}, установленного в "none" для этих изображений.

+ +

{{EmbedLiveSample("Example_Framing_an_image", 160, 160, "https://mdn.mozillademos.org/files/226/Canvas_drawimage2.jpg")}}

+ +

Скрипт, сам по себе, очень простой. Каждому {{HTMLElement("img")}} присвоен атрибут ID, который  делает удобным их выбор с использованием {{domxref("document.getElementById()")}}. Потом мы просто используем функцию  drawImage(), чтобы из первого изображения вырезать фрагмент носорога и вставить его в canvas, затем рисуем рамку сверху, используя второй вызов функции drawImage().

+ +

Пример галереи искусства

+ +

В последнем примере этой главы, мы построим небольшую галлерею искусств. Галерея состоит из таблицы, включающей несколько изображений. Когда страница загрузится,  {{HTMLElement("canvas")}}  элемент вставится в каждое изображение, а вокруг будет нарисована рамка. 

+ +

В этом случае, у каждого изображения фиксированная ширина и высота, такая же, как и у рамки нарисованной вокруг них.  Вы могли бы усовершенствовать этот скрипт так, чтобы он использовал ширину и высоту изображения, чтобы рамка идеально его окружила.

+ +

Код ниже должен говорить сам за себя. Мы проходим циклом через {{domxref("document.images")}} контейнер и соответственно добавляем новые элементы  canvas. Возможно следует упомянуть для тех, кто не слишком хорошо знаком с DOM, что для этого используется {{domxref("Node.insertBefore")}} метод. insertBefore() это метод родительского узла (ячейки таблицы) элемента (изображения) перед которым мы хотим вставить наш новый узел  (элемент canvas).

+ +
<html>
+ <body onload="draw();">
+     <table>
+      <tr>
+        <td><img src="https://mdn.mozillademos.org/files/5399/gallery_1.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5401/gallery_2.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5403/gallery_3.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5405/gallery_4.jpg"></td>
+      </tr>
+      <tr>
+        <td><img src="https://mdn.mozillademos.org/files/5407/gallery_5.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5409/gallery_6.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5411/gallery_7.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5413/gallery_8.jpg"></td>
+      </tr>
+     </table>
+     <img id="frame" src="https://mdn.mozillademos.org/files/242/Canvas_picture_frame.png" width="132" height="150">
+ </body>
+</html>
+
+ +

И сюда какую-нибудь CSS для украшения:

+ +
body {
+  background: 0 -100px repeat-x url(https://mdn.mozillademos.org/files/5415/bg_gallery.png) #4F191A;
+  margin: 10px;
+}
+
+img {
+  display: none;
+}
+
+table {
+  margin: 0 auto;
+}
+
+td {
+  padding: 15px;
+}
+
+ +

Связывая все вместе  JavaScript рисует наши изображения в рамках:

+ +
function draw() {
+
+  // Цикл по всем изображениям
+  for (var i=0;i<document.images.length;i++){
+
+    // Не добавляет canvas для изображения рамки
+    if (document.images[i].getAttribute('id')!='frame'){
+
+      // Создает элемент canvas
+      var canvas = document.createElement('canvas');
+      canvas.setAttribute('width',132);
+      canvas.setAttribute('height',150);
+
+      // Вставляет перед изображением
+      document.images[i].parentNode.insertBefore(canvas,document.images[i]);
+
+      var ctx = canvas.getContext('2d');
+
+      // Рисует изображение в canvas
+      ctx.drawImage(document.images[i],15,20);
+
+      // Добавляет рамку
+      ctx.drawImage(document.getElementById('frame'),0,0);
+    }
+  }
+}
+ +

{{EmbedLiveSample("Art_gallery_example", 725, 400)}}

+ +

Контроль изменений размеров изображения

+ +

Как было отмечено ранее, изменение размеров изображений может привести к размытости или к шуму в процессе преобразования. Вы можете использовать контекст рисования {{domxref("CanvasRenderingContext2D.imageSmoothingEnabled", "imageSmoothingEnabled")}} свойства, чтобы контролировать использование сглаживающего алгоритма, когда изменяющиеся изображения в вашем контексте. Обычно это свойство установлено в  true, означая, что изображения будут сглажены во время изменения размеров. Вы можете отключить это свойство так:

+ +
ctx.mozImageSmoothingEnabled = false;
+ctx.webkitImageSmoothingEnabled = false;
+ctx.msImageSmoothingEnabled = false;
+ctx.imageSmoothingEnabled = false;
+
+ +

{{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_text", "Web/API/Canvas_API/Tutorial/Transformations")}}

diff --git "a/files/ru/web/api/canvas_api/tutorial/\320\270\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\320\265_\320\270\320\267\320\276\320\261\321\200\320\260\320\266\320\265\320\275\320\270\320\271/index.html" "b/files/ru/web/api/canvas_api/tutorial/\320\270\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\320\265_\320\270\320\267\320\276\320\261\321\200\320\260\320\266\320\265\320\275\320\270\320\271/index.html" deleted file mode 100644 index 3ce4b8384e..0000000000 --- "a/files/ru/web/api/canvas_api/tutorial/\320\270\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\320\265_\320\270\320\267\320\276\320\261\321\200\320\260\320\266\320\265\320\275\320\270\320\271/index.html" +++ /dev/null @@ -1,333 +0,0 @@ ---- -title: Использование изображений -slug: Web/API/Canvas_API/Tutorial/Использование_изображений -tags: - - Графика -translation_of: Web/API/Canvas_API/Tutorial/Using_images ---- -
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_text", "Web/API/Canvas_API/Tutorial/Трансформации")}}
- -
-

До сих пор мы создавали наши собственные фигуры и применяли стили к ним. Одна из самых впечатляющих функций {{HTMLElement("canvas")}} это возможность использования изображений. Они могут быть использованы для динамического композитинга фото или как фоны графиков, для спрайтов в играх, и так далее. Внешние изображения могут быть использованы в любых поддерживаемых браузером форматах, таких как PNG, GIF, или JPEG. Вы можете даже использовать изображение, произведенное другими canvas элементами на той же странице как источник!

-
- -

Импортирование изображений в canvas в основном состоит из 2 этапов:

- -
    -
  1. Дав ссылку на {{domxref("HTMLImageElement")}} объект или для другого canvas элемента как источник. Также можно использовать изображение дав ссылку на URL.
  2. -
  3. Для рисования изображения на canvas используется функция drawImage().
  4. -
- -

Давайте посмотрим как это сделать.

- -

Использование изображений для рисования

- -

Canvas API может использовать все перечисленные далее типы данных как источник изображения:

- -
-
{{domxref("HTMLImageElement")}}
-
Эти изображения созданы, используя конструктор Image(), также как все{{HTMLElement("img")}} элементы.
-
{{domxref("HTMLVideoElement")}}
-
Используя HTML {{HTMLElement("video")}} элемент как источник изображения захватывает текущий кадр из видео и использует его как изображение.
-
{{domxref("HTMLCanvasElement")}}
-
Вы можете использовать другой {{HTMLElement("canvas")}} элемент как источник изображения.
-
- -

Эти источники совместно именуемые по типу {{domxref("CanvasImageSource")}}.

- -

Есть несколько способов, чтобы получить изображения для использования на холсте.

- -

Использование изображений из той же страницы

- -

Мы можем получить ссылку на изображение, на той же странице, на canvas с используя  один из способов: 

- - - -

Использование изображений из других доменов

- -

Использование {{htmlattrxref("crossorigin", "img")}} атрибута {{HTMLElement("img")}} элемент (отображается  {{domxref("HTMLImageElement.crossOrigin")}} свойства), вы можете запросить разрешение на загрузку другого домена для использования в drawImage(). Если хостинг домен разрешает доступ к междоменному изображению, то изображение может быть использовано в вашем canvas без  without tainting it;иначе он может испортить ваш canvas.

- -

Использование других canvas элементов

- -

Как и с обычными изображениями, мы можем получить доступ к другим canvas элементам используя либо {{domxref("document.getElementsByTagName()")}} либо {{domxref("document.getElementById()")}} метод. Проверьте, что в canvas источнике уже что-то нарисовано, прежде чем использовать его в целевом изображении canvas.

- -

Одним из удобных способов было бы использование второго элемента canvas  в качестве миниатюры другого большего изображения canvas.

- -

Создание изображений с нуля

- -

Другой способ это создать новые {{domxref("HTMLImageElement")}} объекты в нашем скрипте.  Чтобы это сделать, вы можете использовать удобный Image() конструктор:

- -
var img = new Image();   // Создает новый элемент изображения
-img.src = 'myImage.png'; // Устанавливает путь
-
- -

Когда этот скрипт выполнится, изображение начнет загружаться.

- -

Если вы попытаетесь вызвать функцию drawImage() перед тем как изображение загрузится, то скрипт ничего не сделает (или, в старых браузерах, может даже выдать исключение). Поэтому вам необходимо использовать событие load, чтобы вы не пытались сделать это прежде, чем изображение загрузится:

- -
var img = new Image();   // Создает новое изображение
-img.addEventListener("load", function() {
-  // здесь выполняет drawImage функцию
-}, false);
-img.src = 'myImage.png'; // Устанавливает источник файла
-
- -

Если вы используете только одно стороннее изображение, то этот метод может быть хорошим примером, но если нужно следить за несколькими изображениями, то необходимо придумать что-то более умное. Хотя поиски тактики проверки загрузки изображений выходят за пределы этого обучающего курса,  вы должны об этом помнить.

- -

Вложение изображения с помощью данных: URL

- -

Другой возможный способ включить изображение это через data: url. Data URLs позволяет вам полностью определить изображение как Base64 кодированную строку символов прямо в ваш код.

- -
var img = new Image();   // Создает новый элемент img
-img.src = 'data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==';
-
- -

Одним из преимуществ data URLs  это то что полученное изображение доступно сразу без других запросов туда-обратно на сервер. Другое потенциальное преимущество в том, что также можно инкапсулировать всё в одном файле все ваши CSS, JavaScript, HTML, и изображения, что делает его более портативным в других местах.

- -

Некоторые недостатки этого метода в том что ваше изображение не кешировано, и для изображений с большим размером кодированние url может стать очень долгим процессом.

- -

Использование кадров из видео

- -

Вы также можете использовать кадры из видео представленных {{HTMLElement("video")}} элементом (даже если видео не видно). Например, если у вас есть  {{HTMLElement("video")}} элемент с  ID "myvideo", вы можете сделать:

- -
function getMyVideo() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext) {
-    var ctx = canvas.getContext('2d');
-
-    return document.getElementById('myvideo');
-  }
-}
-
- -

Эта функция вернет {{domxref("HTMLVideoElement")}} объект для этого видео, который, как мы упоминали ранее, является одним из объектов, который можно использовать как CanvasImageSource.

- -

Рисование изображений

- -

Как только мы получили ссылку на источник объекта изображения, мы можем использовать метод drawImage() для включения его в  canvas. Как мы увидим далее, метод drawImage() перегружен и у него есть несколько вариантов. В базовом варианте он выглядит как:

- -
-
{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, x, y)")}}
-
Рисует  изображение, указанное в CanvasImageSource в координатах  (x, y).
-
- -
-

SVG изображения должны указывать ширину и высоту корневого  <svg> элемента.

-
- -

Пример: Простой линейный график

- -

В следующем примере, мы будем использовать внешнее изображение в качестве фона для небольшого линейного графика. Использование фонов может сделать ваш скрипт значительно меньше, потому что мы можем избежать необходимости писать код для создания фона. В этом примере мы используем только один образ, поэтому я использую обработчик событий изображения объекта загрузки для выполнения операторов рисования. drawImage() метод определяющий место фона с координатами (0, 0), которые привязаны к верхнему левому углу canvas.

- - - -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  var img = new Image();
-  img.onload = function(){
-    ctx.drawImage(img,0,0);
-    ctx.beginPath();
-    ctx.moveTo(30,96);
-    ctx.lineTo(70,66);
-    ctx.lineTo(103,76);
-    ctx.lineTo(170,15);
-    ctx.stroke();
-  };
-  img.src = 'https://mdn.mozillademos.org/files/5395/backdrop.png';
-}
- -

Получившийся график выглядит так:

- -

{{EmbedLiveSample("Example_A_simple_line_graph", 220, 160, "https://mdn.mozillademos.org/files/206/Canvas_backdrop.png")}}

- -

Изменение размеров

- -

Второй вариант метода drawImage() добавляет два новых параметра и позволяет разместить изображение в  canvas с измененными размерами.

- -
-
{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, x, y, width, height)")}}
-
Это добавляет параметр ширины и высоты, которые указывают до какого размера нужно изменить изображение при рисовании его в  canvas.
-
- -

Пример: Тайлинг изображения

- -

В этом примере, мы будем использовать изображение в качестве обоев и повторим его в canvas несколько раз. Это может быть сделано просто через цикл, располагая измененные изображения на разных позициях. В коде внизу, первый цикл for проходит по рядам. Второй цикл for проходит по колонкам. Изображение уменьшено на треть от реального размера, которое было  50x38 пикселей.

- -
-

Обратите внимание: Изображения могут стать размытыми, при большом увеличении или зернистыми при значительном уменьшении. Возможно, лучше всего не изменять размеры изображения, если на них есть текст, который должен остаться читаемым. 

-
- - - -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  var img = new Image();
-  img.onload = function(){
-    for (var i=0;i<4;i++){
-      for (var j=0;j<3;j++){
-        ctx.drawImage(img,j*50,i*38,50,38);
-      }
-    }
-  };
-  img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg';
-}
- -

Получившийся рисунок canvas выглядит так:

- -

{{EmbedLiveSample("Example_Tiling_an_image", 160, 160, "https://mdn.mozillademos.org/files/251/Canvas_scale_image.png")}}

- -

Нарезка

- -

У третьего и последнего варианта метода drawImage() в дополнении к источнику изображения есть еще восемь параметров . Он позволяет нам вырезать кусок из изображения, затем изменить его размер и нарисовать его в canvas.

- -
-
{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)")}}
-
В данном изображении, эта функция берет фрагмент из изображения, в виде прямоугольника, левый верхний угол которого -  (sx, sy), ширина и высота -  sWidth и sHeight и рисует  в  canvas, располагая его в точке  (dx, dy) и изменяя его размер на указанные величины в  dWidth и dHeight.
-
- -

Чтобы понять что  делает нарезка, можно посмотреть на изображение справа. Первые четыре параметра определяют местоположение и размер фрагмента исходного изображения.  Последние четыре параметра определяют прямоугольник, в который будет вписано изображение на целевом рисунке  canvas.

- -

Нарезка может быть полезным инструментом, когда вы захотите сделать композицию.  Вы могли бы собрать все элементы в одном файле изображения и использовать этот метод для создания композиции. Например, если вы захотите сделать график, вы могли бы сделать PNG изображение, содержащее все необходимые тексты в одном файле и в зависимости от ваших данных, могли бы достаточно просто изменять график. Другим преимуществом является то, что нет необходимости загружать каждое изображение по отдельности, получив возможность увеличить скорость загрузки.

- -

Пример: Обрамление изображения

- -

В этом примере, мы будем использовать того же носорога, что и в предыдущем примере, но мы отрежем его голову и включим ее в рамку. Изображение рамки это 24-х битный PNG, который включает падающую тень. Так как в 24-х битные PNG изображения включается полный 8-ми битный альфа-канал, в отличие от GIF и 8-битных PNG изображений, он может быть помещен в любой фон, без беспокойства о матовом цвете. 

- -
<html>
- <body onload="draw();">
-   <canvas id="canvas" width="150" height="150"></canvas>
-   <div style="display:none;">
-     <img id="source" src="https://mdn.mozillademos.org/files/5397/rhino.jpg" width="300" height="227">
-     <img id="frame" src="https://mdn.mozillademos.org/files/242/Canvas_picture_frame.png" width="132" height="150">
-   </div>
- </body>
-</html>
-
- -
function draw() {
-  var canvas = document.getElementById('canvas');
-  var ctx = canvas.getContext('2d');
-
-  // Рисуем фрагмент
-  ctx.drawImage(document.getElementById('source'),
-                33, 71, 104, 124, 21, 20, 87, 104);
-
-  // Рисуем рамку
-  ctx.drawImage(document.getElementById('frame'),0,0);
-}
- -

В этот раз мы применили другой способ загрузки изображения. Вместо загрузки методом создания новых {{domxref("HTMLImageElement")}} объектов, мы включили их как  {{HTMLElement("img")}} тэги прямо в наш HTML файл и из них выбрали изображения. Изображения скрыты с помощью  CSS свойства {{cssxref("display")}}, установленного в "none" для этих изображений.

- -

{{EmbedLiveSample("Example_Framing_an_image", 160, 160, "https://mdn.mozillademos.org/files/226/Canvas_drawimage2.jpg")}}

- -

Скрипт, сам по себе, очень простой. Каждому {{HTMLElement("img")}} присвоен атрибут ID, который  делает удобным их выбор с использованием {{domxref("document.getElementById()")}}. Потом мы просто используем функцию  drawImage(), чтобы из первого изображения вырезать фрагмент носорога и вставить его в canvas, затем рисуем рамку сверху, используя второй вызов функции drawImage().

- -

Пример галереи искусства

- -

В последнем примере этой главы, мы построим небольшую галлерею искусств. Галерея состоит из таблицы, включающей несколько изображений. Когда страница загрузится,  {{HTMLElement("canvas")}}  элемент вставится в каждое изображение, а вокруг будет нарисована рамка. 

- -

В этом случае, у каждого изображения фиксированная ширина и высота, такая же, как и у рамки нарисованной вокруг них.  Вы могли бы усовершенствовать этот скрипт так, чтобы он использовал ширину и высоту изображения, чтобы рамка идеально его окружила.

- -

Код ниже должен говорить сам за себя. Мы проходим циклом через {{domxref("document.images")}} контейнер и соответственно добавляем новые элементы  canvas. Возможно следует упомянуть для тех, кто не слишком хорошо знаком с DOM, что для этого используется {{domxref("Node.insertBefore")}} метод. insertBefore() это метод родительского узла (ячейки таблицы) элемента (изображения) перед которым мы хотим вставить наш новый узел  (элемент canvas).

- -
<html>
- <body onload="draw();">
-     <table>
-      <tr>
-        <td><img src="https://mdn.mozillademos.org/files/5399/gallery_1.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5401/gallery_2.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5403/gallery_3.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5405/gallery_4.jpg"></td>
-      </tr>
-      <tr>
-        <td><img src="https://mdn.mozillademos.org/files/5407/gallery_5.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5409/gallery_6.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5411/gallery_7.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5413/gallery_8.jpg"></td>
-      </tr>
-     </table>
-     <img id="frame" src="https://mdn.mozillademos.org/files/242/Canvas_picture_frame.png" width="132" height="150">
- </body>
-</html>
-
- -

И сюда какую-нибудь CSS для украшения:

- -
body {
-  background: 0 -100px repeat-x url(https://mdn.mozillademos.org/files/5415/bg_gallery.png) #4F191A;
-  margin: 10px;
-}
-
-img {
-  display: none;
-}
-
-table {
-  margin: 0 auto;
-}
-
-td {
-  padding: 15px;
-}
-
- -

Связывая все вместе  JavaScript рисует наши изображения в рамках:

- -
function draw() {
-
-  // Цикл по всем изображениям
-  for (var i=0;i<document.images.length;i++){
-
-    // Не добавляет canvas для изображения рамки
-    if (document.images[i].getAttribute('id')!='frame'){
-
-      // Создает элемент canvas
-      var canvas = document.createElement('canvas');
-      canvas.setAttribute('width',132);
-      canvas.setAttribute('height',150);
-
-      // Вставляет перед изображением
-      document.images[i].parentNode.insertBefore(canvas,document.images[i]);
-
-      var ctx = canvas.getContext('2d');
-
-      // Рисует изображение в canvas
-      ctx.drawImage(document.images[i],15,20);
-
-      // Добавляет рамку
-      ctx.drawImage(document.getElementById('frame'),0,0);
-    }
-  }
-}
- -

{{EmbedLiveSample("Art_gallery_example", 725, 400)}}

- -

Контроль изменений размеров изображения

- -

Как было отмечено ранее, изменение размеров изображений может привести к размытости или к шуму в процессе преобразования. Вы можете использовать контекст рисования {{domxref("CanvasRenderingContext2D.imageSmoothingEnabled", "imageSmoothingEnabled")}} свойства, чтобы контролировать использование сглаживающего алгоритма, когда изменяющиеся изображения в вашем контексте. Обычно это свойство установлено в  true, означая, что изображения будут сглажены во время изменения размеров. Вы можете отключить это свойство так:

- -
ctx.mozImageSmoothingEnabled = false;
-ctx.webkitImageSmoothingEnabled = false;
-ctx.msImageSmoothingEnabled = false;
-ctx.imageSmoothingEnabled = false;
-
- -

{{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_text", "Web/API/Canvas_API/Tutorial/Transformations")}}

diff --git "a/files/ru/web/api/canvas_api/tutorial/\320\272\320\276\320\274\320\277\320\276\320\267\320\270\321\206\320\270\320\270/index.html" "b/files/ru/web/api/canvas_api/tutorial/\320\272\320\276\320\274\320\277\320\276\320\267\320\270\321\206\320\270\320\270/index.html" deleted file mode 100644 index 264cc7e544..0000000000 --- "a/files/ru/web/api/canvas_api/tutorial/\320\272\320\276\320\274\320\277\320\276\320\267\320\270\321\206\320\270\320\270/index.html" +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: Композиция и обрезка -slug: Web/API/Canvas_API/Tutorial/Композиции -tags: - - канвас -translation_of: Web/API/Canvas_API/Tutorial/Compositing ---- -
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Transformations", "Web/API/Canvas_API/Tutorial/Basic_animations")}}
- -
-

Во всех наших предыдущих примерах, фигуры всегда были нарисованы одна поверх другой. Это более чем достаточно для большинства ситуаций, но это ограничивает порядок, в котором построены композиционные формы. Однако, мы можем изменить это поведение, установив свойство globalCompositeOperation. Кроме того, свойства clip позволяет скрыть нежелательные части формы.

-
- -

globalCompositeOperation

- -

Мы можем не только рисовать новые фигуры за существующие формы, но мы также можем использовать его, чтобы замаскировать определенные участки, очистить разделы от холста (не ограничивается прямоугольниками, как{{domxref("CanvasRenderingContext2D.clearRect", "clearRect()")}} method does) и другое.

- -
-
{{domxref("CanvasRenderingContext2D.globalCompositeOperation", "globalCompositeOperation = type")}}
-
Это задает Тип операции композиции для применения при разработке новых форм, где Тип является строкой, идентифицирующей, какие из двенадцати операций композитинг в использовании.
-
- -

См.  примеры компоновки кода из следующих примеров.

- -

{{EmbedLiveSample("Compositing_example", 750, 6750, "" ,"Web/API/Canvas_API/Tutorial/Compositing/Example")}}

- -

Обрезка контуров

- -

Отсеченный контур похож на обычную форму холста, но он действует как маска, чтобы скрыть нежелательные части фигур. Это визуализируется на изображении справа. Форма красной звезды - наша отправочная дорожка. Все, что выходит за пределы этого пути, не будет нарисовано на холсте.

- -

Если мы сравниваем отсеченный контур со свойством globalCompositeOperation на изображении, мы видим два режима композитинга, которые достигают более или менее того же эффекта в исходном и исходном состоянии.   Наиболее важные различия между ними заключаются в том, что отсечение контура фактически  никогда не обращается к холсту и контур обрезки никогда не влияет добавление новых форм. Это делает обрезку контура идеальным для рисования нескольких фигур в ограниченной области.

- -

В главе о рисовании форм, я назвал только stroke() и fill() методы, но есть третий способ можно использовать с контурами, так называемый clip().

- -
-
{{domxref("CanvasRenderingContext2D.clip", "clip()")}}
-
Преобразует текущий выстраиваемый контур в отсечённый контур.
-
- -

Используйте clip() вместо closePath() для закрытия контура и его преобразования в отсечённый контур вместо создания заполняющего  или обрамляющего контура.

- -

По умолчанию элемент {{HTMLElement("canvas")}} использует отсечённый контур, который в точности совпадает по размеру с размером самого холста. Это означает, что никакого отсечения попросту не произойдёт.

- -

Пример обрезки

- -

В этом примере мы будем использовать круговую обрезку контура, чтобы ограничить рисование набора случайных звезд определенной областью.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  ctx.fillRect(0, 0, 150, 150);
-  ctx.translate(75, 75);
-
-  // Create a circular clipping path
-  ctx.beginPath();
-  ctx.arc(0, 0, 60, 0, Math.PI * 2, true);
-  ctx.clip();
-
-  // draw background
-  var lingrad = ctx.createLinearGradient(0, -75, 0, 75);
-  lingrad.addColorStop(0, '#232256');
-  lingrad.addColorStop(1, '#143778');
-
-  ctx.fillStyle = lingrad;
-  ctx.fillRect(-75, -75, 150, 150);
-
-  // draw stars
-  for (var j = 1; j < 50; j++) {
-    ctx.save();
-    ctx.fillStyle = '#fff';
-    ctx.translate(75 - Math.floor(Math.random() * 150),
-                  75 - Math.floor(Math.random() * 150));
-    drawStar(ctx, Math.floor(Math.random() * 4) + 2);
-    ctx.restore();
-  }
-
-}
-
-function drawStar(ctx, r) {
-  ctx.save();
-  ctx.beginPath();
-  ctx.moveTo(r, 0);
-  for (var i = 0; i < 9; i++) {
-    ctx.rotate(Math.PI / 5);
-    if (i % 2 === 0) {
-      ctx.lineTo((r / 0.525731) * 0.200811, 0);
-    } else {
-      ctx.lineTo(r, 0);
-    }
-  }
-  ctx.closePath();
-  ctx.fill();
-  ctx.restore();
-}
-
- - - -

В первых нескольких строках кода мы рисуем черный прямоугольник размером с холстом в качестве фона, а затем переводим начало координат в центр. Затем мы создаем круговой обтравочный контур, рисуя дугу и вызывающий clip(). Обрезанные контуры также являются частью состояния сохранения холста. Если бы мы хотели сохранить исходный обтравочный контур, мы могли бы сохранить состояние холста перед созданием нового.

- -

Все, что нарисовано после создания отсеченного контура, появится только внутри этого пути. Вы можете видеть это четко в линейном градиенте, который нарисован далее. После этого набирается набор из 50 случайно расположенных и масштабированных звезд, используя drawStar(). Снова звезды появляются только в пределах определенного обтравочного контура.

- -

{{EmbedLiveSample("A_clip_example", "180", "180", "https://mdn.mozillademos.org/files/208/Canvas_clip.png")}}

- -

{{PreviousNext("Web/API/Canvas_API/Tutorial/Transformations", "Web/API/Canvas_API/Tutorial/Basic_animations")}}

diff --git "a/files/ru/web/api/canvas_api/tutorial/\320\276\321\201\320\275\320\276\320\262\321\213_\320\260\320\275\320\270\320\274\320\260\321\206\320\270\320\270/index.html" "b/files/ru/web/api/canvas_api/tutorial/\320\276\321\201\320\275\320\276\320\262\321\213_\320\260\320\275\320\270\320\274\320\260\321\206\320\270\320\270/index.html" deleted file mode 100644 index a47b8b734e..0000000000 --- "a/files/ru/web/api/canvas_api/tutorial/\320\276\321\201\320\275\320\276\320\262\321\213_\320\260\320\275\320\270\320\274\320\260\321\206\320\270\320\270/index.html" +++ /dev/null @@ -1,308 +0,0 @@ ---- -title: Простые анимации -slug: Web/API/Canvas_API/Tutorial/Основы_анимации -tags: - - HTML - - HTML5 - - Графика - - Обучение - - Средний уровень - - Холст -translation_of: Web/API/Canvas_API/Tutorial/Basic_animations ---- -
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Compositing", "Web/API/Canvas_API/Tutorial/Advanced_animations")}}
- -
-

Поскольку для управления элементами {{HTMLElement ("canvas")}} используется JavaScript, не составляет труда сделать (интерактивные) анимации. В этой главе мы рассмотрим, как делаются некоторые базовые анимации.

-
- -

Вероятно, самым большим ограничением является то, что когда фигура нарисована, её уже нельзя двигать. Чтобы изобразить движение нам нужно перерисовать фигуру и всё, что было нарисовано до неё. Перерисовка сложных кадров занимает много времени, и производительность сильно зависит от скорости компьютера, на котором она выполняется.

- -

Основные шаги анимации

- -

Ниже перечислены необходимые шаги для того, чтобы нарисовать кадр:

- -
    -
  1. Очистить canvas
    - Если фигура, которую вы собираетесь нарисовать, не занимает всю площадь canvas (как фон, например), то всё что было нарисовано ранее необходимо стереть. Проще всего это сделать при помощи метода {{domxref("CanvasRenderingContext2D.clearRect", "clearRect()")}}.
  2. -
  3. Сохранить изначальное состояние canvas
    - Если вы изменяете любые настройки (такие как стили, трансформации и т.п.), которые затрагивают состояние canvas и вы хотите убедиться, что оригинальное состояние используется каждый раз, когда был отрисован кадр, то вам следует сохранить это оригинальное состояние.
  4. -
  5. Нарисовать анимированные фигуры
    - Шаг на котором вы собственно отрисовываете кадр.
  6. -
  7. Восстановить состояние canvas
    - Если вы сохраняли состояние, восстановите его, прежде чем отрисовывать новый кадр.
  8. -
- -

Управление анимацией

- -

Фигуры отрисовываются на canvas либо напрямую — при помощи методов canvas, либо с помощью сторонних функций. В нормальной ситуации результат станет виден на canvas после окончания выполнения скрипта. К примеру, цикл for использовать для анимации нельзя. 

- -

Это значит, нужен способ выполнения функций отрисовки через интервалы времени. Есть два способа для управления такой анимацией.

- -

Запланированные обновления

- -

Первый — это функции {{domxref("window.setInterval()")}}, {{domxref("window.setTimeout()")}}, и {{domxref("window.requestAnimationFrame()")}}, которые могут быть использованы для вызова некоторой функции, через заданный промежуток времени.

- -
-
{{domxref("WindowTimers.setInterval", "setInterval(function, delay)")}}
-
Начинает периодически исполнять функцию function каждые delay миллисекунд.
-
{{domxref("WindowTimers.setTimeout", "setTimeout(function, delay)")}}
-
Запускает выполнение указанной функции function через delay миллисекунд.
-
{{domxref("Window.requestAnimationFrame()", "requestAnimationFrame(callback)")}}
-
Сообщает браузеру, что вы хотите выполнить анимацию, и запрашивает, чтобы браузер вызвал указанную функцию callback для обновления анимации перед следующей перерисовкой.
-
- -

Если вы не планируете никакого взаимодействия с пользователем, вы можете использовать функцию setInterval() , которая многократно выполняет, предоставленный ей код. Если же вы планиуете создать игру, в которой контроль анимации осуществляется мышью или клавиатурой, то необходимо использовать  setTimeout(). Установив {{domxref("EventListener")}}, вы можете перехватываете любые действия пользователя и запустить соответствующие функции анимации.

- -
-

В примерах ниже мы будем использовать функцию {{domxref("window.requestAnimationFrame()")}} для контроля анимации. Функция requestAnimationFrame является более эффективной для создания анимации, так как новая итерация вызывается, когда система готова к отрисовке нового кадра. Количество вызовов в секунду примерно равно 60 и уменьшается, когда вкладка неактивна. Для более подробного изучения цикла анимации, особенно для игр, прочитайте статью Анатомия видеоигр В Зоне разработке игр.

-
- -

Анимированная солнечная система

- -

В этом примере анимируется небольшая модель солнечной системы.

- -
var sun = new Image();
-var moon = new Image();
-var earth = new Image();
-function init(){
-  sun.src = 'https://mdn.mozillademos.org/files/1456/Canvas_sun.png';
-  moon.src = 'https://mdn.mozillademos.org/files/1443/Canvas_moon.png';
-  earth.src = 'https://mdn.mozillademos.org/files/1429/Canvas_earth.png';
-  window.requestAnimationFrame(draw);
-}
-
-function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  ctx.globalCompositeOperation = 'destination-over';
-  ctx.clearRect(0,0,300,300); // clear canvas
-
-  ctx.fillStyle = 'rgba(0,0,0,0.4)';
-  ctx.strokeStyle = 'rgba(0,153,255,0.4)';
-  ctx.save();
-  ctx.translate(150,150);
-
-  // Earth
-  var time = new Date();
-  ctx.rotate( ((2*Math.PI)/60)*time.getSeconds() + ((2*Math.PI)/60000)*time.getMilliseconds() );
-  ctx.translate(105,0);
-  ctx.fillRect(0,-12,50,24); // Shadow
-  ctx.drawImage(earth,-12,-12);
-
-  // Moon
-  ctx.save();
-  ctx.rotate( ((2*Math.PI)/6)*time.getSeconds() + ((2*Math.PI)/6000)*time.getMilliseconds() );
-  ctx.translate(0,28.5);
-  ctx.drawImage(moon,-3.5,-3.5);
-  ctx.restore();
-
-  ctx.restore();
-
-  ctx.beginPath();
-  ctx.arc(150,150,105,0,Math.PI*2,false); // Earth orbit
-  ctx.stroke();
-
-  ctx.drawImage(sun,0,0,300,300);
-
-  window.requestAnimationFrame(draw);
-}
-
-init();
-
- - - -

{{EmbedLiveSample("An_animated_solar_system", "310", "310", "https://mdn.mozillademos.org/files/202/Canvas_animation1.png")}}

- -

Анимированные часы

- -

В этом примере создаются анимированные часы, показывающие правильное время.

- -
function clock(){
-  var now = new Date();
-  var ctx = document.getElementById('canvas').getContext('2d');
-  ctx.save();
-  ctx.clearRect(0,0,150,150);
-  ctx.translate(75,75);
-  ctx.scale(0.4,0.4);
-  ctx.rotate(-Math.PI/2);
-  ctx.strokeStyle = "black";
-  ctx.fillStyle = "white";
-  ctx.lineWidth = 8;
-  ctx.lineCap = "round";
-
-  // Hour marks
-  ctx.save();
-  for (var i=0;i<12;i++){
-    ctx.beginPath();
-    ctx.rotate(Math.PI/6);
-    ctx.moveTo(100,0);
-    ctx.lineTo(120,0);
-    ctx.stroke();
-  }
-  ctx.restore();
-
-  // Minute marks
-  ctx.save();
-  ctx.lineWidth = 5;
-  for (i=0;i<60;i++){
-    if (i%5!=0) {
-      ctx.beginPath();
-      ctx.moveTo(117,0);
-      ctx.lineTo(120,0);
-      ctx.stroke();
-    }
-    ctx.rotate(Math.PI/30);
-  }
-  ctx.restore();
-
-  var sec = now.getSeconds();
-  var min = now.getMinutes();
-  var hr  = now.getHours();
-  hr = hr>=12 ? hr-12 : hr;
-
-  ctx.fillStyle = "black";
-
-  // write Hours
-  ctx.save();
-  ctx.rotate( hr*(Math.PI/6) + (Math.PI/360)*min + (Math.PI/21600)*sec )
-  ctx.lineWidth = 14;
-  ctx.beginPath();
-  ctx.moveTo(-20,0);
-  ctx.lineTo(80,0);
-  ctx.stroke();
-  ctx.restore();
-
-  // write Minutes
-  ctx.save();
-  ctx.rotate( (Math.PI/30)*min + (Math.PI/1800)*sec )
-  ctx.lineWidth = 10;
-  ctx.beginPath();
-  ctx.moveTo(-28,0);
-  ctx.lineTo(112,0);
-  ctx.stroke();
-  ctx.restore();
-
-  // Write seconds
-  ctx.save();
-  ctx.rotate(sec * Math.PI/30);
-  ctx.strokeStyle = "#D40000";
-  ctx.fillStyle = "#D40000";
-  ctx.lineWidth = 6;
-  ctx.beginPath();
-  ctx.moveTo(-30,0);
-  ctx.lineTo(83,0);
-  ctx.stroke();
-  ctx.beginPath();
-  ctx.arc(0,0,10,0,Math.PI*2,true);
-  ctx.fill();
-  ctx.beginPath();
-  ctx.arc(95,0,10,0,Math.PI*2,true);
-  ctx.stroke();
-  ctx.fillStyle = "rgba(0,0,0,0)";
-  ctx.arc(0,0,3,0,Math.PI*2,true);
-  ctx.fill();
-  ctx.restore();
-
-  ctx.beginPath();
-  ctx.lineWidth = 14;
-  ctx.strokeStyle = '#325FA2';
-  ctx.arc(0,0,142,0,Math.PI*2,true);
-  ctx.stroke();
-
-  ctx.restore();
-
-  window.requestAnimationFrame(clock);
-}
-
-window.requestAnimationFrame(clock);
- - - -

{{EmbedLiveSample("An_animated_clock", "180", "180", "https://mdn.mozillademos.org/files/203/Canvas_animation2.png")}}

- -

Зацикленная панорама

- -

В этом примере панорама прокручивается слева направо. Мы используем фото национального парка Йосемити взятое из Википедии, но вы можете использовать любое изображение, большее элемента canvas.

- -
var img = new Image();
-
-// User Variables - customize these to change the image being scrolled, its
-// direction, and the speed.
-
-img.src = 'https://mdn.mozillademos.org/files/4553/Capitan_Meadows,_Yosemite_National_Park.jpg';
-var CanvasXSize = 800;
-var CanvasYSize = 200;
-var speed = 30; //lower is faster
-var scale = 1.05;
-var y = -4.5; //vertical offset
-
-// Main program
-
-var dx = 0.75;
-var imgW;
-var imgH;
-var x = 0;
-var clearX;
-var clearY;
-var ctx;
-
-img.onload = function() {
-    imgW = img.width*scale;
-    imgH = img.height*scale;
-    if (imgW > CanvasXSize) { x = CanvasXSize-imgW; } // image larger than canvas
-    if (imgW > CanvasXSize) { clearX = imgW; } // image larger than canvas
-    else { clearX = CanvasXSize; }
-    if (imgH > CanvasYSize) { clearY = imgH; } // image larger than canvas
-    else { clearY = CanvasYSize; }
-    //Get Canvas Element
-    ctx = document.getElementById('canvas').getContext('2d');
-    //Set Refresh Rate
-    return setInterval(draw, speed);
-}
-
-function draw() {
-    //Clear Canvas
-    ctx.clearRect(0,0,clearX,clearY);
-    //If image is <= Canvas Size
-    if (imgW <= CanvasXSize) {
-        //reset, start from beginning
-        if (x > (CanvasXSize)) { x = 0; }
-        //draw aditional image
-        if (x > (CanvasXSize-imgW)) { ctx.drawImage(img,x-CanvasXSize+1,y,imgW,imgH); }
-    }
-    //If image is > Canvas Size
-    else {
-        //reset, start from beginning
-        if (x > (CanvasXSize)) { x = CanvasXSize-imgW; }
-        //draw aditional image
-        if (x > (CanvasXSize-imgW)) { ctx.drawImage(img,x-imgW+1,y,imgW,imgH); }
-    }
-    //draw image
-    ctx.drawImage(img,x,y,imgW,imgH);
-    //amount to move
-    x += dx;
-}
-
- -

Заметьте, что ширина и высота должны совпадать  со значениями CanvasXZSize и CanvasYSize.

- -
<canvas id="canvas" width="800" height="200"></canvas>
- -

{{EmbedLiveSample("A_looping_panorama", "830", "230")}}

- -

Другие примеры

- -
-
A basic ray-caster
-
Хороший пример того, как сделать управляемую анимацию с клавиатуры.
-
Advanced animations
-
Мы рассмотрим некоторые продвинутые методы анимации и физику в следующей главе.
-
- -

{{PreviousNext("Web/API/Canvas_API/Tutorial/Compositing", "Web/API/Canvas_API/Tutorial/Advanced_animations")}}

diff --git "a/files/ru/web/api/canvas_api/tutorial/\320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\320\265_\321\201\321\202\320\270\320\273\320\265\320\271_\320\270_\321\206\320\262\320\265\321\202\320\276\320\262/index.html" "b/files/ru/web/api/canvas_api/tutorial/\320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\320\265_\321\201\321\202\320\270\320\273\320\265\320\271_\320\270_\321\206\320\262\320\265\321\202\320\276\320\262/index.html" deleted file mode 100644 index 2c9eeaae78..0000000000 --- "a/files/ru/web/api/canvas_api/tutorial/\320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\320\265_\321\201\321\202\320\270\320\273\320\265\320\271_\320\270_\321\206\320\262\320\265\321\202\320\276\320\262/index.html" +++ /dev/null @@ -1,726 +0,0 @@ ---- -title: Применение стилей и цветов -slug: Web/API/Canvas_API/Tutorial/Применение_стилей_и_цветов -translation_of: Web/API/Canvas_API/Tutorial/Applying_styles_and_colors ---- -
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_shapes", "Web/API/Canvas_API/Tutorial/Drawing_text")}}
- -
-

В главе о рисовании фигур, мы использовали для линий и заполнения только стили по умолчанию. Здесь мы будем исследовать опции canvas, которые мы имеем в нашем распоряжении, чтобы сделать наши рисунки немного более привлекательными. Вы узнаете, как добавлять различные цвета, стили линий, градиенты, узоры и тени вашим рисункам.

-
- -

Цвета

- -

До сих пор мы видели только методы рисования контекста. Если мы хотим применить цвета к фигуре, то есть два важных свойства, которые мы можем использовать: fillStyle и strokeStyle.

- -
-
{{domxref("CanvasRenderingContext2D.fillStyle", "fillStyle = color")}}
-
Устанавливает стиль для фона фигур.
-
{{domxref("CanvasRenderingContext2D.strokeStyle", "strokeStyle = color")}}
-
Устанавливает стиль контура фигуры. 
-
- -

color может быть цветом, (строка, представленная в CSS {{cssxref("<color>")}}), градиентом или паттерном. Градиенты и паттерны мы рассмотрим позже. По умолчанию цвет фона и контура  — черный (значение CSS цвета  #000000).

- -
-

На заметку: Когда вы устанавливаете  значения strokeStyle и/или fillStyle, то новое значение становится стандартным для всех фигур, которые будут нарисованы с этого момента. Когда вам нужен другой цвет, вы должны перезаписать значение в fillStyle или в strokeStyle для каждой фигуры.

-
- -

Чтобы строка color считалась валидной, она должна соответствовать CSS {{cssxref("<color>")}}. Далее приведены примеры того, как можно по-разному задать один и тот же цвет. 

- -
// these all set the fillStyle to 'orange'
-
-ctx.fillStyle = "orange";
-ctx.fillStyle = "#FFA500";
-ctx.fillStyle = "rgb(255,165,0)";
-ctx.fillStyle = "rgba(255,165,0,1)";
-
- -

Пример fillStyle

- -

В этом примере мы опять воспользуемся двойным циклом, чтобы нарисовать сетку из прямоугольников, каждый из которых имеет свой цвет. Окончательное изображение должно иметь вид, как показано на скриншоте. Здесь не происходит ничего сверхъестественного. Мы используем две переменные i и j для генерации уникального RGB цвета для каждого квадрата и изменяем только красные и зеленые значения. Синий канал представляет собой фиксированное значение. Путем изменения каналов вы можете генерировать всю палитру. Увеличив количество шагов вы можете достигнуть такого вида палитры, какая используется в Photoshop.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  for (var i=0;i<6;i++){
-    for (var j=0;j<6;j++){
-      ctx.fillStyle = 'rgb(' + Math.floor(255-42.5*i) + ',' +
-                       Math.floor(255-42.5*j) + ',0)';
-      ctx.fillRect(j*25,i*25,25,25);
-    }
-  }
-}
- - - -

Результат выглядит так:

- -

{{EmbedLiveSample("Пример_fillStyle", 160, 160, "https://mdn.mozillademos.org/files/5417/Canvas_fillstyle.png")}}

- -

Пример strokeStyle

- -

Этот пример похож на предыдущий, но мы используем свойство strokeStyle чтобы изменить цвета очертаний фигур. Так же мы используем метод arc() для рисования окружностей вместо квадратов.

- -
  function draw() {
-    var ctx = document.getElementById('canvas').getContext('2d');
-    for (var i=0;i<6;i++){
-      for (var j=0;j<6;j++){
-        ctx.strokeStyle = 'rgb(0,' + Math.floor(255-42.5*i) + ',' +
-                         Math.floor(255-42.5*j) + ')';
-        ctx.beginPath();
-        ctx.arc(12.5+j*25,12.5+i*25,10,0,Math.PI*2,true);
-        ctx.stroke();
-      }
-    }
-  }
-
- - - -

Результат выглядит так:

- -

{{EmbedLiveSample("Пример_strokeStyle", "180", "180", "https://mdn.mozillademos.org/files/253/Canvas_strokestyle.png")}}

- -

Прозрачность

- -

В дополнении к рисованию непрозрачных фигур, мы также можем рисовать прозрачные (полупрозрачные) фигуры.  Это делается через установку свойства globalAlpha или задачи полупрозрачного цвета фона или контура.

- -
-
{{domxref("CanvasRenderingContext2D.globalAlpha", "globalAlpha = transparencyValue")}}
-
Для применения, указывается значения прозрачности для всех будущих фигур, что будут нарисованы на canvas. Значение полупрозрачности могут быть между 0.0 (полная прозрачность) и 1.0 (полная непрозрачность). Значение 1.0 (полная непрозрачность) установлено по умолчанию.
-
- -

Свойство globalAlpha может быть использовано, если вы хотите рисовать формы с одинаковой прозрачностью, но в иной ситуации, обычно устанавливают прозрачность индивидуально к каждой форме, когда указывают их цвет.

- -

Так как свойства strokeStyle и fillStyle принимают цветовые значения rgba через CSS, мы можем использовать следующее обозначение  для назначения прозрачных цветов.

- -
// Assigning transparent colors to stroke and fill style
-
-ctx.strokeStyle = "rgba(255,0,0,0.5)";
-ctx.fillStyle = "rgba(255,0,0,0.5)";
-
- -

Функция rgba() похожа на функцию rgb(), но имеет один дополнительный параметр. Последний параметр устанавливает значение прозрачности для конкретного цвета. Действующий диапозон значений находится между 0.0 (полная прозрачность) и 1.0 (полная непрозрачность).

- -

Пример globalAlpha

- -

В данном примере мы нарисуем фон и четыре квадрата с различными цветами.  Сверху изображения будет выведен набор полупрозрачных кругов. Установим свойство globalAlpha значением 0.2, которое будет использовано для всех последующих форм. Каждый шаг цикла рисует круг с большим радиусом. По окончанию получим радиальный градиент. Накладывая еще больше кругов друг на друга, мы фактически сможем уменьшить прозрачность ранее нарисованных кругов. Увеличив счетчик итераций, при этом рисуя еще круги, мы сможем добиться исчезновение центра изображения.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  // фон изображения
-  ctx.fillStyle = '#FD0';
-  ctx.fillRect(0,0,75,75);
-  ctx.fillStyle = '#6C0';
-  ctx.fillRect(75,0,75,75);
-  ctx.fillStyle = '#09F';
-  ctx.fillRect(0,75,75,75);
-  ctx.fillStyle = '#F30';
-  ctx.fillRect(75,75,75,75);
-  ctx.fillStyle = '#FFF';
-
-  // устанавливаем значение прозрачности
-  ctx.globalAlpha = 0.2;
-
-  // Рисуем полупрозрачные круги
-  for (i=0;i<7;i++){
-    ctx.beginPath();
-    ctx.arc(75,75,10+10*i,0,Math.PI*2,true);
-    ctx.fill();
-  }
-}
- - - -

{{EmbedLiveSample("Пример_globalAlpha", "180", "180", "https://mdn.mozillademos.org/files/232/Canvas_globalalpha.png")}}

- -

Пример использования rgba()

- -

В этом втором примере мы делаем что-то похожее на предыдущее, но вместо рисования кругов друг над другом, я рисовал маленькие прямоугольники с увеличением непрозрачности. Использование rgba() добавляет контроля и гибкости, поскольку мы можем индивидуально настраивать стиль заливки и штриха.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // Нарисовать фон
-  ctx.fillStyle = 'rgb(255,221,0)';
-  ctx.fillRect(0,0,150,37.5);
-  ctx.fillStyle = 'rgb(102,204,0)';
-  ctx.fillRect(0,37.5,150,37.5);
-  ctx.fillStyle = 'rgb(0,153,255)';
-  ctx.fillRect(0,75,150,37.5);
-  ctx.fillStyle = 'rgb(255,51,0)';
-  ctx.fillRect(0,112.5,150,37.5);
-
-  // Нарисовать полупрозрачные прямоугольники
-  for (var i=0;i<10;i++){
-    ctx.fillStyle = 'rgba(255,255,255,'+(i+1)/10+')';
-    for (var j=0;j<4;j++){
-      ctx.fillRect(5+i*14,5+j*37.5,14,27.5);
-    }
-  }
-}
- - - -

{{EmbedLiveSample("Пример_использования_rgba()", "180", "180", "https://mdn.mozillademos.org/files/246/Canvas_rgba.png")}}

- -

Стили линий

- -

Есть несколько свойств, которые позволяют нам стилизовать линии.

- -
-
{{domxref("CanvasRenderingContext2D.lineWidth", "lineWidth = value")}}
-
Устанавливает ширину линий, рисуемых в будущем.
-
{{domxref("CanvasRenderingContext2D.lineCap", "lineCap = type")}}
-
Устанавливает внешний вид концов линий.
-
{{domxref("CanvasRenderingContext2D.lineJoin", "lineJoin = type")}}
-
Устанавливает внешний вид «углов», где встречаются линии.
-
{{domxref("CanvasRenderingContext2D.miterLimit", "miterLimit = value")}}
-
Устанавливает ограничение на митру, когда две линии соединяются под острым углом, чтобы вы могли контролировать её толщину.
-
{{domxref("CanvasRenderingContext2D.getLineDash", "getLineDash()")}}
-
Возвращает текущий массив тире штриховки, содержащий четное число неотрицательных чисел.
-
{{domxref("CanvasRenderingContext2D.setLineDash", "setLineDash(segments)")}}
-
Устанавливает текущий пунктир линии.
-
{{domxref("CanvasRenderingContext2D.lineDashOffset", "lineDashOffset = value")}}
-
Указывает, где следует начинать тире массива в строке.
-
- -

Вы лучше поймете, что они делают, глядя на приведенные ниже примеры.

- -

Пример lineWidth

- -

Это свойство задает толщину текущей строки. Значения должны быть положительными. По умолчанию для этого значения установлено 1.0 единицы.

- -

Ширина линии - это толщина хода, центрированного по данному пути. Другими словами, область, которая нарисована, простирается до половины ширины линии по обе стороны пути. Поскольку координаты холста не напрямую ссылаются на пиксели, особое внимание следует уделять получению четких горизонтальных и вертикальных линий.

- -

В приведенном ниже примере 10 прямых линий рисуются с увеличением ширины линий. Линия в крайнем левом углу - 1.0 единицы. Тем не менее, толщина левой и всех других линий нечетной ширины не выглядят четкими из-за позиционирования пути.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  for (var i = 0; i < 10; i++){
-    ctx.lineWidth = 1+i;
-    ctx.beginPath();
-    ctx.moveTo(5+i*14,5);
-    ctx.lineTo(5+i*14,140);
-    ctx.stroke();
-  }
-}
-
- - - -

{{EmbedLiveSample("Пример_lineWidth", "180", "180", "https://mdn.mozillademos.org/files/239/Canvas_linewidth.png")}}

- -

Получение четких строк требует понимания путей сглаживания. На рисунках ниже представлена сетка координат холста. Квадраты между сетками являются фактическими экранными пикселями. В первом изображении сетки ниже прямоугольник от (2, 1) до (5, 5) заполняется. Вся область между ними (светло-красный) падает на границы пикселей, поэтому полученный заполненный прямоугольник будет иметь четкие края.

- -

- -

Если вы рассмотрите путь от (3, 1) до (3, 5) с толщиной строки 1.0, вы получите ситуацию во втором изображении. Фактическая заполняемая область, (синяя), распространяется только наполовину в пикселях по обе стороны пути. Приблизительно это означает, что частично затенённые пиксели приводят к заполнению всей области (светло-голубой и синей) цветом, только наполовину темным, чем фактический цвет штриха. Это то, что происходит с линией шириной 1.0 в предыдущем примере кода.

- -

Чтобы исправить это, вы должны быть более точными при создании пути. Зная, что линия шириной 1.0 занимает половину единицы по обе стороны пути, создание пути от (3.5, 1) до (3.5, 5) приведёт к ситуации в третьем изображении - ширина линии 1.0 закончится верно, точно заполняя вертикальную линию с одним пикселем.

- -
-

Примечание: Имейте в виду, что в нашем примере с вертикальной линией позиция Y по-прежнему ссылается на целочисленную позицию сетки - иначе мы увидели бы пиксели с половинным охватом в конечных точках (также обратите внимание, что это поведение зависит от текущего стиля lineCap,  значение по умолчанию - butt; вы можете вычислить согласованные штрихи с полупиксельными координатами для линий с нечетной шириной, установив стиль lineCap в square, чтобы внешняя граница вокруг конечной точки линии автоматически расширялась, охватывая весь пиксель в точку).

- -

Также обратите внимание, что затронуты только начальные и конечные  точки пути: если путь закрыт с помощью closePath(), - нет начальной и конечной точки; вместо этого все конечные точки в пути подключены к их прикрепленному предыдущему и следующему сегментам и при текущей настройке стиля lineJoin в значении по умолчанию - miter, с эффектом автоматического расширения внешних границ подключенных сегментов до их точки пересечения - обработанный ход будет точно покрывать полные пиксели с центром в каждой конечной точке, если эти связанные сегменты горизонтальны и/или вертикальны). См. следующие два раздела, демонстрирующие эти дополнительные стили.

-
- -

Для линий с четной шириной каждая половина заканчивается как целое количество пикселей, поэтому вам нужен путь, который находится между пикселями (то есть (3,1) - (3,5)), вместо середины пикселей.

- -

Хотя это и необычно, когда изначально работаешь с масштабируемой 2D-графикой, обращая внимание на сетку пикселей и положение путей, но вы убедитесь, что ваши рисунки будут выглядеть правильно, независимо от масштабирования или любых других преобразований. Вертикальная линия ширины 1,0, построенная таким образом, станет четкой 2-пиксельной линией при увеличении на 2 и появится в правильном положении.

- -

Пример lineCap

- -

Свойство lineCap определяет, как выводятся конечные точки каждой строки. Для этого свойства есть три возможных значения: butt, round и square. По умолчанию для этого свойства установлено значение butt.

- -

- -
-
butt
-
Концы линий соответствуют крайним точкам.
-
round
-
Концы линий округлены.
-
square
-
Концы линий описаны квадратом с равной шириной и половиной высоты толщины линии.
-
- -

В этом примере мы проведем три строки, каждая из которых имеет другое значение для свойства lineCap. Я также добавил два руководства, чтобы увидеть точные различия между ними. Каждая из этих линий начинается и заканчивается именно на этих направляющих.

- -

Строка слева использует butt опцию по умолчанию. Вы заметите, что она полностью очищена от направляющих. Второй вариант -  round опция. Это добавляет полукруг к концу, который имеет радиус, равный половине ширины линии. Строка справа использует square опцию. Это добавляет поле с равной шириной и половиной высоты толщины линии.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  var lineCap = ['butt','round','square'];
-
-  // Draw guides
-  ctx.strokeStyle = '#09f';
-  ctx.beginPath();
-  ctx.moveTo(10,10);
-  ctx.lineTo(140,10);
-  ctx.moveTo(10,140);
-  ctx.lineTo(140,140);
-  ctx.stroke();
-
-  // Draw lines
-  ctx.strokeStyle = 'black';
-  for (var i=0;i<lineCap.length;i++){
-    ctx.lineWidth = 15;
-    ctx.lineCap = lineCap[i];
-    ctx.beginPath();
-    ctx.moveTo(25+i*50,10);
-    ctx.lineTo(25+i*50,140);
-    ctx.stroke();
-  }
-}
-
- - - -

{{EmbedLiveSample("Пример_lineCap", "180", "180", "https://mdn.mozillademos.org/files/236/Canvas_linecap.png")}}

- -

Пример lineJoin

- -

Свойство lineJoin определяет, как соединяются два сегмента (линий, дуг или кривых) с ненулевой длиной в форме (вырожденные сегменты с нулевой длиной, заданные конечные точки и контрольные точки находятся точно в том же положении - пропущены).

- -

Для этого свойства есть три возможных значения: round, bevel и miter. По умолчанию для этого свойства установлено значение miter. Обратите внимание, что настройка lineJoin не действует, если два связанных сегмента имеют одно и то же направление, потому что в этом случае не будет добавлена ​​область соединения.

- -

- -
-
round
-
Радиус заполняемой части для скругленных углов равен половине ширины линии. центр этого радиуса совпадает с концами подключенных сегментов.
-
bevel
-
Заполняет дополнительную треугольную область между общей конечной точкой подключенных сегментов и отдельными внешними прямоугольными углами каждого сегмента. 
-
miter
-
Подключенные сегменты соединяются путем расширения их внешних краев для соединения в одной точке с эффектом заполнения дополнительной области в форме пастилки. Эта настройка выполняется с помощью свойства miterLimit, которое объясняется ниже.
-
- -

В приведенном ниже примере показаны три разных пути, демонстрирующие каждый из этих трех свойств lineJoin; результат - выше. 

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  var lineJoin = ['round','bevel','miter'];
-  ctx.lineWidth = 10;
-  for (var i=0;i<lineJoin.length;i++){
-    ctx.lineJoin = lineJoin[i];
-    ctx.beginPath();
-    ctx.moveTo(-5,5+i*40);
-    ctx.lineTo(35,45+i*40);
-    ctx.lineTo(75,5+i*40);
-    ctx.lineTo(115,45+i*40);
-    ctx.lineTo(155,5+i*40);
-    ctx.stroke();
-  }
-}
-
- - - -

{{EmbedLiveSample("Пример_lineJoin", "180", "180", "https://mdn.mozillademos.org/files/237/Canvas_linejoin.png")}}

- -

Демонстрация свойства miterLimit

- -

Как вы видели в предыдущем примере, при объединении двух строк с опцией miter внешние края двух соединительных линий расширены до точки, где они встречаются. Для линий, которые находятся под большими углами друг с другом, эта точка находится недалеко от внутренней точки соединения. Однако, поскольку углы между каждой линией уменьшаются, расстояние (длина меча) между этими точками увеличивается экспоненциально.

- -

Свойство miterLimit определяет, как далеко можно установить внешнюю точку соединения из внутренней точки подключения. Если две линии превышают это значение, вместо этого получается привязка конуса. Обратите внимание, что максимальная длина митра является произведением ширины линии, измеренной в текущей системе координат, значением этого свойства miterLimit (значение по умолчанию 10,0 в HTML {{HTMLElement("canvas")}}), поэтому miterLimit может устанавливаться независимо от текущей шкалы дисплея или любых аффинных преобразований путей: она влияет только на эффективно визуализированную форму ребер линии.

- -

Точнее, предел митры является максимально допустимым отношением длины расширения (в холсте HTML он измеряется между внешним углом соединенных краев линии и общей конечной точкой соединительных сегментов, указанными на пути), до половины ширины линии. Его можно равнозначно определить как максимально допустимое отношение расстояния между внутренней и внешней точками перехода краев к общей ширине линии. Затем он равен косекансу с половиной минимального внутреннего угла соединительных сегментов, ниже которого не будет создано ни одного соединения митра, а только скос соединяется:

- - - -

Вот небольшая демонстрация, в которой вы можете динамически установить miterLimit и посмотреть, как это влияет на фигуры на холсте. Синие линии показывают, где начальная и конечная точки для каждой из линий в шаблоне зигзага.

- -

Если вы укажете в этой демонстрации значение miterLimit ниже 4.2, ни один из видимых углов не присоединится к расширению митры, но только с небольшим скосом рядом с синими линиями; с отметкой miterLimit выше 10, большинство углов в этой демонстрации должны соединяться с митрой, удаленной от синих линий, высота которой уменьшается между углами слева направо, потому что они соединяются с растущими углами; с промежуточными значениями углы с левой стороны будут соединяться только с скосом рядом с синими линиями, а углы с правой стороны с удлинителем митры (также с уменьшающейся высотой).

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // Clear canvas
-  ctx.clearRect(0,0,150,150);
-
-  // Draw guides
-  ctx.strokeStyle = '#09f';
-  ctx.lineWidth   = 2;
-  ctx.strokeRect(-5,50,160,50);
-
-  // Set line styles
-  ctx.strokeStyle = '#000';
-  ctx.lineWidth = 10;
-
-  // check input
-  if (document.getElementById('miterLimit').value.match(/\d+(\.\d+)?/)) {
-    ctx.miterLimit = parseFloat(document.getElementById('miterLimit').value);
-  } else {
-    alert('Value must be a positive number');
-  }
-
-  // Draw lines
-  ctx.beginPath();
-  ctx.moveTo(0,100);
-  for (i=0;i<24;i++){
-    var dy = i%2==0 ? 25 : -25 ;
-    ctx.lineTo(Math.pow(i,1.5)*2,75+dy);
-  }
-  ctx.stroke();
-  return false;
-}
-
- - - -

{{EmbedLiveSample("Демонстрация_свойства_miterLimit", "400", "180", "https://mdn.mozillademos.org/files/240/Canvas_miterlimit.png")}}

- -

Использование штрихов

- -

Метод setLineDash и свойство lineDashOffset задают шаблон штрихов для линий. Метод setLineDash принимает список чисел, который определяет расстояния для попеременного рисования линии и разрыва, а свойство lineDashOffset устанавливает смещение, с которого начинается шаблон.

- -

В этом примере мы создаем эффект походных муравьев. Это техника анимации, часто встречающаяся в инструментах выбора программ компьютерной графики. Это помогает пользователю отличить границу выделения от фона изображения, анимируя границу. В следующей части этого руководства вы узнаете, как сделать эту и другие основные анимации.

- - - -
var ctx = document.getElementById('canvas').getContext('2d');
-var offset = 0;
-
-function draw() {
-  ctx.clearRect(0,0, canvas.width, canvas.height);
-  ctx.setLineDash([4, 2]);
-  ctx.lineDashOffset = -offset;
-  ctx.strokeRect(10,10, 100, 100);
-}
-
-function march() {
-  offset++;
-  if (offset > 16) {
-    offset = 0;
-  }
-  draw();
-  setTimeout(march, 20);
-}
-
-march();
- -

{{EmbedLiveSample("Используемый штрих", "120", "120", "https://mdn.mozillademos.org/files/9853/marching-ants.png")}}

- -

Градиенты

- -

Just like any normal drawing program, we can fill and stroke shapes using linear and radial gradients. We create a {{domxref("CanvasGradient")}} object by using one of the following methods. We can then assign this object to the fillStyle or strokeStyle properties.

- -
-
{{domxref("CanvasRenderingContext2D.createLinearGradient", "createLinearGradient(x1, y1, x2, y2)")}}
-
Creates a linear gradient object with a starting point of (x1, y1) and an end point of (x2, y2).
-
{{domxref("CanvasRenderingContext2D.createRadialGradient", "createRadialGradient(x1, y1, r1, x2, y2, r2)")}}
-
Creates a radial gradient. The parameters represent two circles, one with its center at (x1, y1) and a radius of r1, and the other with its center at (x2, y2) with a radius of r2.
-
- -

For example:

- -
var lineargradient = ctx.createLinearGradient(0, 0, 150, 150);
-var radialgradient = ctx.createRadialGradient(75, 75, 0, 75, 75, 100);
-
- -

Once we've created a CanvasGradient object we can assign colors to it by using the addColorStop() method.

- -
-
{{domxref("CanvasGradient.addColorStop", "gradient.addColorStop(position, color)")}}
-
Creates a new color stop on the gradient object. The position is a number between 0.0 and 1.0 and defines the relative position of the color in the gradient, and the color argument must be a string representing a CSS {{cssxref("<color>")}}, indicating the color the gradient should reach at that offset into the transition.
-
- -

You can add as many color stops to a gradient as you need. Below is a very simple linear gradient from white to black.

- -
var lineargradient = ctx.createLinearGradient(0,0,150,150);
-lineargradient.addColorStop(0, 'white');
-lineargradient.addColorStop(1, 'black');
-
- -

Пример createLinearGradient

- -

In this example, we'll create two different gradients. As you can see here, both the strokeStyle and fillStyle properties can accept a canvasGradient object as valid input.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // Create gradients
-  var lingrad = ctx.createLinearGradient(0,0,0,150);
-  lingrad.addColorStop(0, '#00ABEB');
-  lingrad.addColorStop(0.5, '#fff');
-  lingrad.addColorStop(0.5, '#26C000');
-  lingrad.addColorStop(1, '#fff');
-
-  var lingrad2 = ctx.createLinearGradient(0,50,0,95);
-  lingrad2.addColorStop(0.5, '#000');
-  lingrad2.addColorStop(1, 'rgba(0,0,0,0)');
-
-  // assign gradients to fill and stroke styles
-  ctx.fillStyle = lingrad;
-  ctx.strokeStyle = lingrad2;
-
-  // draw shapes
-  ctx.fillRect(10,10,130,130);
-  ctx.strokeRect(50,50,50,50);
-
-}
-
- - - -

The first is a background gradient. As you can see, we assigned two colors at the same position. You do this to make very sharp color transitions—in this case from white to green. Normally, it doesn't matter in what order you define the color stops, but in this special case, it does significantly. If you keep the assignments in the order you want them to appear, this won't be a problem.

- -

In the second gradient, we didn't assign the starting color (at position 0.0) since it wasn't strictly necessary, because it will automatically assume the color of the next color stop. Therefore, assigning the black color at position 0.5 automatically makes the gradient, from the start to this stop, black.

- -

{{EmbedLiveSample("Пример_createLinearGradient", "180", "180", "https://mdn.mozillademos.org/files/235/Canvas_lineargradient.png")}}

- -

Пример createRadialGradient

- -

In this example, we'll define four different radial gradients. Because we have control over the start and closing points of the gradient, we can achieve more complex effects than we would normally have in the "classic" radial gradients we see in, for instance, Photoshop (that is, a gradient with a single center point where the gradient expands outward in a circular shape).

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // Create gradients
-  var radgrad = ctx.createRadialGradient(45,45,10,52,50,30);
-  radgrad.addColorStop(0, '#A7D30C');
-  radgrad.addColorStop(0.9, '#019F62');
-  radgrad.addColorStop(1, 'rgba(1,159,98,0)');
-
-  var radgrad2 = ctx.createRadialGradient(105,105,20,112,120,50);
-  radgrad2.addColorStop(0, '#FF5F98');
-  radgrad2.addColorStop(0.75, '#FF0188');
-  radgrad2.addColorStop(1, 'rgba(255,1,136,0)');
-
-  var radgrad3 = ctx.createRadialGradient(95,15,15,102,20,40);
-  radgrad3.addColorStop(0, '#00C9FF');
-  radgrad3.addColorStop(0.8, '#00B5E2');
-  radgrad3.addColorStop(1, 'rgba(0,201,255,0)');
-
-  var radgrad4 = ctx.createRadialGradient(0,150,50,0,140,90);
-  radgrad4.addColorStop(0, '#F4F201');
-  radgrad4.addColorStop(0.8, '#E4C700');
-  radgrad4.addColorStop(1, 'rgba(228,199,0,0)');
-
-  // draw shapes
-  ctx.fillStyle = radgrad4;
-  ctx.fillRect(0,0,150,150);
-  ctx.fillStyle = radgrad3;
-  ctx.fillRect(0,0,150,150);
-  ctx.fillStyle = radgrad2;
-  ctx.fillRect(0,0,150,150);
-  ctx.fillStyle = radgrad;
-  ctx.fillRect(0,0,150,150);
-}
-
- - - -

In this case, we've offset the starting point slightly from the end point to achieve a spherical 3D effect. It's best to try to avoid letting the inside and outside circles overlap because this results in strange effects which are hard to predict.

- -

The last color stop in each of the four gradients uses a fully transparent color. If you want to have a nice transition from this to the previous color stop, both colors should be equal. This isn't very obvious from the code because it uses two different CSS color methods as a demonstration, but in the first gradient #019F62 = rgba(1,159,98,1).

- -

{{EmbedLiveSample("Пример_createRadialGradient", "180", "180", "https://mdn.mozillademos.org/files/244/Canvas_radialgradient.png")}}

- -

Шаблоны

- -

В одном из предыдущих примеров мы использовали несколько циклов, чтобы создать шаблон из повторяющихся изображений. Однако, есть более простой способ сделать подобное - метод createPattern().

- -
-
{{domxref("CanvasRenderingContext2D.createPattern", "createPattern(image, type)")}}
-
Создает и возвращает новый canvas объект - шаблон (pattern). image - {{domxref("CanvasImageSource")}} (то есть {{domxref ("HTMLImageElement")}}, другой холст, элемент {{HTMLElement ("video")}} или подобный  объект. type - строка, указывающая, как использовать image.
-
- -

Тип указывает, как использовать image для создания шаблона и должен быть одним из следующих значений:

- -
-
repeat
-
Повторяет изображение в вертикальном и горизонтальном направлениях.
-
repeat-x
-
Повторяет изображение по горизонтали, но не по вертикали.
-
repeat-y
-
Повторяет изображение по вертикали, но не по горизонтали.
-
no-repeat
-
Не повторяет изображение. Используется только один раз.
-
- -

Мы используем этот метод, чтобы создать {{domxref("CanvasPattern")}} объект, который очень похож на методы градиента, рассмотренные ранее. Как только мы создали шаблон, мы можем назначить ему свойства fillStyle или strokeStyle. Например:

- -
var img = new Image();
-img.src = 'someimage.png';
-var ptrn = ctx.createPattern(img,'repeat');
-
- -
-

Примечание: По аналогии с методом drawImage(), вы должны убедиться, что изображение, которое вы используете, загружено до вызова этого метода. Иначе шаблон может быть отрисован некорректно.

-
- -

Пример createPattern

- -

In this last example, we'll create a pattern to assign to the fillStyle property. The only thing worth noting is the use of the image's onload handler. This is to make sure the image is loaded before it is assigned to the pattern.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // create new image object to use as pattern
-  var img = new Image();
-  img.src = 'https://mdn.mozillademos.org/files/222/Canvas_createpattern.png';
-  img.onload = function(){
-
-    // create pattern
-    var ptrn = ctx.createPattern(img,'repeat');
-    ctx.fillStyle = ptrn;
-    ctx.fillRect(0,0,150,150);
-
-  }
-}
-
- - - -

{{EmbedLiveSample("Пример_createPattern", "180", "180", "https://mdn.mozillademos.org/files/222/Canvas_createpattern.png")}}

- -

Тени

- -

Using shadows involves just four properties:

- -
-
{{domxref("CanvasRenderingContext2D.shadowOffsetX", "shadowOffsetX = float")}}
-
Indicates the horizontal distance the shadow should extend from the object. This value isn't affected by the transformation matrix. The default is 0.
-
{{domxref("CanvasRenderingContext2D.shadowOffsetY", "shadowOffsetY = float")}}
-
Indicates the vertical distance the shadow should extend from the object. This value isn't affected by the transformation matrix. The default is 0.
-
{{domxref("CanvasRenderingContext2D.shadowBlur", "shadowBlur = float")}}
-
Indicates the size of the blurring effect; this value doesn't correspond to a number of pixels and is not affected by the current transformation matrix. The default value is 0.
-
{{domxref("CanvasRenderingContext2D.shadowColor", "shadowColor = color")}}
-
A standard CSS color value indicating the color of the shadow effect; by default, it is fully-transparent black.
-
- -

The properties shadowOffsetX and shadowOffsetY indicate how far the shadow should extend from the object in the X and Y directions; these values aren't affected by the current transformation matrix. Use negative values to cause the shadow to extend up or to the left, and positive values to cause the shadow to extend down or to the right. These are both 0 by default.

- -

The shadowBlur property indicates the size of the blurring effect; this value doesn't correspond to a number of pixels and is not affected by the current transformation matrix. The default value is 0.

- -

The shadowColor property is a standard CSS color value indicating the color of the shadow effect; by default, it is fully-transparent black.

- -
-

Note: Shadows are only drawn for source-over compositing operations.

-
- -

Пример текста с тенью

- -

This example draws a text string with a shadowing effect.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  ctx.shadowOffsetX = 2;
-  ctx.shadowOffsetY = 2;
-  ctx.shadowBlur = 2;
-  ctx.shadowColor = "rgba(0, 0, 0, 0.5)";
-
-  ctx.font = "20px Times New Roman";
-  ctx.fillStyle = "Black";
-  ctx.fillText("Sample String", 5, 30);
-}
-
- - - -

{{EmbedLiveSample("Пример_текста_с_тенью", "180", "100", "https://mdn.mozillademos.org/files/2505/shadowed-string.png")}}

- -

We will look at the font property and fillText method in the next chapter about drawing text.

- -

Canvas fill rules

- -

When using fill (or {{domxref("CanvasRenderingContext2D.clip", "clip")}} and {{domxref("CanvasRenderingContext2D.isPointInPath", "isPointinPath")}}) you can optionally provide a fill rule algorithm by which to determine if a point is inside or outside a path and thus if it gets filled or not. This is useful when a path intersetcs itself or is nested.
-
- Two values are possible:

- - - -

In this example we are using the evenodd rule.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  ctx.beginPath();
-  ctx.arc(50, 50, 30, 0, Math.PI*2, true);
-  ctx.arc(50, 50, 15, 0, Math.PI*2, true);
-  ctx.fill("evenodd");
-}
- - - -

{{EmbedLiveSample("Canvas_fill_rules", "110", "110", "https://mdn.mozillademos.org/files/9855/fill-rule.png")}}

- -

{{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_shapes", "Web/API/Canvas_API/Tutorial/Drawing_text")}}

diff --git "a/files/ru/web/api/canvas_api/tutorial/\321\200\320\270\321\201\320\276\320\262\320\260\320\275\320\270\320\265_\321\202\320\265\320\272\321\201\321\202\320\260/index.html" "b/files/ru/web/api/canvas_api/tutorial/\321\200\320\270\321\201\320\276\320\262\320\260\320\275\320\270\320\265_\321\202\320\265\320\272\321\201\321\202\320\260/index.html" deleted file mode 100644 index 90915c5e09..0000000000 --- "a/files/ru/web/api/canvas_api/tutorial/\321\200\320\270\321\201\320\276\320\262\320\260\320\275\320\270\320\265_\321\202\320\265\320\272\321\201\321\202\320\260/index.html" +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: Рисование текста -slug: Web/API/Canvas_API/Tutorial/Рисование_текста -tags: - - Canvas - - Графика - - Примеры - - Рукводовство - - мануал -translation_of: Web/API/Canvas_API/Tutorial/Drawing_text ---- -
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Applying_styles_and_colors", "Web/API/Canvas_API/Tutorial/Using_images")}}
- -
-

После того, как мы увидели в предыдущей главе, как применять стили и цвета, взглянем на написание текста в canvas.

-
- -

Рисование текста

- -

Контекст рендеринга canvas предоставляет два метода для рисования текста:

- -
-
{{domxref("CanvasRenderingContext2D.fillText", "fillText(text, x, y [, maxWidth])")}}
-
Вставляет заданный текст в положении (x,y). Опционально может быть указана максимальная ширина.
-
{{domxref("CanvasRenderingContext2D.strokeText", "strokeText(text, x, y [, maxWidth])")}}
-
Вставляет контур заданного текста в положении (x,y). Опционально может быть указана максимальная ширина.
-
- -

Пример fillText

- -

Текст вставлен с использованием текущего fillStyle.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  ctx.font = "48px serif";
-  ctx.fillText("Hello world", 10, 50);
-}
- - - -

{{EmbedLiveSample("A_fillText_example", 310, 110)}}

- -

Пример strokeText

- -

Текст вставлен с использованием текущего strokeStyle.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  ctx.font = "48px serif";
-  ctx.strokeText("Hello world", 10, 50);
-}
- - - -

{{EmbedLiveSample("A_strokeText_example", 310, 110)}}

- -

Стилизация текста

- -

В примерах выше мы уже использовали свойство font для изменения размера текста. Кроме него существуют еще несколько свойств, позволяющие настроить вывод текста на canvas:

- -
-
{{domxref("CanvasRenderingContext2D.font", "font = value")}}
-
Это основной стиль, который будет использоваться для вывода текста. Строка имеет такой же синтаксис, как CSS-свойство {{cssxref("font")}}. По умолчанию - sans-serif высотой 10px.
-
{{domxref("CanvasRenderingContext2D.textAlign", "textAlign = value")}}
-
Настройка выравнивания текста. Возможные значения: start, end, left, right или center. По умолчанию - start.
-
{{domxref("CanvasRenderingContext2D.textBaseline", "textBaseline = value")}}
-
Настройка выравнивания текста по вертикали. Возможные значения: top, hanging, middle, alphabetic, ideographic, bottom. По умолчанию - alphabetic.
-
{{domxref("CanvasRenderingContext2D.direction", "direction = value")}}
-
Направление текста. Возможные значения: ltr, rtl, inherit. По умолчанию - inherit.
-
- -

Эти свойства могут быть вам знакомы если вы работали с CSS.

- -

Изображение от WHATWG ниже показывает различные варианты свойства textBaseline.The top of the em square is
-roughly at the top of the glyphs in a font, the hanging baseline is
-where some glyphs like आ are anchored, the middle is half-way
-between the top of the em square and the bottom of the em square,
-the alphabetic baseline is where characters like Á, ÿ,
-f, and Ω are anchored, the ideographic baseline is
-where glyphs like 私 and 達 are anchored, and the bottom
-of the em square is roughly at the bottom of the glyphs in a
-font. The top and bottom of the bounding box can be far from these
-baselines, due to glyphs extending far outside the em square.

- -

Пример textBaseline

- -

Редактируя код ниже, вы можете видеть, как меняется отображение текста на canvas в реальном времени:

- -
ctx.font = "48px serif";
-ctx.textBaseline = "hanging";
-ctx.strokeText("Hello world!", 0, 100);
-
- - - -

{{ EmbedLiveSample('Playable_code', 700, 360) }}

- -

Измерение ширины текста

- -

Для измерения ширины текста (без рисования его на canvas) можно воспользоваться следующим методом:

- -
-
{{domxref("CanvasRenderingContext2D.measureText", "measureText()")}}
-
Возвращает объект {{domxref("TextMetrics")}}, содержащий ширину текста в пикселах, до отрисовки на canvas.
-
- -

Пример ниже показывает, как можно измерить ширину текста.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  var text = ctx.measureText("foo"); // TextMetrics object
-  text.width; // 16;
-}
-
- -

Примечания

- -

В ранних версиях Gecko (движок рендеринга в Firefox, Firefox OS и других приложениях Mozilla) были реализованы методы API с префиксами для рисования текста на canvas. На данный момент они устарели и уже, возможно, удалены, поэтому их правильная работа не гарантируется.

- -

{{PreviousNext("Web/API/Canvas_API/Tutorial/Applying_styles_and_colors", "Web/API/Canvas_API/Tutorial/Using_images")}}

diff --git "a/files/ru/web/api/canvas_api/tutorial/\321\200\320\270\321\201\320\276\320\262\320\260\320\275\320\270\320\265_\321\204\320\270\320\263\321\203\321\200/index.html" "b/files/ru/web/api/canvas_api/tutorial/\321\200\320\270\321\201\320\276\320\262\320\260\320\275\320\270\320\265_\321\204\320\270\320\263\321\203\321\200/index.html" deleted file mode 100644 index f6ca6c23ef..0000000000 --- "a/files/ru/web/api/canvas_api/tutorial/\321\200\320\270\321\201\320\276\320\262\320\260\320\275\320\270\320\265_\321\204\320\270\320\263\321\203\321\200/index.html" +++ /dev/null @@ -1,582 +0,0 @@ ---- -title: Рисование фигур с помощью canvas -slug: Web/API/Canvas_API/Tutorial/Рисование_фигур -translation_of: Web/API/Canvas_API/Tutorial/Drawing_shapes ---- -
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_usage", "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors")}}
- -
-

Теперь, установив наше окружение canvas, мы можем погрузиться в детали того, как рисовать в canvas. К концу этой статьи, Вы научитесь рисовать прямоугольники, треугольники, линии, дуги и кривые, при условии что Вы хорошо знакомы с основными геометрическими фигурами. Работа с путями весьма важна, когда рисуете объекты на canvas и мы увидим как это может быть сделано.

-
- -

Сетка

- -

Перед тем, как мы начнем рисовать, нам нужно поговорить о сетке canvas или координатной плоскости. Наш HTML каркас из предыдущей страницы включал в себя элемент canvas 150 пикселей в ширину и 150 пикселей в высоту. Справа можно увидеть этот canvas с сеткой, накладываемой по умолчанию. Обычно 1 единица на сетке соответствует 1 пикселю на canvas. Начало координат этой сетки расположено в верхнем левом углу в координате (0,0 ). Все элементы размещены относительно этого начала. Таким образом, положение верхнего левого угла синего квадрата составляет х пикселей слева и у пикселей сверху, на координате , у). Позже в этом уроке мы увидим, как можно перевести начало координат в другое место, вращать сетку и даже масштабировать ее, но сейчас мы будем придерживаться настроек сетки по умолчанию.

- -

Рисование прямоугольников

- -

В отличие от {{Glossary("SVG")}}, {{HTMLElement("canvas")}} поддерживает только одну примитивную фигуру: прямоугольник. Все другие фигуры должны быть созданы комбинацией одного или большего количества контуров (paths), набором точек, соединенных в линии. К счастью в ассортименте рисования контуров у нас есть  функции, которые делают возможным составление очень сложных фигур.

- -

Сначала рассмотрим прямоугольник. Ниже представлены три функции рисования прямоугольников в canvas:

- -
-
{{domxref("CanvasRenderingContext2D.fillRect", "fillRect(x, y, width, height)")}}
-
Рисование заполненного прямоугольника.
-
{{domxref("CanvasRenderingContext2D.strokeRect", "strokeRect(x, y, width, height)")}}
-
Рисование прямоугольного контура.
-
{{domxref("CanvasRenderingContext2D.clearRect", "clearRect(x, y, width, height)")}}
-
Очистка  прямоугольной области, делая содержимое совершенно прозрачным.
-
- -

Каждая из приведенных функций принимает несколько параметров: 

- - - -

Ниже приведена функция draw(), использующая эти три функции.

- -

Пример создания прямоугольных фигур

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext) {
-    var ctx = canvas.getContext('2d');
-
-    ctx.fillRect(25,25,100,100);
-    ctx.clearRect(45,45,60,60);
-    ctx.strokeRect(50,50,50,50);
-  }
-}
- -

Этот пример изображен ниже.

- -

{{EmbedLiveSample("Пример_создания_прямоугольных_фигур", 160, 160, "https://mdn.mozillademos.org/files/245/Canvas_rect.png")}}

- -

Функция fillRect() рисует большой чёрный квадрат со стороной 100 px. Функция clearRect() вырезает квадрат 60х60 из центра, а функция strokeRect() создает прямоугольный контур 50х50 пикселей внутри очищенного квадрата.

- -

На следующей странице мы рассмотрим две альтернативы методу clearRect(), и также увидим, как можно изменять цвет и стиль контура отображаемых фигур.

- -

В отличие от функций создания контуров, которые будут рассмотрены в следующем разделе, все три функции создания прямоугольника сразу же отображаются на canvas.

- -

Рисование контуров (path)

- -

Остальные примитивные фигуры создаются контурами. Контур - это набор точек, которые, соединяясь в отрезки линий, могут образовывать различные фигуры, изогнутые или нет, разной ширины и разного цвета. Контур (или субконтур) может быть закрытым.

- -

Создание фигур используя контуры происходит в несколько важных шагов:

- -
    -
  1. Сначала вы создаете контур.
  2. -
  3. Затем, используя команды рисования, рисуете контур.
  4. -
  5. Потом закрываете контур.
  6. -
  7. Созданный контур вы можете обвести или залить для его отображения.
  8. -
- -

Здесь приведены функции, которые можно использовать в описанных шагах:

- -
-
{{domxref("CanvasRenderingContext2D.beginPath", "beginPath()")}}
-
Создает новый контур. После создания используется в дальнейшем командами рисования при построении контуров.
-
Path методы
-
Методы для установки различных контуров объекта.
-
{{domxref("CanvasRenderingContext2D.closePath", "closePath()")}}
-
Закрывает контур, так что будущие команды рисования вновь направлены контекст.
-
{{domxref("CanvasRenderingContext2D.stroke", "stroke()")}}
-
Рисует фигуру с внешней обводкой.
-
{{domxref("CanvasRenderingContext2D.fill", "fill()")}}
-
Рисует фигуру с заливкой внутренней области.
-
- -

Первый шаг создания контура заключается в вызове функции beginPath(). Внутри содержатся контуры в виде набора суб-контуров (линии, дуги и др.), которые вместе образуют форму фигуры. Каждый вызов этого метода очищает набор, и мы можем начинать рисовать новые фигуры.

- -
Note:  если текущий контур пуст (например, как после вызова beginPath() или на вновь созданном canvas), первой командой построения контура всегда является функция  moveTo(). Поэтому мы всегда можем установить начальную позицию рисования контура после перезагрузки.
- -

Вторым шагом является вызов методов, определяемых видом контура, который нужно нарисовать. Их мы рассмотрим позднее.

- -

Третий и необязательный шаг - это вызов closePath(). Этот метод пытается закрыть фигуру, рисуя прямую линию из текущей точки в начальную. Если фигура была уже закрыта или является просто точкой, то функция ничего не делает.

- -
Note: Когда вы вызываете fill(), то каждая открытая фигура закрывается автоматически, так что вы можете не использовать closePath(). Это обстоятельство не имеет место в случае вызова stroke().
- -

Рисование треугольника

- -

Например, код для рисования треугольника будет выглядеть как-то так:

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    ctx.beginPath();
-    ctx.moveTo(75,50);
-    ctx.lineTo(100,75);
-    ctx.lineTo(100,25);
-    ctx.fill();
-  }
-}
-
- -

Результат выглядит так:

- -

{{EmbedLiveSample("Рисование_треугольника", 110, 110, "https://mdn.mozillademos.org/files/9847/triangle.png")}}

- -

Передвижение пера

- -

Одна очень полезная функция, которая ничего не рисует, но связана по смыслу с вышеописанными функциями  - это moveTo(). Вы можете представить это как отрыв (подъем) пера от бумаги и его перемещение в другое место.

- -
-
{{domxref("CanvasRenderingContext2D.moveTo", "moveTo(x, y)")}}
-
Перемещает перо в точку с координатами x и y.
-
- -

При инициализации canvas или при вызове beginPath(), вы захотите использовать функцию moveTo() для перемещения в точку начала рисования. Можно использовать moveTo() и для рисования несвязанного(незакрытого) контура. Посмотрите на смайлик ниже.

- -

Вы можете проверить это сами, используя участок кода ниже. Просто вставьте в функцию draw(), рассмотренную ранее.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-     var ctx = canvas.getContext('2d');
-
-    ctx.beginPath();
-    ctx.arc(75,75,50,0,Math.PI*2,true); // Внешняя окружность
-    ctx.moveTo(110,75);
-    ctx.arc(75,75,35,0,Math.PI,false);  // рот (по часовой стрелке)
-    ctx.moveTo(65,65);
-    ctx.arc(60,65,5,0,Math.PI*2,true);  // Левый глаз
-    ctx.moveTo(95,65);
-    ctx.arc(90,65,5,0,Math.PI*2,true);  // Правый глаз
-    ctx.stroke();
-  }
-}
-
- -

Результат этого ниже:

- -

{{EmbedLiveSample("Передвижение_пера", 160, 160, "https://mdn.mozillademos.org/files/252/Canvas_smiley.png")}}

- -

Если вы захотите увидеть соединные линии, то можете удалить вызов moveTo().

- -
-

Note: Подробнее о функции arc(),посмотрите {{anch("Дуги")}} .

-
- -

Линии

- -

Для рисования прямых линий используйте метод lineTo().

- -
-
{{domxref("CanvasRenderingContext2D.lineTo", "lineTo(x, y)")}}
-
Рисует линию с текущей позиции до позиции, определенной x и y.
-
- -

Этот метод принимает два аргумента x и y, которые являются координатами конечной точки линии. Начальная точка зависит от ранее нарисованных путей, причём конечная точка предыдущего пути является начальной точкой следующего и т. д. Начальная точка также может быть изменена с помощью метода moveTo().

- -

Пример ниже рисует два треугольника, один закрашенный и другой обведен контуром.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    // Filled triangle
-    ctx.beginPath();
-    ctx.moveTo(25,25);
-    ctx.lineTo(105,25);
-    ctx.lineTo(25,105);
-    ctx.fill();
-
-    // Stroked triangle
-    ctx.beginPath();
-    ctx.moveTo(125,125);
-    ctx.lineTo(125,45);
-    ctx.lineTo(45,125);
-    ctx.closePath();
-    ctx.stroke();
-  }
-}
-
- -

Отрисовка начинается с вызова beginPath(), чтобы начать рисовать путь новой фигуры. Затем мы используем метод moveTo(), чтобы переместить начальную точку в нужное положение. Ниже рисуются две линии, которые образуют две стороны треугольника.

- -

{{EmbedLiveSample("Линии", 160, 160, "https://mdn.mozillademos.org/files/238/Canvas_lineTo.png")}}

- -

Вы заметите разницу между закрашенным и обведенным контуром треугольниками. Это, как упоминалось выше, из-за того, что фигуры автоматически закрываются, когда путь заполнен (т. е. закрашен), но не тогда, когда он очерчен (т. е. обведен контуром). Если бы мы не учли closePath() для очерченного треугольника, тогда только две линии были бы нарисованы, а не весь треугольник.

- -

Дуги

- -

Для рисования дуг и окружностей, используем методы arc() и arcTo().

- -
-
{{domxref("CanvasRenderingContext2D.arc", "arc(x, y, radius, startAngle, endAngle, anticlockwise)")}}
-
Рисуем дугу с центром в точке (x,y) радиусом radius, начиная с угла startAngle и заканчивая в endAngle в направлении против часовой стрелки anticlockwise (по умолчанию по ходу движения часовой стрелки).
-
{{domxref("CanvasRenderingContext2D.arcTo", "arcTo(x1, y1, x2, y2, radius)")}}
-
Рисуем дугу с заданными контрольными точками и радиусом, соединяя эти точки прямой линией.
-
- -

Рассмотрим детальнее метод arc(), который имеет пять параметров: x и y — это координаты центра окружности, в которой должна быть нарисована дуга. radius — не требует пояснений. Углы startAngle и endAngle определяют начальную и конечную точки дуги в радианах вдоль кривой окружности. Отсчет происходит от оси x. Параметр anticlockwise — логическое значение, которое, если true, то рисование дуги совершается против хода часовой стрелки; иначе рисование происходит по ходу часовой стрелки.

- -
-

Note: Углы в функции arc() измеряют в радианах, не в градусах. Для перевода градусов в радианы вы можете использовать JavaScript-выражение: radians = (Math.PI/180)*degrees.

-
- -

Следующий пример немного сложнее, чем мы рассматривали ранее. Здесь нарисованы 12 различных дуг с разными углами и заливками.

- -

Два for цикла размещают дуги по столбцам и строкам. Для каждой дуги, мы начинаем новый контур, вызывая beginPath(). В этом коде каждый параметр дуги для большей ясности задан в виде переменной, но вам не обязательно делать так в реальных проектах.

- -

Координаты x и y  должны быть достаточно ясны. radius and startAngle — фиксированы. endAngle начинается со 180 градусов (полуокружность) в первой колонке и, увеличиваясь с шагом 90 градусов, достигает кульминации полноценной окружностью в последнем столбце.

- -

Установка параметра clockwise определяет результат; в первой и третьей строках рисование дуг происходит по часовой стрелке, а во второй и четвертой - против часовой стрелки. Благодаря if-условию верхняя половина дуг образуется с контуром, (обводкой), а нижняя половина дуг - с заливкой.

- -
-

Note: Этот пример требует немного большего холста (canvas), чем другие на этой странице: 150 x 200 pixels.

-
- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    for(var i=0;i<4;i++){
-      for(var j=0;j<3;j++){
-        ctx.beginPath();
-        var x = 25+j*50; // x coordinate
-        var y = 25+i*50; // y coordinate
-        var radius = 20; // Arc radius
-        var startAngle = 0; // Starting point on circle
-        var endAngle = Math.PI+(Math.PI*j)/2; // End point on circle
-        var anticlockwise = i%2==0 ? false : true; // clockwise or anticlockwise
-
-        ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise);
-
-        if (i>1){
-          ctx.fill();
-        } else {
-          ctx.stroke();
-        }
-      }
-    }
-  }
-}
-
- -

{{EmbedLiveSample("Дуги", 160, 210, "https://mdn.mozillademos.org/files/204/Canvas_arc.png")}}

- -

Безье и квадратичные кривые

- -

Следующим типом доступных контуров являются  кривые Безье, и к тому же доступны в кубическом и квадратичном вариантах. Обычно они используются при рисовании сложных составных фигур.

- -
-
{{domxref("CanvasRenderingContext2D.quadraticCurveTo", "quadraticCurveTo(cp1x, cp1y, x, y)")}}
-
Рисуется квадратичная кривая Безье с текущей позиции пера в конечную точку с координатами x и y, используя контрольную точку с координатами cp1x и cp1y.
-
{{domxref("CanvasRenderingContext2D.bezierCurveTo", "bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)")}}
-
Рисуется кубическая кривая Безье с текущей позиции пера в конечную точку с координатами x и y, используя две контрольные точки с координатами (cp1x, cp1y) и (cp2x, cp2y).
-
- -

Различие между ними можно увидеть на рисунке, изображенном справа. Квадратичная кривая Безье имеет стартовую и конечную точки (синие точки) и всего одну контрольную точку (красная точка), в то время как кубическая кривая Безье использует две контрольные точки.

- -

Параметры x и y в этих двух методах являются координатами конечной точки. cp1x и cp1y — координаты первой контрольной точки, а cp2x и cp2y — координаты второй контрольной точки.

- -

Использование квадратичных или кубических кривых Безье может быть  спорным выходом, так как в отличие от приложений векторной графики типа Adobe Illustrator, мы не имеем полной видимой обратной связи с тем, что мы делаем. Этот факт делает довольно сложным процесс рисования сложных фигур. В следующем примере мы нарисуем совсем простую составную фигуру, но, если у вас есть время и ещё больше терпения, можно создать более сложные составные фигуры.

- -

В этом примере нет ничего слишком тяжелого. В обоих случаях мы видим последовательность кривых, рисуя которые, в результате получим составную фигуру.

- -

Квадратичные кривые Безье

- -

В этом примере многократно используются квадратичные кривые Безье для рисования речевой выноски.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext) {
-    var ctx = canvas.getContext('2d');
-
-    // Quadratric curves example
-    ctx.beginPath();
-    ctx.moveTo(75,25);
-    ctx.quadraticCurveTo(25,25,25,62.5);
-    ctx.quadraticCurveTo(25,100,50,100);
-    ctx.quadraticCurveTo(50,120,30,125);
-    ctx.quadraticCurveTo(60,120,65,100);
-    ctx.quadraticCurveTo(125,100,125,62.5);
-    ctx.quadraticCurveTo(125,25,75,25);
-    ctx.stroke();
-  }
-}
-
- -

{{EmbedLiveSample("Квадратичные_кривые_Безье", 160, 160, "https://mdn.mozillademos.org/files/243/Canvas_quadratic.png")}}

- -

Кубические кривые Безье

- -

В этом примере нарисовано сердце с использованием кубических кривых Безье.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    // Cubic curves example
-    ctx.beginPath();
-    ctx.moveTo(75,40);
-    ctx.bezierCurveTo(75,37,70,25,50,25);
-    ctx.bezierCurveTo(20,25,20,62.5,20,62.5);
-    ctx.bezierCurveTo(20,80,40,102,75,120);
-    ctx.bezierCurveTo(110,102,130,80,130,62.5);
-    ctx.bezierCurveTo(130,62.5,130,25,100,25);
-    ctx.bezierCurveTo(85,25,75,37,75,40);
-    ctx.fill();
-  }
-}
-
- -

{{EmbedLiveSample("Cubic_Bezier_curves", 160, 160, "https://mdn.mozillademos.org/files/207/Canvas_bezier.png")}}

- -

Прямоугольники

- -

Все эти методы мы видели в  {{anch("Рисование прямоугольников")}}, которые рисуют прямоугольники сразу в canvas, так же есть метод rect(), который не отображает, а только добавляет контур рисования (path) заданного прямоугольника к последнему открытому контуру.

- -
-
{{domxref("CanvasRenderingContext2D.rect", "rect(x, y, width, height)")}}
-

- Добавляет в path прямоугольник, верхний левый угол которого указан с помощью (x, y) с вашими width и height
-
-
- -

Когда этот метод вызван, автоматически вызывается метод moveTo() с параметрами (x, y). Другими словами, позиция курсора устанавливается в начало добавленного прямоугольника.

- -

Создание комбинаций

- -

До сих пор, в каждом примере использовался только один тип функции контуров для каждой фигуры.
- Однако, нет никаких ограничений на количество или типы контуров, которые вы можете использовать для создания фигур. Давайте в этом примере объединим все вышеперечисленные  функции контуров, чтобы создать набор очень известных игровых персонажей.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    roundedRect(ctx,12,12,150,150,15);
-    roundedRect(ctx,19,19,150,150,9);
-    roundedRect(ctx,53,53,49,33,10);
-    roundedRect(ctx,53,119,49,16,6);
-    roundedRect(ctx,135,53,49,33,10);
-    roundedRect(ctx,135,119,25,49,10);
-
-    ctx.beginPath();
-    ctx.arc(37,37,13,Math.PI/7,-Math.PI/7,false);
-    ctx.lineTo(31,37);
-    ctx.fill();
-
-    for(var i=0;i<8;i++){
-      ctx.fillRect(51+i*16,35,4,4);
-    }
-
-    for(i=0;i<6;i++){
-      ctx.fillRect(115,51+i*16,4,4);
-    }
-
-    for(i=0;i<8;i++){
-      ctx.fillRect(51+i*16,99,4,4);
-    }
-
-    ctx.beginPath();
-    ctx.moveTo(83,116);
-    ctx.lineTo(83,102);
-    ctx.bezierCurveTo(83,94,89,88,97,88);
-    ctx.bezierCurveTo(105,88,111,94,111,102);
-    ctx.lineTo(111,116);
-    ctx.lineTo(106.333,111.333);
-    ctx.lineTo(101.666,116);
-    ctx.lineTo(97,111.333);
-    ctx.lineTo(92.333,116);
-    ctx.lineTo(87.666,111.333);
-    ctx.lineTo(83,116);
-    ctx.fill();
-
-    ctx.fillStyle = "white";
-    ctx.beginPath();
-    ctx.moveTo(91,96);
-    ctx.bezierCurveTo(88,96,87,99,87,101);
-    ctx.bezierCurveTo(87,103,88,106,91,106);
-    ctx.bezierCurveTo(94,106,95,103,95,101);
-    ctx.bezierCurveTo(95,99,94,96,91,96);
-    ctx.moveTo(103,96);
-    ctx.bezierCurveTo(100,96,99,99,99,101);
-    ctx.bezierCurveTo(99,103,100,106,103,106);
-    ctx.bezierCurveTo(106,106,107,103,107,101);
-    ctx.bezierCurveTo(107,99,106,96,103,96);
-    ctx.fill();
-
-    ctx.fillStyle = "black";
-    ctx.beginPath();
-    ctx.arc(101,102,2,0,Math.PI*2,true);
-    ctx.fill();
-
-    ctx.beginPath();
-    ctx.arc(89,102,2,0,Math.PI*2,true);
-    ctx.fill();
-  }
-}
-
-// A utility function to draw a rectangle with rounded corners.
-
-function roundedRect(ctx,x,y,width,height,radius){
-  ctx.beginPath();
-  ctx.moveTo(x,y+radius);
-  ctx.lineTo(x,y+height-radius);
-  ctx.quadraticCurveTo(x,y+height,x+radius,y+height);
-  ctx.lineTo(x+width-radius,y+height);
-  ctx.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);
-  ctx.lineTo(x+width,y+radius);
-  ctx.quadraticCurveTo(x+width,y,x+width-radius,y);
-  ctx.lineTo(x+radius,y);
-  ctx.quadraticCurveTo(x,y,x,y+radius);
-  ctx.stroke();
-}
-
- -

Конечное изображение выглядит так:

- -

{{EmbedLiveSample("Создание_комбинаций", 160, 160, "https://mdn.mozillademos.org/files/9849/combinations.png")}}

- -

Мы не будем подробно останавливаться на том, так как это на самом деле удивительно просто. Наиболее важные вещи, которые следует отметить, это использование свойства fillStyle в контексте рисования и использование функции утилиты (в данном случае roundedRect()). Использование функций утилиты для битов чертежа часто может быть очень полезным и сократить количество необходимого кода, а также его сложность.

- -

Позже, в этом уроке, мы еще раз рассмотрим fillStyle, но более подробно. Здесь же мы используем его для изменения цвета заливки путей вместо цвета по умолчанию от черного до белого, а затем обратно.

- -

Path2D объекты

- -

Как мы видели в последнем примере, есть серия путей и команд для рисования объектов на вашем холсте. Чтобы упростить код и повысить производительность, объект {{domxref("Path2D")}}, доступный в последних версиях браузеров, позволяет вам кэшировать или записывать эти команды рисования. Вы можете быстро запускать свои пути.
- Давайте посмотрим, как мы можем построить объект Path2D :

- -
-
{{domxref("Path2D.Path2D", "Path2D()")}}
-
Конструктор Path2D() возвращает вновь созданный объект Path2D  необязательно с другим путем в качестве аргумента (создает копию) или необязательно со строкой, состоящей из данных пути SVG path .
-
- -
new Path2D();     // пустой path объект
-new Path2D(path); // копирование из другого path
-new Path2D(d);    // path из SVG
- -

Все  методы path , такие как  moveTo,  rect,  arc, или quadraticCurveTo,  итп, которые мы уже знаем, доступны для объектов Path2D

- -

API Path2D также добавляет способ комбинирования путей с использованием метода addPath. Это может быть полезно, если вы хотите, например, создавать объекты из нескольких компонентов.

- -
-
{{domxref("Path2D.addPath", "Path2D.addPath(path [, transform])")}}
-
Добавляет путь к текущему пути с необязательной матрицей преобразования.
-
- -

Path2D пример

- -

В этом примере мы создаем прямоугольник и круг. Оба они сохраняются как объект Path2D, поэтому они доступны для последующего использования. С новым API Path2D несколько методов были обновлены, чтобы при необходимости принять объект Path2D для использования вместо текущего пути. Здесь stroke и fill используются с аргументом пути, например, для рисования обоих объектов на холст.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext){
-    var ctx = canvas.getContext('2d');
-
-    var rectangle = new Path2D();
-    rectangle.rect(10, 10, 50, 50);
-
-    var circle = new Path2D();
-    circle.moveTo(125, 35);
-    circle.arc(100, 35, 25, 0, 2 * Math.PI);
-
-    ctx.stroke(rectangle);
-    ctx.fill(circle);
-  }
-}
-
- -

{{EmbedLiveSample("Path2D_example", 130, 110, "https://mdn.mozillademos.org/files/9851/path2d.png")}}

- -

Использование SVG путей

- -

Еще одна мощная функция нового Canvas Path2D API использует данные пути SVG, SVG path data, для инициализации путей на вашем холсте. Это может позволить вам передавать данные пути и повторно использовать их как в SVG, так и в холсте.

- -

Путь перемещается в точку (M10 10), а затем горизонтально перемещается на 80 пунктов вправо (h 80), затем на 80 пунктов вниз (v 80), затем на 80 пунктов влево (h -80), а затем обратно на start (z). 
- Этот пример можно увидеть на странице  Path2D constructor.

- -
var p = new Path2D("M10 10 h 80 v 80 h -80 Z");
- -
{{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_usage", "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors")}}
diff --git a/files/ru/web/api/crypto/getrandomvalues/index.html b/files/ru/web/api/crypto/getrandomvalues/index.html new file mode 100644 index 0000000000..c59f5dde54 --- /dev/null +++ b/files/ru/web/api/crypto/getrandomvalues/index.html @@ -0,0 +1,73 @@ +--- +title: RandomSource.getRandomValues() +slug: Web/API/RandomSource/getRandomValues +tags: + - АПИ + - Криптография + - Справка + - метод +translation_of: Web/API/Crypto/getRandomValues +--- +

{{APIRef("Web Crypto API")}}

+ +

Метод RandomSource.getRandomValues() позволяет вам получать криптографически стойкие числа. Массив, переданный как параметр, заполняется случайными числами (случайными в криптографическом смысле).

+ +

Для того, чтобы гарантировать достаточную производительность, реализации используют не настоящий генератор случайных чисел (RNG, en - Random Number Generator), а генератор псевдо-случайных чисел, которому предоставлено начальное зерно (wiki - https://en.wikipedia.org/wiki/Random_seed) с достаточной энтропией (http://cryptography.ru/ref/энтропия). Реализация генератора псевдо-случайных чисел (PRNG, en - PseudoRandom Number Generator) отличается от других реализаций RNG, но она больше подходит для использования в криптографии. Реализации также требуют использование начального зерна с достаточной энтропией, как источник системно-уровневой энтропии.

+ +

Синтаксис

+ +
cryptoObj.getRandomValues(typedArray);
+ +

Параметры

+ +
+
typedArray
+
Целочисленный массив {{jsxref("TypedArray")}}, например {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, или {{jsxref("Uint32Array")}}. Все элементы массива замещаются случайными числами.
+
+ +

Исключения

+ + + +

Пример

+ +
/* Предполагается что функция window.crypto.getRandomValues доступна */
+
+var array = new Uint32Array(10);
+window.crypto.getRandomValues(array);
+
+console.log("Ваше счастливое число:");
+for (var i = 0; i < array.length; i++) {
+    console.log(array[i]);
+}
+
+ +

Спецификация

+ + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('Web Crypto API', '#RandomSource-method-getRandomValues')}}{{Spec2('Web Crypto API')}}Изначальное определение
+ +

Совместимость с браузерами

+ +

{{Compat("api.Crypto.getRandomValues")}}

+ +

Смотрите также

+ + diff --git a/files/ru/web/api/css_object_model/managing_screen_orientation/index.html b/files/ru/web/api/css_object_model/managing_screen_orientation/index.html new file mode 100644 index 0000000000..a6b16cba4a --- /dev/null +++ b/files/ru/web/api/css_object_model/managing_screen_orientation/index.html @@ -0,0 +1,183 @@ +--- +title: Разбираемся с ориентацией экрана +slug: Web/API/CSS_Object_Model/ориентация_экрана +tags: + - Ориентация экрана + - Положение экрана + - Руководство +translation_of: Web/API/CSS_Object_Model/Managing_screen_orientation +--- +

{{DefaultAPISidebar("Screen Orientation API")}}{{SeeCompatTable}}

+ +

Ориентация экрана не идентична ориентации устройства. +Даже если устройство не способно определить свое положение в пространстве — экран может всегда. А когда устройство знает свою ориентацию, хорошо бы иметь возможность управлять ориентацией экрана для +сохранения или адаптации интерфейса веб-приложения.

+ +

Управление ориентацией экрана доступно в CSS и JavaScript. +Например, использование медиа-запросов позволяет контенту адаптироваться с помощью CSS в зависимости от того, в каком режиме просмотра находится браузер: альбомный (горизонтальный, когда ширина экрана больше высоты) или портретный (вертикальный, высота экрана больше ширины).

+ +

Для определения положения экрана и его блокировки можно воспользоваться JavaScript Screen orientation API.

+ +

Настройка раскладки содержимого по ориентации экрана

+ +

Допустим Вы хотите связать отображение содержимого с ориентацией экрана. Например, добавить панель, растягивающуюся по наибольшему направлению дисплея устройства. Это довольно просто реализовать с помощью медиа запросов.

+ +

Пример. Имеется HTML страница:

+ +
<ul id="toolbar">
+  <li>A</li>
+  <li>B</li>
+  <li>C</li>
+</ul>
+
+<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis lacinia nisi nec sem viverra vitae fringilla nulla ultricies. In ac est dolor, quis tincidunt leo. Cras commodo quam non tortor consectetur eget rutrum dolor ultricies. Ut interdum tristique dapibus. Nullam quis malesuada est.</p>
+
+ +

Соответствующий CSS:

+ +
/* Сначала зададим простые стили */
+
+html, body {
+  width : 100%;
+  height: 100%;
+}
+
+body {
+  border: 1px solid black;
+
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+
+p {
+  font   : 1em sans-serif;
+  margin : 0;
+  padding: .5em;
+}
+
+ul {
+  list-style: none;
+
+  font   : 1em monospace;
+  margin : 0;
+  padding: .5em;
+
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+
+  background: black;
+}
+
+li {
+  display: inline-block;
+  margin : 0;
+  padding: 0.5em;
+  background: white;
+}
+
+ +

Теперь разберемся с поведением страницы в различных случаях ориентации.

+ +
/* Для портретного режима отправим панель на верхнюю часть области отображения */
+
+@media screen and (orientation: portrait) {
+  #toolbar {
+    width: 100%;
+  }
+}
+
+/* Для альбомного режима пускай панель отображается слева */
+
+@media screen and (orientation: landscape) {
+  #toolbar {
+    position: fixed;
+    width: 2.65em;
+    height: 100%;
+  }
+
+  p {
+    margin-left: 2em;
+  }
+
+  li + li {
+    margin-top: .5em;
+  }
+}
+
+ +

Результат:

+ + + + + + + + + + + + + + +
Портреный режим просмотраАльбомный режим просмотра
+
{{ EmbedLiveSample('Adjusting_layout_based_on_the_orientation', 180, 350) }}
+
+
{{ EmbedLiveSample('Adjusting_layout_based_on_the_orientation', 350, 180) }}
+
+ +
+

Примечание: Медиа запрос по ориентации ссылается на окно браузера (соотношение его размеров), а не на ориентацию устройства.

+
+ +

Блокировка ориентации экрана

+ +
+

Предупреждение: Этот API вводится в экспериментальном режиме и доступен в Firefox OS и Firefox для Android с приставкой moz, а также для Internet Explorer на Windows 8.1 и выше с приставкой ms.

+
+ +

Некоторые устройства (в основном мобильные) могут изменять ориентацию экрана в соответствии с ориентацией самого устройства для удобства восприятия информации пользователем. +Это хорошо подходит для текста, но на некоторое содержимое такое поведение может оказать негативное воздействие. Например, это трагичная ситуация для игры, разработанной под определенную ориентацию.

+ +

Урегулировать вопрос, связанный с изменением положения экрана, поможет интерфейс Screen Orientation API.

+ +

Отслеживание изменения ориентации

+ +

Событие {{event("orientationchange")}} возникает каждый раз, когда устройство изменяет ориентацию экрана и самого себя, и может быть отслежено свойством {{domxref("Screen.orientation")}}.

+ +
screen.addEventListener("orientationchange", function () {
+  console.log("The orientation of the screen is: " + screen.orientation);
+});
+
+ +

Запрещаем поворот экрана

+ +

Любое веб-приложение может заблокировать положение экрана. Методом {{domxref("Screen.lockOrientation()")}} положение блокируется. Разблокирование осуществляется методом {{domxref("Screen.unlockOrientation()")}}.

+ +

Метод {{domxref("Screen.lockOrientation()")}} принимает одну или несколько строк для определения типа блокировки: portrait-primary, portrait-secondary, landscape-primary, landscape-secondary, portrait, landscape. Подробнее: {{domxref("Screen.lockOrientation")}}.

+ +
screen.lockOrientation('landscape');
+ +
+

Примечание: Положение экрана зависит от конкретной настройки приложения. Если в приложении A экран блокируется на альбомную ориентацию (landscape), а приложение B блокирует экран на портретный режим (portrait), +то переход из приложения A в приложение B (или наоборот) не вызовет событие изменения ориентации экрана {{event("orientationchange")}}, т. к. оба приложения сохраняют заданную ориентацию.

+ +

В то же время, событие {{event("orientationchange")}} может возникнуть в момент блокировки ориентации, если для удовлетворения заданному параметру блокировки изменяется положение экрана.

+
+ +

Firefox OS и Android: блокирование ориентации через манифест

+ +

Для Firefox OS и Firefox Android (скоро заработает и в десктопном Firefox) существует более специфичный способ: в файле манифеста Вашего приложения можно указать ориентацию:

+ +
"orientation": "portrait"
+ +

См. также

+ + diff --git "a/files/ru/web/api/css_object_model/\320\276\321\200\320\270\320\265\320\275\321\202\320\260\321\206\320\270\321\217_\321\215\320\272\321\200\320\260\320\275\320\260/index.html" "b/files/ru/web/api/css_object_model/\320\276\321\200\320\270\320\265\320\275\321\202\320\260\321\206\320\270\321\217_\321\215\320\272\321\200\320\260\320\275\320\260/index.html" deleted file mode 100644 index a6b16cba4a..0000000000 --- "a/files/ru/web/api/css_object_model/\320\276\321\200\320\270\320\265\320\275\321\202\320\260\321\206\320\270\321\217_\321\215\320\272\321\200\320\260\320\275\320\260/index.html" +++ /dev/null @@ -1,183 +0,0 @@ ---- -title: Разбираемся с ориентацией экрана -slug: Web/API/CSS_Object_Model/ориентация_экрана -tags: - - Ориентация экрана - - Положение экрана - - Руководство -translation_of: Web/API/CSS_Object_Model/Managing_screen_orientation ---- -

{{DefaultAPISidebar("Screen Orientation API")}}{{SeeCompatTable}}

- -

Ориентация экрана не идентична ориентации устройства. -Даже если устройство не способно определить свое положение в пространстве — экран может всегда. А когда устройство знает свою ориентацию, хорошо бы иметь возможность управлять ориентацией экрана для -сохранения или адаптации интерфейса веб-приложения.

- -

Управление ориентацией экрана доступно в CSS и JavaScript. -Например, использование медиа-запросов позволяет контенту адаптироваться с помощью CSS в зависимости от того, в каком режиме просмотра находится браузер: альбомный (горизонтальный, когда ширина экрана больше высоты) или портретный (вертикальный, высота экрана больше ширины).

- -

Для определения положения экрана и его блокировки можно воспользоваться JavaScript Screen orientation API.

- -

Настройка раскладки содержимого по ориентации экрана

- -

Допустим Вы хотите связать отображение содержимого с ориентацией экрана. Например, добавить панель, растягивающуюся по наибольшему направлению дисплея устройства. Это довольно просто реализовать с помощью медиа запросов.

- -

Пример. Имеется HTML страница:

- -
<ul id="toolbar">
-  <li>A</li>
-  <li>B</li>
-  <li>C</li>
-</ul>
-
-<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis lacinia nisi nec sem viverra vitae fringilla nulla ultricies. In ac est dolor, quis tincidunt leo. Cras commodo quam non tortor consectetur eget rutrum dolor ultricies. Ut interdum tristique dapibus. Nullam quis malesuada est.</p>
-
- -

Соответствующий CSS:

- -
/* Сначала зададим простые стили */
-
-html, body {
-  width : 100%;
-  height: 100%;
-}
-
-body {
-  border: 1px solid black;
-
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-
-p {
-  font   : 1em sans-serif;
-  margin : 0;
-  padding: .5em;
-}
-
-ul {
-  list-style: none;
-
-  font   : 1em monospace;
-  margin : 0;
-  padding: .5em;
-
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-
-  background: black;
-}
-
-li {
-  display: inline-block;
-  margin : 0;
-  padding: 0.5em;
-  background: white;
-}
-
- -

Теперь разберемся с поведением страницы в различных случаях ориентации.

- -
/* Для портретного режима отправим панель на верхнюю часть области отображения */
-
-@media screen and (orientation: portrait) {
-  #toolbar {
-    width: 100%;
-  }
-}
-
-/* Для альбомного режима пускай панель отображается слева */
-
-@media screen and (orientation: landscape) {
-  #toolbar {
-    position: fixed;
-    width: 2.65em;
-    height: 100%;
-  }
-
-  p {
-    margin-left: 2em;
-  }
-
-  li + li {
-    margin-top: .5em;
-  }
-}
-
- -

Результат:

- - - - - - - - - - - - - - -
Портреный режим просмотраАльбомный режим просмотра
-
{{ EmbedLiveSample('Adjusting_layout_based_on_the_orientation', 180, 350) }}
-
-
{{ EmbedLiveSample('Adjusting_layout_based_on_the_orientation', 350, 180) }}
-
- -
-

Примечание: Медиа запрос по ориентации ссылается на окно браузера (соотношение его размеров), а не на ориентацию устройства.

-
- -

Блокировка ориентации экрана

- -
-

Предупреждение: Этот API вводится в экспериментальном режиме и доступен в Firefox OS и Firefox для Android с приставкой moz, а также для Internet Explorer на Windows 8.1 и выше с приставкой ms.

-
- -

Некоторые устройства (в основном мобильные) могут изменять ориентацию экрана в соответствии с ориентацией самого устройства для удобства восприятия информации пользователем. -Это хорошо подходит для текста, но на некоторое содержимое такое поведение может оказать негативное воздействие. Например, это трагичная ситуация для игры, разработанной под определенную ориентацию.

- -

Урегулировать вопрос, связанный с изменением положения экрана, поможет интерфейс Screen Orientation API.

- -

Отслеживание изменения ориентации

- -

Событие {{event("orientationchange")}} возникает каждый раз, когда устройство изменяет ориентацию экрана и самого себя, и может быть отслежено свойством {{domxref("Screen.orientation")}}.

- -
screen.addEventListener("orientationchange", function () {
-  console.log("The orientation of the screen is: " + screen.orientation);
-});
-
- -

Запрещаем поворот экрана

- -

Любое веб-приложение может заблокировать положение экрана. Методом {{domxref("Screen.lockOrientation()")}} положение блокируется. Разблокирование осуществляется методом {{domxref("Screen.unlockOrientation()")}}.

- -

Метод {{domxref("Screen.lockOrientation()")}} принимает одну или несколько строк для определения типа блокировки: portrait-primary, portrait-secondary, landscape-primary, landscape-secondary, portrait, landscape. Подробнее: {{domxref("Screen.lockOrientation")}}.

- -
screen.lockOrientation('landscape');
- -
-

Примечание: Положение экрана зависит от конкретной настройки приложения. Если в приложении A экран блокируется на альбомную ориентацию (landscape), а приложение B блокирует экран на портретный режим (portrait), -то переход из приложения A в приложение B (или наоборот) не вызовет событие изменения ориентации экрана {{event("orientationchange")}}, т. к. оба приложения сохраняют заданную ориентацию.

- -

В то же время, событие {{event("orientationchange")}} может возникнуть в момент блокировки ориентации, если для удовлетворения заданному параметру блокировки изменяется положение экрана.

-
- -

Firefox OS и Android: блокирование ориентации через манифест

- -

Для Firefox OS и Firefox Android (скоро заработает и в десктопном Firefox) существует более специфичный способ: в файле манифеста Вашего приложения можно указать ориентацию:

- -
"orientation": "portrait"
- -

См. также

- - diff --git a/files/ru/web/api/document/activeelement/index.html b/files/ru/web/api/document/activeelement/index.html deleted file mode 100644 index 71db5bc678..0000000000 --- a/files/ru/web/api/document/activeelement/index.html +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Document.activeElement -slug: Web/API/Document/activeElement -tags: - - API - - Document - - HTML DOM - - Property - - Reference -translation_of: Web/API/DocumentOrShadowRoot/activeElement -translation_of_original: Web/API/Document/activeElement ---- -

{{ ApiRef() }}

- -

Анотация

- -

Возвращает текущий сфокусированный элемент, то есть элемент, на котором будут вызываться события клавиатуры, если пользователь начнёт с неё ввод. Этот атрибут доступен только для чтения.

- -

Часто возвращается {{ HTMLElement("input") }} или {{ HTMLElement("textarea") }} объект, если он содержит в себе выделенный в данный момент текст. При этом вы можете получить более подробные сведения, используя свойства элемента  selectionStart и selectionEnd.  В других случаях сфокусированным элементом может быть {{ HTMLElement("select") }} элемент (меню) или {{ HTMLElement("input") }} элемент типа button, checkbox или radio.

- -

{{ Note("На Mac, элементы, не являющиеся текстовыми полями, как правило, не получают фокус.") }}

- -

Как правило, пользователь может нажать клавишу табуляции для перемещения по фокусируемым элементам страницы, и использовать пробел для их активации (нажать кнопку button, выбрать переключатель radio).

- -

Не следует путать фокус с выделением документа, состоящего в основном из статических текстовых узлов. См. {{ domxref("window.getSelection()") }}. 

- -

Когда выделение отсутствует, активным элементом является {{ HTMLElement("body") }} страницы или null. 

- -

{{ Note("Этот атрибут является частью разрабатываемой спецификации HTML 5.") }}

- -

Синтаксис

- -
var curElement = document.activeElement;
-
- -

Пример

- -
<!DOCTYPE HTML>
-<html>
-<head>
-    <script type="text/javascript" charset="utf-8">
-    function init() {
-
-        function onMouseUp(e) {
-            console.log(e);
-            var outputElement = document.getElementById('output-element');
-            var outputText = document.getElementById('output-text');
-            var selectedTextArea = document.activeElement;
-            var selection = selectedTextArea.value.substring(
-            selectedTextArea.selectionStart, selectedTextArea.selectionEnd);
-            outputElement.innerHTML = selectedTextArea.id;
-            outputText.innerHTML = selection;
-        }
-
-        document.getElementById("ta-example-one").addEventListener("mouseup", onMouseUp, false);
-        document.getElementById("ta-example-two").addEventListener("mouseup", onMouseUp, false);
-    }
-    </script>
-</head>
-<body onload="init()">
-<div>
-    Выделите текст в одном из текстовых полей ниже:
-</div>
-<form id="frm-example" action="#" accept-charset="utf-8">
-<textarea name="ta-example-one" id="ta-example-one" rows="8" cols="40">
-Это текстовое поле 1:
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tincidunt, lorem a porttitor molestie, odio nibh iaculis libero, et accumsan nunc orci eu dui.
-</textarea>
-<textarea name="ta-example-two" id="ta-example-two" rows="8" cols="40">
-Это текстовое поле 2:
-Fusce ullamcorper, nisl ac porttitor adipiscing, urna orci egestas libero, ut accumsan orci lacus laoreet diam. Morbi sed euismod diam.
-</textarea>
-</form>
-ID активного элемента: <span id="output-element"></span><br/>
-Выделенный текст: <span id="output-text"></span>
-
-</body>
-</html>
-
- -

Посмотреть на JSFiddle

- -

Примечания

- -

Первоначально введенное как собственное расширение DOM в Internet Explorer 4, это свойство также поддерживается в Opera и Safari (в версии 4).

- -

Спецификации

- - - - - - - - - - - - - - - - -
СпецификацияСтатусКомментарий
{{SpecName('HTML WHATWG', 'interaction.html#dom-document-activeelement', 'activeElement')}}{{Spec2('HTML WHATWG')}} 
- -

Совместимость с браузерами

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support23.04 [1]9.64.0
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Basic support{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
-
- -

[1]: В IE9 наблюдается баг: при попытке получения доступа к activeElement в {{domxref("window.parent")}} {{domxref("Document")}} из {{HTMLElement("iframe")}} (т.е. parent.document.activeElement) выбрасывается ошибка.

- -

Связанные события

- - diff --git a/files/ru/web/api/document/async/index.html b/files/ru/web/api/document/async/index.html deleted file mode 100644 index 2ff21f28af..0000000000 --- a/files/ru/web/api/document/async/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Document.async -slug: Web/API/Document/async -translation_of: Web/API/XMLDocument/async ---- -

{{APIRef("DOM")}}{{Deprecated_header}} {{Non-standard_header}}

- -

document.async может быть установлен, для того, чтобы определить, что вызов {{domxref("document.load")}} должен быть выполнен синхронно или не синхронно. true - стандартное значение, определяющее, асинхронно ли должны быть загружены документы.

- -

(Загружать документы синхронно стало возможно с версии 1.4 alpha.)

- -

Пример

- -
function loadXMLData(e) {
-  alert(new XMLSerializer().serializeToString(e.target)); // Gives querydata.xml contents as string
-}
-
-var xmlDoc = document.implementation.createDocument("", "test", null);
-
-xmlDoc.async = false;
-xmlDoc.onload = loadXMLData;
-xmlDoc.load('querydata.xml');
- -

Спецификация

- - - -

Смотрите также

- - diff --git a/files/ru/web/api/document/createelement/index.html b/files/ru/web/api/document/createelement/index.html new file mode 100644 index 0000000000..15542d751d --- /dev/null +++ b/files/ru/web/api/document/createelement/index.html @@ -0,0 +1,82 @@ +--- +title: document.createElement +slug: DOM/document.createElement +tags: + - DOM + - Gecko +translation_of: Web/API/Document/createElement +--- +

{{ ApiRef() }}

+ +

Общая информация

+ +

В HTML-документах создает элемент c тем тегом, что указан в аргументе или HTMLUnknownElement, если имя тега не распознаётся.

+ +

В XUL-документах создает указанный в аргументе элемент XUL.

+ +

В остальных случаях создаёт элемент с нулевым NamespaceURI.

+ +

Параметры

+ +
var element = document.createElement(tagName, [options]);
+
+ + + +

Пример

+ +

Данный пример создает новый элемент <div> и вставляет его перед элементом с идентификатором org_div1:

+ +
<!DOCTYPE html>
+<html>
+<head>
+<title>||Работа с элементами||</title>
+</head>
+
+<body>
+<div><h1>Привет!</h1></div>
+<div id='org_div1'>Текст выше сгенерирован автоматически.</div>
+</body>
+
+<script>
+  document.body.onload = addElement;
+  var my_div = newDiv = null;
+
+  function addElement() {
+
+    // Создаем новый элемент div
+    // и добавляем в него немного контента
+
+    var newDiv = document.createElement("div");
+        newDiv.innerHTML = "<h1>Привет!</h1>";
+
+    // Добавляем только что созданый элемент в дерево DOM
+
+    my_div = document.getElementById("org_div1");
+    document.body.insertBefore(newDiv, my_div);
+  }
+</script>
+</html>
+
+ +

Заметки

+ +

Если существуют атрибуты со значениями по умолчанию, атрибуты узлов предоставляющие их создаются автоматически и применяются к элементу.

+ +

Для создания элементов с заданым пространством имен используйте метод createElementNS.

+ +

Реализация createElement в Gecko не соответствует DOM спецификации для XUL и XHTML документов: localName и namespaceURI не устанавливаются в  null в созданном документе. Смотрите {{ Bug(280692) }} для подробностей.

+ +

Для обратной совместимости с предыдущими версиями спецификации пользовательских элементов некоторые браузеры позволяют передавать здесь строку вместо объекта, где значением строки является имя тега пользовательского элемента.

+ +

Спецификации

+ +

DOM 2 Модуль: createElement

+ +

{{ languages( { "fr": "fr/DOM/document.createElement", "it": "it/DOM/document.createElement", "pl": "pl/DOM/document.createElement" } ) }}

diff --git a/files/ru/web/api/document/getselection/index.html b/files/ru/web/api/document/getselection/index.html deleted file mode 100644 index c57695e055..0000000000 --- a/files/ru/web/api/document/getselection/index.html +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Document.getSelection() -slug: Web/API/Document/getSelection -translation_of: Web/API/DocumentOrShadowRoot/getSelection -translation_of_original: Web/API/Document/getSelection ---- -

{{APIRef("DOM")}}

- -

Этот метод работает в точности так же, как {{domxref("Window.getSelection()")}}; он возвращает объект {{domxref("Selection")}}, в котором содержатся данные о тексте, выделенном в документе на данный момент.

diff --git a/files/ru/web/api/document/images/index.html b/files/ru/web/api/document/images/index.html new file mode 100644 index 0000000000..c9ba4ac1e2 --- /dev/null +++ b/files/ru/web/api/document/images/index.html @@ -0,0 +1,29 @@ +--- +title: document.images +slug: DOM/document.images +tags: + - DOM + - JavaScript +translation_of: Web/API/Document/images +--- +

{{ ApiRef() }}

+

Кратко об обьекте

+

document.images возвращает коллекцию изображений в текущем HTML документе.

+

Синтаксис

+
var htmlCollection = document.images;
+
+

Пример

+
var images = document.images;
+
+for(var i = 0; i < images.length; i++) {
+    if(images[i].src == "banner.gif") {
+      alert('Баннер найден!');
+    };
+};
+
+

Примечания

+

document.images.length — возвращает количество изображений на странице.

+

document.images является частью DOM HTML, и работает только в HTML документах.

+

Спецификация

+

DOM Level 2 HTML: HTMLDocument.images

+

{{ languages( { "en": "en/DOM/document.images", "fr": "fr/DOM/document.images", "pl": "pl/DOM/document.images","ru":"ru/DOM/document.images" } ) }}

diff --git a/files/ru/web/api/document/readystatechange_event/index.html b/files/ru/web/api/document/readystatechange_event/index.html new file mode 100644 index 0000000000..5a268b033f --- /dev/null +++ b/files/ru/web/api/document/readystatechange_event/index.html @@ -0,0 +1,90 @@ +--- +title: readystatechange +slug: Web/Events/readystatechange +tags: + - события +translation_of: Web/API/Document/readystatechange_event +--- +

{{ApiRef}}

+ +

Событие readystatechange срабатывает, когда изменяется атрибут документа readyState.

+ +

Основная информация

+ +
+
Спецификация
+
HTML5
+
 
+
Интерфейс
+
Event
+
Всплывает
+
Нет
+
Отменяемое
+
Нет
+
Цель
+
Document
+
Действие по умолчаанию
+
Нет
+
+ +

Свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СвойствоТипОписание
target {{readonlyInline}}{{domxref("EventTarget")}}Цель события (Самая верхняя цель в дереве DOM).
type {{readonlyInline}}{{domxref("DOMString")}}Тип события.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Всплывает ли событие.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Возможно ли отменить событие.
+ +

Примеры

+ +
document.readyState === "complete";
+// true
+
+
+// Альтернатива DOMContentLoaded
+document.onreadystatechange = function () {
+    if (document.readyState === "interactive") {
+        initApplication();
+    }
+}
+
+ +

Поддержка браузерами

+ +

Данное событие давно поддерживается Internet Explorer и может быть использовано в качестве альтернативы событию DOMContentLoaded (см. примечание [2] в разделе  Поддержка браузерами).

+ +

Связанные события

+ + diff --git a/files/ru/web/api/document_object_model/events/index.html b/files/ru/web/api/document_object_model/events/index.html new file mode 100644 index 0000000000..eeadb57328 --- /dev/null +++ b/files/ru/web/api/document_object_model/events/index.html @@ -0,0 +1,80 @@ +--- +title: Events and the DOM +slug: DOM/DOM_Reference/Events +translation_of: Web/API/Document_Object_Model/Events +--- +

Вступление

+ +

Вступление

+ +

В этой главе описывается модель событий DOM. Топ скрыть Интерфейс сам по себе описано, а также интерфейсы для регистрации событий на узлах в DOM, Также а слушатели события Главного , Также а Несколько больше Примеры, которые показывают, как Различные интерфейсы связаны друг события Главного с другом.

+ +

Существует отличная диаграмма, которая четко объясняет события трех этапов через DOM в проекте DOM Level 3 Events .

+ +

Также см. Пример 5: Распространение событий в главе «Примеры» для более подробного примера.

+ +

Регистрация слушателей событий

+ +

Есть 3 способа регистрации обработанных событий для элемента DOM.

+ +

EventTarget.addEventListener

+ +
// Предполагая, что myButton является элементом кнопки
+myButton.addEventListener ('click', greet, false);
+function greet (event) {
+    // распечатать и посмотреть на объект события
+    // всегда печатать аргументы в случае пропуска любых других аргументов
+    console.log ('greet:', arguments);
+    оповещение («Привет, мир»);
+}
+
+ +

Это метод, который вы должны использовать на современных веб-страницах.

+ +

Примечание. Internet Explorer 6-8 не поддерживает этот метод, предлагая аналогичный {{domxref ("EventTarget.attachEvent")}} API. Для кросс-браузерной совместимости используйте одну из множества доступных библиотек JavaScript.

+ +

Дополнительную информацию можно найти на справочной странице {{domxref ("EventTarget.addEventListener")}}.

+ +

Атрибут HTML

+ +
<button onclick = "alert ('Hello world!')">
+
+ +

Код JavaScript в атрибуте передается объекту Event через eventпараметр. Возвращаемое значение обрабатывается особым образом, описанным в спецификации HTML .

+ +

Этого пути следует избегать. Это делает разметку больше и менее читаемой. Проблемы содержания / структуры и поведения плохо разделены, что затрудняет поиск ошибки.

+ +

Свойства элемента DOM

+ +
// Предполагая, что myButton является элементом кнопки
+myButton.onclick = function(event){alert('Hello world');};
+
+ +

Функция может быть определена для получения eventпараметра. Возвращаемое значение обрабатывается особым образом, описанным в спецификации HTML .

+ +

Проблема этого метода в том, что для каждого элемента и для каждого события может быть установлен только один обработчик.

+ +

Доступ к интерфейсам событий

+ +

Обработчики событий могут быть присоединены к различным объектам, включая элементы DOM, документ, объект окна и т. Д. Когда происходит событие, объект события создается и последовательно передается слушателям события.

+ +

Интерфейс {{domxref ("Event")}} доступен из функции-обработчика через объект события, переданный в качестве первого аргумента. В следующем простом примере показано, как объект события передается в функцию-обработчик события и может использоваться из одной такой функции.

+ +
function print(evt) {
+  // параметру evt автоматически назначается объект события
+  // позаботимся о различиях в console.log и alert
+  console.log('print:', evt);
+  alert(evt);
+}
+// любая функция должна иметь подходящее имя, это то, что называется семантическим
+table_el.onclick = print; 
+
+ + + + diff --git a/files/ru/web/api/document_object_model/examples/index.html b/files/ru/web/api/document_object_model/examples/index.html new file mode 100644 index 0000000000..a3332f7585 --- /dev/null +++ b/files/ru/web/api/document_object_model/examples/index.html @@ -0,0 +1,382 @@ +--- +title: Examples of web and XML development using the DOM +slug: DOM/DOM_Reference/Examples +translation_of: Web/API/Document_Object_Model/Examples +--- +

В этой главе представлены более длинные примеры разработки веб-сайтов и XML с использованием DOM. По возможности, примеры используют общие API, трюки и шаблоны в JavaScript для управления объектом документа.

+ +

Пример 1: высота и ширина

+ +

В следующем примере показано использование свойств высоты и ширины для изображений разных размеров:
+  

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>width/height example</title>
+<script>
+function init() {
+  var arrImages = new Array(3);
+
+  arrImages[0] = document.getElementById("image1");
+  arrImages[1] = document.getElementById("image2");
+  arrImages[2] = document.getElementById("image3");
+
+  var objOutput = document.getElementById("output");
+  var strHtml = "<ul>";
+
+  for (var i = 0; i < arrImages.length; i++) {
+    strHtml += "<li>image" + (i+1) +
+            ": height=" + arrImages[i].height +
+            ", width=" + arrImages[i].width +
+            ", style.height=" + arrImages[i].style.height +
+            ", style.width=" + arrImages[i].style.width +
+            "<\/li>";
+  }
+
+  strHtml += "<\/ul>";
+
+  objOutput.innerHTML = strHtml;
+}
+</script>
+</head>
+<body onload="init();">
+
+<p>Image 1: no height, width, or style
+  <img id="image1" src="http://www.mozilla.org/images/mozilla-banner.gif">
+</p>
+
+<p>Image 2: height="50", width="500", but no style
+  <img id="image2"
+       src="http://www.mozilla.org/images/mozilla-banner.gif"
+       height="50" width="500">
+</p>
+
+<p>Image 3: no height, width, but style="height: 50px; width: 500px;"
+  <img id="image3"
+       src="http://www.mozilla.org/images/mozilla-banner.gif"
+       style="height: 50px; width: 500px;">
+</p>
+
+<div id="output"> </div>
+</body>
+</html>
+
+ +

Пример 2: Аттрибуты Изображения

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Modifying an image border</title>
+
+<script>
+function setBorderWidth(width) {
+  document.getElementById("img1").style.borderWidth = width + "px";
+}
+</script>
+</head>
+
+<body>
+<p>
+  <img id="img1"
+       src="image1.gif"
+       style="border: 5px solid green;"
+       width="100" height="100" alt="border test">
+</p>
+
+<form name="FormName">
+  <input type="button" value="Make border 20px-wide" onclick="setBorderWidth(20);" />
+  <input type="button" value="Make border 5px-wide"  onclick="setBorderWidth(5);" />
+</form>
+
+</body>
+</html>
+
+ +

Пример 3: Управление Стилями

+ +

В этом простом примере, некоторые базовые свойства стиля элемента абзаца HTML доступны с помощью объекта стиля элемента и свойств стиля CSS этого объекта, который можно получить и установить из DOM. В этом случае вы напрямую управляете отдельными стилями. В следующем примере (см. Пример 4), вы можете использовать таблицы стилей и их правила для изменения стилей для целых документов.

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Changing color and font-size example</title>
+
+<script>
+function changeText() {
+  var p = document.getElementById("pid");
+
+  p.style.color = "blue"
+  p.style.fontSize = "18pt"
+}
+</script>
+</head>
+<body>
+
+<p id="pid" onclick="window.location.href = 'http://www.cnn.com/';">linker</p>
+
+<form>
+  <p><input value="rec" type="button" onclick="changeText();" /></p>
+</form>
+
+</body>
+</html>
+
+ +

Пример 4: Использование Стилей

+ +

Свойство styleSheets объекта документа возвращает список таблиц стилей, которые были загружены в этот документ. Вы можете получить доступ к этим таблицам стилей и их правилам индивидуально, используя объекты таблицы стилей, стилей и CSS правил объекта, как показано в этом примере, который выводит все селектора правил стиля в консоль.

+ +
var ss = document.styleSheets;
+
+for(var i = 0; i < ss.length; i++) {
+  for(var j = 0; j < ss[i].cssRules.length; j++) {
+    dump( ss[i].cssRules[j].selectorText + "\n" );
+  }
+}
+ +

Для документа с единой таблицей стилей, в которой определены следующие три правила:

+ +
body { background-color: darkblue; }
+p { font-face: Arial; font-size: 10pt; margin-left: .125in; }
+#lumpy { display: none; }
+
+ +

Этот скрипт выводит следующее:

+ +
BODY
+P
+#LUMPY
+
+ +

Пример 5: Распространение Событий

+ +

Этот пример демонстрирует, как события срабатывают и обрабатываются в DOM очень простым путём. Когда загружается BODY в составе HTML-документа, обработчик событий регистрируется в верхней строке таблицы TABLE. Обработчик событий реагирует на событие запуском функции stopEvent, изменяющей значение в нижней ячейке.

+ +

Однако, stopEvent также вызывает метод объекта событий, {{domxref("event.stopPropagation")}}, что препятствует дальнейшему всплытию события в DOM. Обратите внимание, что сама таблица имеет {{domxref("element.onclick","onclick")}} обработчик событий, который должен отображать сообщение при нажатии на таблицу. Но метод stopEvent метод прекратил распространение, и поэтому после обновления данных в таблице фаза события эффективно завершается, и отображается окно предупреждения для подтверждения.

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Event Propagation</title>
+
+<style>
+#t-daddy { border: 1px solid red }
+#c1 { background-color: pink; }
+</style>
+
+<script>
+function stopEvent(ev) {
+  c2 = document.getElementById("c2");
+  c2.innerHTML = "hello";
+
+  // this ought to keep t-daddy from getting the click.
+  ev.stopPropagation();
+  alert("event propagation halted.");
+}
+
+function load() {
+  elem = document.getElementById("tbl1");
+  elem.addEventListener("click", stopEvent, false);
+}
+</script>
+</head>
+
+<body onload="load();">
+
+<table id="t-daddy" onclick="alert('hi');">
+  <tr id="tbl1">
+    <td id="c1">one</td>
+  </tr>
+  <tr>
+    <td id="c2">two</td>
+  </tr>
+</table>
+
+</body>
+</html>
+
+ +

Пример 6: getComputedStyle

+ +

Этот пример показывает как {{domxref("window.getComputedStyle")}} метод может использоваться для получения стилей элемента, которые не заданы с помощью атрибута style или с помощью JavaScript (e.g., elt.style.backgroundColor="rgb(173, 216, 230)"). Эти последние типы стилей можно получить с помощью более прямых {{domxref("element.style", "elt.style")}} свойств, которые указаны в DOM CSS Properties List.

+ +

getComputedStyle () возвращает объект ComputedCSSStyleDeclaration, свойства индивидуального стиля которого могут ссылаться на метод getPropertyValue () этого объекта, как показано в следующем примере документа.

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<title>getComputedStyle example</title>
+
+<script>
+function cStyles() {
+  var RefDiv = document.getElementById("d1");
+  var txtHeight = document.getElementById("t1");
+  var h_style = document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("height");
+
+  txtHeight.value = h_style;
+
+  var txtWidth = document.getElementById("t2");
+  var w_style = document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("width");
+
+  txtWidth.value = w_style;
+
+  var txtBackgroundColor = document.getElementById("t3");
+  var b_style = document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("background-color");
+
+  txtBackgroundColor.value = b_style;
+}
+</script>
+
+<style>
+#d1 {
+  margin-left: 10px;
+  background-color: rgb(173, 216, 230);
+  height: 20px;
+  max-width: 20px;
+}
+</style>
+
+</head>
+
+<body>
+
+<div id="d1">&nbsp;</div>
+
+<form action="">
+  <p>
+    <button type="button" onclick="cStyles();">getComputedStyle</button>
+    height<input id="t1" type="text" value="1" />
+    max-width<input id="t2" type="text" value="2" />
+    bg-color<input id="t3" type="text" value="3" />
+  </p>
+</form>
+
+</body>
+</html>
+
+ +

Пример 7: Отображение Свойств Событий Объекта

+ + + +

В этом примере используются методы DOM для отображения всех свойств объекта {{domxref ("window.onload")}} {{domxref ("event")}} и их значений в таблице. Он также показывает полезный метод использования цикла for..in для итерации по свойствам объекта для получения их значений.

+ +

Свойства объектов событий сильно различаются между браузерами, WHATWG DOM Standard перечисляет стандартные свойства, однако многие браузеры значительно расширили их.

+ +

Поместите следующий код в пустой текстовый файл и загрузите его в различные браузеры, вы будете удивлены различным количеством и именами свойств. Вы также можете добавить некоторые элементы на страницу и вызвать эту функцию из разных обработчиков событий.

+ + + +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>Show Event properties</title>
+
+<style>
+table { border-collapse: collapse; }
+thead { font-weight: bold; }
+td { padding: 2px 10px 2px 10px; }
+
+.odd { background-color: #efdfef; }
+.even { background-color: #ffffff; }
+</style>
+
+<script>
+
+function showEventProperties(e) {
+  function addCell(row, text) {
+    var cell = row.insertCell(-1);
+    cell.appendChild(document.createTextNode(text));
+  }
+
+  var e = e || window.event;
+  document.getElementById('eventType').innerHTML = e.type;
+
+  var table = document.createElement('table');
+  var thead = table.createTHead();
+  var row = thead.insertRow(-1);
+  var lableList = ['#', 'Property', 'Value'];
+  var len = lableList.length;
+
+  for (var i=0; i<len; i++) {
+    addCell(row, lableList[i]);
+  }
+
+  var tbody = document.createElement('tbody');
+  table.appendChild(tbody);
+
+  for (var p in e) {
+    row = tbody.insertRow(-1);
+    row.className = (row.rowIndex % 2)? 'odd':'even';
+    addCell(row, row.rowIndex);
+    addCell(row, p);
+    addCell(row, e[p]);
+  }
+
+  document.body.appendChild(table);
+}
+
+window.onload = function(event){
+  showEventProperties(event);
+}
+</script>
+</head>
+
+<body>
+<h1>Properties of the DOM <span id="eventType"></span> Event Object</h1>
+</body>
+
+</html>
+
+ +

Пример 8: Использование интерфейса таблицы DOM

+ + + +

Интерфейс DOM HTMLTableElement предоставляет некоторые удобные методы для создания и управления таблицами. Два часто используемых метода: {{domxref ("HTMLTableElement.insertRow")}} и {{domxref ("tableRow.insertCell")}}.

+ +

Чтобы добавить строку и некоторые ячейки в существующую таблицу:

+ + + +
<table id="table0">
+ <tr>
+  <td>Row 0 Cell 0</td>
+  <td>Row 0 Cell 1</td>
+ </tr>
+</table>
+
+<script>
+var table = document.getElementById('table0');
+var row = table.insertRow(-1);
+var cell,
+    text;
+
+for (var i = 0; i < 2; i++) {
+  cell = row.insertCell(-1);
+  text = 'Row ' + row.rowIndex + ' Cell ' + i;
+  cell.appendChild(document.createTextNode(text));
+}
+</script>
+
+ +

Заметки

+ + + + + + diff --git a/files/ru/web/api/document_object_model/index.html b/files/ru/web/api/document_object_model/index.html new file mode 100644 index 0000000000..db06b01dd8 --- /dev/null +++ b/files/ru/web/api/document_object_model/index.html @@ -0,0 +1,387 @@ +--- +title: Руководство по DOM +slug: DOM/DOM_Reference +tags: + - DOM + - DOM Reference + - DOM интерфейс + - Intermediate + - Руководство +translation_of: Web/API/Document_Object_Model +--- +

Объектная Модель Документа (DOM) является программным интерфейсом для HTML, XML и SVG документов. Это обеспечивает структурированное представление документа (дерева), и определяет способ, по которому структура может быть доступна для программы, для изменения структуры документа, его стиля и содержания. DOM обеспечивает представление документа в виде структурированной группы узлов и объектов, которые имеют свойства и методы. По сути, она связывает веб -страницы со скриптами или языками программирования.

+ +

DOM чаще всего используется в JavaScript, но не является его частью, поэтому иногда с DOM работают в других языках.

+ +

Введение в DOM доступно.

+ +

DOM интерфейсы

+ +
+ +
+ +

Устаревшие интерфейсы

+ +

Объектная модель документа находится в процессе значительного упрощения. Для того, чтобы достигнуть этого следующие интерфейсы, присутствующие на различных DOM level 3 или более ранних спецификациях были удалены. До сих пор неясно, будут ли некоторые из них возвращены, но на данный момент они должны быть рассмотрены как устаревшие, и их использования следует избегать:

+ +
+ +
+ +

HTML интерфейсы

+ +

Документ, содержащий HTML описывается с помощью {{domxref("HTMLDocument")}} интерфейса. Обратите внимание, что HTML спецификация также расширяет {{domxref("Document")}} интерфейс.

+ +

Объект HTMLDocument также даёт доступ к следующим возможностям браузера: вкладки, окна, в которых отрисовывается страница, используя интерфейс {{domxref("Window")}}, асcоциированный с ним {{domxref("window.style", "Style")}} (обычно CSS), история браузера, относящаяся к контексту, {{domxref("window.history", "History")}}, в конце концов, {{domxref("Selection")}} в документе.

+ +

Интерфейсы HTML элементов

+ +
+ +
+ +

Другие интерфейсы

+ +
+ +
+ +

Устаревшие HTML интерфейсы

+ +
+ +
+ +

SVG интерфейсы

+ +

Интерфейсы SVG элементов

+ +
+ +
+ +

Интерфейсы SVG данных

+ +

DOM API для типов данных, используемых в определениях SVG свойств и атрибутов.

+ +
+

Замечание: Начиная с {{Gecko("5.0")}}, следующие относящиеся к SVG DOM интерфейсы, представляя списки объектов, индексируются и к ним можно иметь доступ как к массивам; к тому же, у них есть свойство длины, обозначающее количество элементов в списках: {{domxref("SVGLengthList")}}, {{domxref("SVGNumberList")}}, {{domxref("SVGPathSegList")}} и {{domxref("SVGPointList")}}.

+
+ +

Статический тип

+ +
+ +
+ +

Анимированный тип

+ +
+ +
+ +

Относящиеся к SMIL

+ +
+ +
+ +

Другие SVG интерфейсы

+ +
+ +
+ +

Смотрите также

+ + + +
+
+
diff --git a/files/ru/web/api/document_object_model/introduction/index.html b/files/ru/web/api/document_object_model/introduction/index.html new file mode 100644 index 0000000000..3c02e5799f --- /dev/null +++ b/files/ru/web/api/document_object_model/introduction/index.html @@ -0,0 +1,230 @@ +--- +title: Введение +slug: DOM/DOM_Reference/Введение +tags: + - DOM +translation_of: Web/API/Document_Object_Model/Introduction +--- +
+

Этот раздел представляет краткое знакомство с Объектной Моделью Документа (DOM) - что такое DOM, каким образом предоставляются структуры HTML и XML документов, и как взаимодействовать с ними. Данный раздел содержит справочную информацию и примеры.

+ +

Что такое Объектная Модель Документа (DOM)?

+ +

Объектная Модель Документа (DOM) – это программный интерфейс (API) для HTML и XML документов. DOM предоставляет структурированное представление документа и определяет то, как эта структура может быть доступна из программ, которые могут изменять содержимое, стиль и структуру документа. Представление DOM состоит из структурированной группы узлов и объектов, которые имеют свойства и методы. По существу, DOM соединяет веб-страницу с языками описания сценариев либо языками программирования.
+
+ Веб-страница – это документ. Документ может быть представлен как в окне браузера, так и в самом HTML-коде. В любом случае, это один и тот же документ. DOM предоставляет другой способ представления, хранения и управления этого документа. DOM полностью поддерживает объектно-ориентированнное представление веб-страницы, делая возможным её изменение при помощи языка описания сценариев наподобие JavaScript.
+
+ Стандарты W3C DOM и WHATWG DOM формируют основы DOM, реализованные в большинстве современных браузеров. Многие браузеры предлагают расширения за пределами данного стандарта, поэтому необходимо проверять работоспособность тех или иных возможностей DOM для каждого конкретного браузера.

+ +

Например: стандарт DOM описывает, что метод getElementsByTagName в коде, указанном ниже, должен возращать список всех элементов <p> в документе.

+ +
paragraphs = document.getElementsByTagName("P");
+// paragraphs[0] это первый <p> элемент
+// paragraphs[1] это второй <p> элемент и т.д.
+alert(paragraphs[0].nodeName);
+ +

Все свойства, методы и события, доступные для управления и создания новых страниц, организованы в виде объектов. Например, объект document, который представляет сам документ, объект table, который реализует специальный интерфейс DOM HTMLTableElement, необходимый для доступа к HTML-таблицам, и так далее. Данная документация даёт справку об объектах DOM, реализованных Gecko-подобных браузерах.

+ +

DOM и JavaScript

+ +

Небольшой пример выше, как почти все примеры в этой справке – это JavaScript. То есть пример написан на JavaScript, но при этом используется DOM для доступа к документу и его элементам. DOM не является языком программирования, но без него JavaScript не имел бы никакой модели или представления о веб-странице, HTML-документе, XML-документе и их элементах. Каждый элемент в документе - весь документ в целом, заголовок, таблицы внутри документа, заголовки таблицы, текст внутри ячеек таблицы - это части объектной документной модели для этого документа, поэтому все они могут быть доступны и могут изменяться с помощью DOM и скриптового языка наподобие JavaScript.

+ +

Вначале JavaScript и DOM были тесно связаны, но впоследствии они развились в различные сущности. Содержимое страницы хранится в DOM и может быть доступно и изменяться с использованием JavaScript, поэтому мы можем записать это в виде приблизительного равенства:

+ +

API (веб либо XML страница) = DOM + JS (язык описания скриптов)

+ +

DOM спроектирован таким образом, чтобы быть независимым от любого конкретного языка программирования, обеспечивая структурное представление документа согласно единому и последовательному API. Хотя мы всецело сфокусированы на JavaScript в этой справочной документации, реализация DOM может быть построена для любого языка, как в следующем примере на Python:

+
+ +
# Пример DOM на языке Python
+import xml.dom.minidom as m
+doc = m.parse("C:\\Projects\\Py\\chap1.xml");
+doc.nodeName # Свойство объекта документа DOM;
+p_list = doc.getElementsByTagName("para");
+ +

Для подробной информации о том, какие технологии участвуют в написании JavaScript для веб, смотрите обзорную статью JavaScript technologies overview.

+ +

Каким образом доступен DOM? 

+ +

Вы не должны делать ничего особенного для работы с DOM. Различные браузеры имеют различную реализацию DOM, эти реализации показывают различную степень соответсвия с действительным стандартом DOM (это тема, которую мы пытались не затрагивать в данной документации), но каждый браузер использует свой DOM, чтобы сделать веб страницы доступными для взаимодествия с языками сценариев.

+ +

При создании сценария с использованием элемента <script>, либо включая в веб страницу инструкцию для загрузки скрипта, вы можете немедленно приступить к использованию программного интерфейса (API), используя элементы document или window для взаимодействия с самим документом, либо для получения потомков этого документа, т.е. различных элементов на странице. Ваше программирование DOM может быть чем-то простым, например, вывод сообщения с использованием функции alert() объекта window, или использовать более сложные методы DOM, которые создают новое содержимое, как показанно в следующем примере:

+ +
<body onload="window.alert('добро пожаловать на мою домашнюю страницу!');">
+
+ +

В следующем примере внутри элемента <script> определен код JavaScript, данный код устанавливает функцию при загрузке документа (когда весь DOM доступен для использования). Эта функция создает новый элемент H1, добавляет текст в данный элемент, а затем добавляет H1 в дерево документа:

+ +
<html>
+  <head>
+    <script>
+    // запуск данной функции при загрузке документа
+       window.onload = function() {
+    // создание нескольких элементов
+    // в пустой HTML странице
+       heading = document.createElement("h1");
+       heading_text = document.createTextNode("Big Head!");
+       heading.appendChild(heading_text);
+       document.body.appendChild(heading);
+      }
+    </script>
+  </head>
+  <body>
+  </body>
+</html>
+ +

Важные типы данных

+ +

Данный раздел предназначен для краткого описания различных типов и объектов в простой и доступной манере. Существует некоторое количество различных типов данных, которые используются в API, на которые вы должны обратить внимание. Для простоты, синтаксис примеров в данном разделе обычно ссылается на узлы как на elements, на массивы узлов как на nodeLists ( либо просто elements ) и на атрибуты узла, просто как на attributes.

+ +

Ниже таблица с кратким описанием этих типов данных.

+ + + + + + + + + + + + + + + + + + + + + + + + +
documentКогда член возвращает объект типа document (например, свойство элемента ownerDocument возвращает документ к которому он относится), этот обьект document является собственным корневым обьектом. В DOM document Reference разделе описан объект document.
+ element   
elementобозначает элемент или узел типа element, возвращаемый членом DOM API. Вместо того, чтобы говорить, что метод document.createElement() возвращает ссылку на node, мы просто скажем, что этот элемент возвращает element, который просто был создан в DOM. Объекты element реализуют DOM element интерфейс и также более общий Node интерфейс. Оба интерфейса включены в эту справку.
+ nodeList
NodeList +

массив элементов, как тот, что возвращается методом Document.getElementsByTagName(). Конкретные элементы в массиве доступны по индексу двумя способами:

+ +
    +
  •     list.item(1)
  • +
  •     list[1]
  • +
+ +

Эти способы эквивалентны. В первом способе item() - единственный метод объекта NodeList. Последний использует обычный синтаксис массивов, чтобы получить второе значение в списке.

+
attributeКогда attribute возвращается членом API (например, метод createAttribute()) - это будет ссылка на объект, который предоставляет специальный (хоть и небольшой) интерфейс для атрибутов. Атрибуты - это узлы в DOM, как и элементы, хотя вы можете редко использовать их в таком виде.
namedNodeMapnamedNodeMap подобна массиву, но элементы доступны по имени или индексу. Доступ по индексу - это лишь для удобства перечисления, т.к. элементы не имеют определенног порядка в списке. Этот тип данных имеет метод item() для этих целей и вы можете также добавлять и удалять элементы из namedNodeMap
+ + + +

DOM-интерфейсы (DOM interfaces)

+ + + +

Это руководство об объектах и реальных вещах, которые вы можете использовать для управления DOM-иерархией. Есть много моментов, где понимание того, как это работает, может удивлять. Например, объект, представляющий HTML form элемент, берет своё свойство name из интерфейса HTMLFormElement, а свойство className - из интерфейса HTMLElement. В обоих случаях свойство, которое вы хотите, находится в этом объекте формы.

+ +

Кроме того, отношение между объектами и интерфейсами, которые они реализуют в DOM может быть удивительным и этот раздел пытается рассказать немного о существующих интерфейсах в DOM и о том, как они могут быть доступны.

+ +

Интерфейсы и объекты (Interfaces and objects)

+ +

Многие объекты реализуют действия из нескольких интерфейсов. Объект таблицы, например, реализует специальный HTML Table Element Interface, который включает такие методы как createCaption и insertRow. Но так как это таблица - это ещё и HTML-элемент, table реализует интерфейс Element, описанный в разделе DOM element Reference. Наконец, так как HTML-элемент (в смысле DOM) - это узел (node) в дереве, которое составляет объектную модель для HTML- или XML-страницы, табличный элемент также реализует более общий интерфейс Node, из которого происходит Element.

+ +

Когда вы получаете ссылку на объект table, как в следующем примере, вы обычно используете все три интерфейса этого объекта, вероятно, даже не зная этого.

+ +
var table = document.getElementById("table");
+var tableAttrs = table.attributes; // Node/Element interface
+for (var i = 0; i < tableAttrs.length; i++) {
+  // HTMLTableElement interface: border attribute
+  if(tableAttrs[i].nodeName.toLowerCase() == "border")
+    table.border = "1";
+}
+// HTMLTableElement interface: summary attribute
+table.summary = "note: increased border";
+ +

Основные интерфейсы в DOM (Core interfaces in the DOM)

+ +

Этот раздел перечисляет несколько самых распространенных интерфейсов в DOM. Идея не в том чтобы описать, что делают эти методы API, но в том чтобы дать вам несколько мыслей насчет видов методов и свойств, которые вы будете часто видеть, используя DOM. Эти распространенные части API использованы в большинстве примеров раздела DOM Examples в конце этой справки.

+ +

Document, window - это объекты, чьи интерфейсы вы, как правило, очень часто используете в программировании DOM. Говоря простыми словами, объект window представляет что-то вроде браузера, а объект document - корень самого документа. Element наследуется от общего интерфейса Node, и эти интерфейсы вместе предоставляют много методов и свойств, которые можно применять у отдельных элементов. Эти элементы также могут иметь отдельные интерфейсы для работы с типами данных, которые эти элементы содержат, как в примере с объектом table в предыдущем случае.

+ +

Ниже представлен краткий список распространненых членов API, используемых в программировании веб- и XML-страниц с использованием DOM:

+ + + +

Тестирование DOM API

+ +

Этот документ содержит примеры для каждого интерфейса, который вы можете использовать в своей разработке. В некоторых случаях примеры - полноценные веб-страницы с доступом к DOM в элементе <script>, также перечислены элементы, необходимые чтобы запустить скрипт в форме, и HTML-элементы, над которыми будут производиться операции DOM. Когда встречается такой случай, можно просто копировать и вставить пример в новый HTML-документ, сохранить и запустить его в браузере.

+ +

Есть случаи, однако, где примеры более лаконичные. Чтобы запустить примеры, которые лишь демонстрируют основы взаимодействия интерфейсов с HTML-элементами, вы можете подготовить тестовую страницу, в которую будете помещать функции внутрь скриптов. Следующая очень простая веб-страница содержит элемент <script> в заголовке, в который вы можете поместить функции, чтобы протестировать интерфейс. Страница содержит несколько элементов с атрибутами, которые можно возвращать, устанавливать или, другими словами, манипулировать и содержит пользовательский интерфейс, необходимый, чтобы вызывать нужные функции из браузера.

+ +

Вы можете использовать эту тестовую страницу или похожую для проверки интерфейсов DOM, которые вас интересуют и просмотра того, как они работают в браузерах. Вы можете обновить содержмое функции test() при необходимости, создать больше кнопок или добавить элементы при необходимости.

+ +
<html>
+  <head>
+    <title>DOM Tests</title>
+    <script type="application/javascript">
+    function setBodyAttr(attr, value){
+      if (document.body) eval('document.body.'+attr+'="'+value+'"');
+      else notSupported();
+    }
+    </script>
+  </head>
+  <body>
+    <div style="margin: .5in; height: 400;">
+      <p><b><tt>text</tt></b></p>
+      <form>
+        <select onChange="setBodyAttr('text',
+        this.options[this.selectedIndex].value);">
+          <option value="black">black
+          <option value="darkblue">darkblue
+        </select>
+        <p><b><tt>bgColor</tt></b></p>
+        <select onChange="setBodyAttr('bgColor',
+        this.options[this.selectedIndex].value);">
+          <option value="white">white
+          <option value="lightgrey">gray
+        </select>
+        <p><b><tt>link</tt></b></p>
+        <select onChange="setBodyAttr('link',
+        this.options[this.selectedIndex].value);">
+          <option value="blue">blue
+          <option value="green">green
+        </select>  <small>
+        <a href="http://www.brownhen.com/dom_api_top.html" id="sample">
+        (sample link)</a></small><br>
+      </form>
+      <form>
+        <input type="button" value="version" onclick="ver()" />
+      </form>
+    </div>
+  </body>
+</html>
+ +

Чтобы протестировать много интерфейсов на одной странице, набор свойств, которые изменяют цвета веб-страницы, можно создать похожую веб-страницу с целой "консолью" кнопок, текстовых полей и других элементов. Следующий скриншот даёт идею, как интерфейсы могут быть сгруппированы вместе для тестирования

+ +

+ +

В этом примере выпадающее меню динамически обновляет доступные из DOM части веб-страницы (например, фоновый цвет, цвет ссылок и цвет текста). Однако при разработке тестовых страниц, тестирование интерфейсов, как вы об этом прочитали, важная часть изучения эффективной работы с DOM.

+ +

Другие статьи

+ + diff --git a/files/ru/web/api/document_object_model/locating_dom_elements_using_selectors/index.html b/files/ru/web/api/document_object_model/locating_dom_elements_using_selectors/index.html new file mode 100644 index 0000000000..73538e8616 --- /dev/null +++ b/files/ru/web/api/document_object_model/locating_dom_elements_using_selectors/index.html @@ -0,0 +1,50 @@ +--- +title: Locating DOM elements using selectors +slug: DOM/DOM_Reference/Locating_DOM_elements_using_selectors +translation_of: Web/API/Document_object_model/Locating_DOM_elements_using_selectors +--- +
{{ gecko_minversion_header("1.9.1") }}
+ +
Selectors API предоставляет методы, с помощью которых можно быстро и просто получить доступ к узлам Element из DOM путем сопоставления с набором селекторов. Это намного быстрее, чем прошлые техники, где надо было, например, использовать цикл в JS-коде, чтобы найти конкретные элементы.
+ +
 
+ +

Интерфейс NodeSelector (The NodeSelector interface)

+ +

Эта спецификация добавляет два новых метода к любым объектам, реализующим интерфейс Document, DocumentFragment, или Element:

+ +
+
querySelector
+
Возвращает первый совпадающий узел Element внутри поддерева. Если совпадающих узлов нет, будет возвращен null.
+
querySelectorAll
+
Возвращает NodeList, содержащий все подходящие узлы Element внутри поддерева узлов. Или возвращает пустой NodeList, если совпадений не найдено.
+
+ +
Замечание: NodeList, возвращаемый методом querySelectorAll(), не настоящий. Этот список отличается от других методов поиска DOM, которые возвращают настоящие (живые) узлы.
+ +

Вы можете найти примеры и детали, прочитав документацию для методов querySelector() и querySelectorAll(), а также в статье Code snippets for querySelector.

+ +

Selectors

+ +

Селекторные методы принимают один или больше селекторов, разделенных запятыми, чтобы определить, какие элементы должны быть возвращены. Например, чтобы все параграфы в документе, которые имеют классы warning или note, можно сделать следующее:

+ +
var special = document.querySelectorAll( "p.warning, p.note" );
+ +

Также можно искать по ID. Например:

+ +
var el = document.querySelector( "#main, #basic, #exclamation" );
+ +

После выполнения кода выше, el будет содержать первый элемент в документе, чей ID main, basic или exclamation

+ +

Вы можете использовать любые CSS-селекторы в методах querySelector(), querySelectorAll()

+ +

See also

+ + diff --git a/files/ru/web/api/documentorshadowroot/activeelement/index.html b/files/ru/web/api/documentorshadowroot/activeelement/index.html new file mode 100644 index 0000000000..71db5bc678 --- /dev/null +++ b/files/ru/web/api/documentorshadowroot/activeelement/index.html @@ -0,0 +1,165 @@ +--- +title: Document.activeElement +slug: Web/API/Document/activeElement +tags: + - API + - Document + - HTML DOM + - Property + - Reference +translation_of: Web/API/DocumentOrShadowRoot/activeElement +translation_of_original: Web/API/Document/activeElement +--- +

{{ ApiRef() }}

+ +

Анотация

+ +

Возвращает текущий сфокусированный элемент, то есть элемент, на котором будут вызываться события клавиатуры, если пользователь начнёт с неё ввод. Этот атрибут доступен только для чтения.

+ +

Часто возвращается {{ HTMLElement("input") }} или {{ HTMLElement("textarea") }} объект, если он содержит в себе выделенный в данный момент текст. При этом вы можете получить более подробные сведения, используя свойства элемента  selectionStart и selectionEnd.  В других случаях сфокусированным элементом может быть {{ HTMLElement("select") }} элемент (меню) или {{ HTMLElement("input") }} элемент типа button, checkbox или radio.

+ +

{{ Note("На Mac, элементы, не являющиеся текстовыми полями, как правило, не получают фокус.") }}

+ +

Как правило, пользователь может нажать клавишу табуляции для перемещения по фокусируемым элементам страницы, и использовать пробел для их активации (нажать кнопку button, выбрать переключатель radio).

+ +

Не следует путать фокус с выделением документа, состоящего в основном из статических текстовых узлов. См. {{ domxref("window.getSelection()") }}. 

+ +

Когда выделение отсутствует, активным элементом является {{ HTMLElement("body") }} страницы или null. 

+ +

{{ Note("Этот атрибут является частью разрабатываемой спецификации HTML 5.") }}

+ +

Синтаксис

+ +
var curElement = document.activeElement;
+
+ +

Пример

+ +
<!DOCTYPE HTML>
+<html>
+<head>
+    <script type="text/javascript" charset="utf-8">
+    function init() {
+
+        function onMouseUp(e) {
+            console.log(e);
+            var outputElement = document.getElementById('output-element');
+            var outputText = document.getElementById('output-text');
+            var selectedTextArea = document.activeElement;
+            var selection = selectedTextArea.value.substring(
+            selectedTextArea.selectionStart, selectedTextArea.selectionEnd);
+            outputElement.innerHTML = selectedTextArea.id;
+            outputText.innerHTML = selection;
+        }
+
+        document.getElementById("ta-example-one").addEventListener("mouseup", onMouseUp, false);
+        document.getElementById("ta-example-two").addEventListener("mouseup", onMouseUp, false);
+    }
+    </script>
+</head>
+<body onload="init()">
+<div>
+    Выделите текст в одном из текстовых полей ниже:
+</div>
+<form id="frm-example" action="#" accept-charset="utf-8">
+<textarea name="ta-example-one" id="ta-example-one" rows="8" cols="40">
+Это текстовое поле 1:
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tincidunt, lorem a porttitor molestie, odio nibh iaculis libero, et accumsan nunc orci eu dui.
+</textarea>
+<textarea name="ta-example-two" id="ta-example-two" rows="8" cols="40">
+Это текстовое поле 2:
+Fusce ullamcorper, nisl ac porttitor adipiscing, urna orci egestas libero, ut accumsan orci lacus laoreet diam. Morbi sed euismod diam.
+</textarea>
+</form>
+ID активного элемента: <span id="output-element"></span><br/>
+Выделенный текст: <span id="output-text"></span>
+
+</body>
+</html>
+
+ +

Посмотреть на JSFiddle

+ +

Примечания

+ +

Первоначально введенное как собственное расширение DOM в Internet Explorer 4, это свойство также поддерживается в Opera и Safari (в версии 4).

+ +

Спецификации

+ + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('HTML WHATWG', 'interaction.html#dom-document-activeelement', 'activeElement')}}{{Spec2('HTML WHATWG')}} 
+ +

Совместимость с браузерами

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support23.04 [1]9.64.0
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Basic support{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
+
+ +

[1]: В IE9 наблюдается баг: при попытке получения доступа к activeElement в {{domxref("window.parent")}} {{domxref("Document")}} из {{HTMLElement("iframe")}} (т.е. parent.document.activeElement) выбрасывается ошибка.

+ +

Связанные события

+ + diff --git a/files/ru/web/api/documentorshadowroot/getselection/index.html b/files/ru/web/api/documentorshadowroot/getselection/index.html new file mode 100644 index 0000000000..c57695e055 --- /dev/null +++ b/files/ru/web/api/documentorshadowroot/getselection/index.html @@ -0,0 +1,9 @@ +--- +title: Document.getSelection() +slug: Web/API/Document/getSelection +translation_of: Web/API/DocumentOrShadowRoot/getSelection +translation_of_original: Web/API/Document/getSelection +--- +

{{APIRef("DOM")}}

+ +

Этот метод работает в точности так же, как {{domxref("Window.getSelection()")}}; он возвращает объект {{domxref("Selection")}}, в котором содержатся данные о тексте, выделенном в документе на данный момент.

diff --git a/files/ru/web/api/element/accesskey/index.html b/files/ru/web/api/element/accesskey/index.html deleted file mode 100644 index 0230ecc9e0..0000000000 --- a/files/ru/web/api/element/accesskey/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Element.accessKey -slug: Web/API/Element/accessKey -translation_of: Web/API/HTMLElement/accessKey -translation_of_original: Web/API/Element/accessKey ---- -
{{APIRef("DOM")}}
- -
 
- -

Описание

- -

Свойство accessKey позволяет перейти к элементу с помощью сочетания клавиш - заданной им и тех, что назначит браузер.

- -
-

По сути, accessKey задает значение для одноименного атрибута...

-
- -
-

Данное свойство использовать не рекоммендуется, поскольку в браузерах уже заданы подобные привязки и неосторожное обращение может привести к жестокому конфликту.

-
- -

 

- -

Синтаксис

- -
var key = elem.accessKey;
-elem.accessKey = key;
-
- -

 

- -

Пример

- -
var elem = document.getElementById("id");
-elem.accessKey = "w";
-
- -

Немного информации

- -

Фокусировка на элемент произойдет при нажатии следующих клавиш (,где acesskey - значение свойства acessKey).

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

      Браузер

-
-

      Сочетание

-
Firefox[Alt] [Shift] + accesskey
Internet Explorer[Alt] + accesskey
Chrome[Alt] + accesskey
Safari[Alt] + accesskey
Opera[Shift] [Esc] + accesskey
diff --git a/files/ru/web/api/element/blur_event/index.html b/files/ru/web/api/element/blur_event/index.html new file mode 100644 index 0000000000..a29fa0debc --- /dev/null +++ b/files/ru/web/api/element/blur_event/index.html @@ -0,0 +1,153 @@ +--- +title: blur (event) +slug: Web/Events/blur +tags: + - DOM + - DOM Events +translation_of: Web/API/Element/blur_event +--- +

Событие blur вызывается когда элемент теряет фокус. Главное отличие между этим событием и  focusout только в том что у последнего есть фаза всплытия.

+ +

Основная информация

+ +
+
Спецификация
+
DOM L3
+
Интерфейс
+
{{domxref("FocusEvent")}}
+
Всплытие
+
Нет
+
Отменяемый
+
Нет
+
Цель
+
Элемент
+
Действие по умолчанию
+
Нет
+
+ +

{{NoteStart}}Значение {{domxref("Document.activeElement")}} меняется в зависимости от браузера во время выполнения этого события ({{bug(452307)}}): IE10 устанавливает его к элементу на который будет перемещен фокус, в то время как Firefox и Chrome обычно устанавливают его к body документа{{NoteEnd}}

+ +

Свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}Event target (DOM element)
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
relatedTarget {{readonlyInline}}{{domxref("EventTarget")}} (DOM element)null
+ +

Делегирование события

+ +

Есть два способа реализовать делегирование этого события: использовать событие focusout в браузерах которые поддерживают его (все браузеры, Firefox с 52+), или установить параметр "useCapture" метода addEventListener на true:

+ +

HTML Content

+ +
<form id="form">
+  <input type="text" placeholder="text input">
+  <input type="password" placeholder="password">
+</form>
+ +

JavaScript Content

+ +
var form = document.getElementById("form");
+form.addEventListener("focus", function( event ) {
+  event.target.style.background = "pink";
+}, true);
+form.addEventListener("blur", function( event ) {
+  event.target.style.background = "";
+}, true);
+ +

{{EmbedLiveSample('Event_delegation')}}

+ +

Совместимость с браузерами

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support5{{CompatVersionUnknown}}[1]612.15.1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support4.053{{CompatUnknown}}10.012.15.1
+
+ +

[1] В Gecko до 24 {{geckoRelease(24)}} интефейс для этого события был {{domxref("Event")}}, не {{domxref("FocusEvent")}}. Смотреть ({{bug(855741)}}).

+ +

Похожие события

+ + diff --git a/files/ru/web/api/element/error_event/index.html b/files/ru/web/api/element/error_event/index.html new file mode 100644 index 0000000000..787fb9a4fa --- /dev/null +++ b/files/ru/web/api/element/error_event/index.html @@ -0,0 +1,95 @@ +--- +title: error +slug: Web/Events/error +tags: + - DOM + - UI события + - Видео + - Запись + - Медия + - Обработка ошибок + - Ошибки + - Событие + - аудио + - события +translation_of: Web/API/Element/error_event +--- +

Событие error возникает, когда произошла какая-либо ошибка. Точные обстоятельства могут быть различными, потому что события с этим именем используются множеством различных API.

+ +

Общая информация

+ +
+
Спецификация
+
DOM L3
+
Интерфейс
+
{{domxref("UIEvent")}} если создается элементом пользовательского интерфейса, {{domxref("MediaRecorderErrorEvent")}} если генерируется API записи MediaStream, и {{domxref("Event")}} иначе.
+
Вплывающее
+
Нет
+
Отменяемое
+
Нет
+
Цель
+
Элемент
+
Действие по умолчанию
+
Нет
+
+ +

Свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}EventTargetЦель события (наиболее верхлежащий элемент в DOM дереве).
type {{readonlyInline}}DOMStringТип события.
bubbles {{readonlyInline}}BooleanЯвляется ли событие вплывающим в стандартных условиях или нет.
cancelable {{readonlyInline}}BooleanЯвляется ли событие отменяемым или нет.
view {{readonlyInline}}WindowProxydocument.defaultView (свойство window объекта document)
detail {{readonlyInline}}long (float)0.
+ +

Для MediaStream Recording событий

+ +

Эти события типа {{domxref("MediaRecorderErrorEvent")}}.

+ +

{{page("/en-US/docs/Web/API/MediaRecorderErrorEvent", "Properties")}}

+ +

Смотрите также

+ +
+
{{domxref("GlobalEventHandlers.onerror")}}
+
События отсылаются в {{domxref("Window.onerror")}} и {{domxref("Element.onerror")}}
+
{{domxref("HTMLMediaElement.onerror")}}
+
События отсылаются в {{domxref("HTMLMediaElement")}}, включая {{HTMLElement("audio")}} и {{HTMLElement("video")}}
+
{{domxref("MediaRecorder.onerror")}}
+
События отсылаются в {{domxref("MediaRecorder.onerror")}}, типа {{domxref("MediaRecorderErrorEvent")}}
+
diff --git a/files/ru/web/api/element/focusin_event/index.html b/files/ru/web/api/element/focusin_event/index.html new file mode 100644 index 0000000000..02f27b66fb --- /dev/null +++ b/files/ru/web/api/element/focusin_event/index.html @@ -0,0 +1,123 @@ +--- +title: focusin +slug: Web/Events/focusin +translation_of: Web/API/Element/focusin_event +--- +

Событие focusin срабатывает, когда элемент получает фокус. Главное отличие от focus в том, что последний не всплывает.

+ +

Общая информация

+ +
+
Specification
+
DOM L3
+
Interface
+
{{domxref("FocusEvent")}}
+
Bubbles
+
Yes
+
Cancelable
+
No
+
Target
+
Element
+
Default Action
+
None.
+
+ +

Свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}Event target losing focus.
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
relatedTarget {{readonlyInline}}{{domxref("EventTarget")}} (DOM element)Event target receiving focus.
+ +

Browser compatibility

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatNo}}[1]{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatNo}}[1]{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
+
+ +

[1] Событие пока что не поддерживается в Firefox, см. {{Bug("687787")}}. Вместо него можно использовать событие focus, которое совместимо с делегированием событий.

+ + + + diff --git a/files/ru/web/api/element/focusout_event/index.html b/files/ru/web/api/element/focusout_event/index.html new file mode 100644 index 0000000000..742f52af03 --- /dev/null +++ b/files/ru/web/api/element/focusout_event/index.html @@ -0,0 +1,126 @@ +--- +title: focusout +slug: Web/Events/focusout +translation_of: Web/API/Element/focusout_event +--- +

Событие focusout вызывается перед потерей элементом фокуса. Главное отличие между этим событием и blur в том, что у последнего нет фазы всплытия.

+ +

 

+ +

Основная информация

+ +
+
Спецификация
+
DOM L3
+
Интерфейс
+
{{domxref("FocusEvent")}}
+
Всплытие
+
Да
+
Отменяемый
+
Нет
+
Цель
+
Элемент
+
Действие по умолчанию
+
Нет.
+
+ +

Свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СвойствоТипОписание
target {{readonlyInline}}{{domxref("EventTarget")}}Цель события, теряющая фокус.
type {{readonlyInline}}{{domxref("DOMString")}}Тип события.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Всплывает ли событие при нормальных условиях.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Возможно ли отменить событие.
relatedTarget {{readonlyInline}}{{domxref("EventTarget")}} (DOM-элемент)Цель события, получающая фокус.
+ +

Browser compatibility

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(52)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile(52)}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
+
+ + + + diff --git a/files/ru/web/api/elementcssinlinestyle/style/index.html b/files/ru/web/api/elementcssinlinestyle/style/index.html new file mode 100644 index 0000000000..683bfa1101 --- /dev/null +++ b/files/ru/web/api/elementcssinlinestyle/style/index.html @@ -0,0 +1,78 @@ +--- +title: HTMLElement.style +slug: Web/API/HTMLElement/style +tags: + - API + - HTML DOM + - HTMLElement + - NeedsBrowserAgnosticism + - NeedsBrowserCompatibility + - NeedsMarkupWork + - NeedsSpecTable + - Свойство + - Ссылки +translation_of: Web/API/ElementCSSInlineStyle/style +--- +

Кратко

+ +
+
{{ APIRef("HTML DOM") }}
+
+ +

Свойство HTMLElement.style используется для получения и установки инлайновых стилей. При получении возвращается объект CSSStyleDeclaration , который содержит список из всех свойств стилей для этого элемента с значениями заданными  для атрибутов , что определенны  в инлайновом стиле (см. атрибут стиля) элемента. См. CSS Properties Reference для получения списка CSS свойств применимых вместе со style.  

+ +

Настройка стилей

+ +

Свойство style имеет тот же приоритет (и выше) в каскаде CSS как и прямая декларация стиля через атрибут style, полезен для настройки стиля отдельного специфичного элемента.

+ +

Стили не следует устанавливать непосредственно через свойство style (например elt.style = "color: blue;"), поскольку оно считается доступным только для чтения и атрибут style возвращает объект CSSStyleDeclaration который доступен только для чтения. Вместо этого стили могут быть установлены путем присвоения значений свойствам style. Для добавления определенных стилей для элемента без изменения других свойств стилей предпочтительно использовать отдельные свойства style (например elt.style.color = '...'). +При использовании
elt.style.cssText = '...' или elt.setAttribute('style','...') устанавливаются стили перезаписывая уже существующие. Обратите внимание, что имена свойств стилей задаются в camel-case а не в kebab-case elt.style.<property> (т.е., elt.style.fontSize, а не elt.style.font-size).

+ +

Объявленные стили сбрасываются присваиванием значения null,
elt.style.color = null

+ +

Примеры

+ +
// Устанавливает несколько стилей в одном выражении
+elt.style.cssText = "color: blue; border: 1px solid black";
+// Или
+elt.setAttribute("style", "color:red; border: 1px solid blue;");
+
+// Устанавливает определенный стиль оставляя другие значения стиля нетронутыми
+elt.style.color = "blue";
+ +

Получение стиль-информации

+ +

Свойство style в основном не имеет пользы в части информации о стиле элемента, оно только олицетворяет собой набор CSS деклараций атрибутов style элемента, а не тех которые проистекают из стиль-правил откуда-либо ещё, таких как стилевые правила раздела {{HTMLElement("head")}}, или внешней таблицы стилей. Для получения значений всех CSS свойств элемента вы должны использовать вместо этого {{domxref("window.getComputedStyle()")}}.

+ +
+
var div = document.getElementById("div1");
+div.style.marginTop = ".25in";
+
+ +

Следующий код показывает имена всех свойств стиля, значений, заданных явно для элемента elt и унаследованных "расчитанных" значений:

+ +
var elt = document.getElementById("elementIdHere");
+var out = "";
+var st = elt.style;
+var cs = window.getComputedStyle(elt, null);
+for (x in st) {
+  out += "  " + x + " = '" + st[x] + "' > '" + cs[x] + "'\n";
+}
+ +

Спецификация

+ +

DOM Level 2 Style: ElementCSSInlineStyle.style

+ +

CSSOM: ElementCSSInlineStyle

+ +

Совместимость

+ + + +

{{Compat("api.HTMLElement.style")}}

+ +

См. также

+ + diff --git a/files/ru/web/api/eventtarget/attachevent/index.html b/files/ru/web/api/eventtarget/attachevent/index.html deleted file mode 100644 index a428f9724c..0000000000 --- a/files/ru/web/api/eventtarget/attachevent/index.html +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: EventTarget.attachEvent() -slug: Web/API/EventTarget/attachEvent -tags: - - Junk -translation_of: Web/API/EventTarget/addEventListener -translation_of_original: Web/API/EventTarget/attachEvent ---- -

{{DOMxRef("EventTarget.addEventListener","EventTarget.addEventListener()")}}

diff --git a/files/ru/web/api/eventtarget/detachevent/index.html b/files/ru/web/api/eventtarget/detachevent/index.html deleted file mode 100644 index 9a62ecb63c..0000000000 --- a/files/ru/web/api/eventtarget/detachevent/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: EventTarget.detachEvent() -slug: Web/API/EventTarget/detachEvent -translation_of: Web/API/EventTarget/removeEventListener -translation_of_original: Web/API/EventTarget/detachEvent ---- -

{{APIRef("DOM Events")}}

- -

{{ Non-standard_header() }}

- -

Кратко

- -

Это проприетарная альтернатива методу {{domxref("EventTarget.removeEventListener()")}}  в Microsoft Internet Explorer.

- -

Синтаксис

- -
target.detachEvent(eventNameWithOn, callback)
-
- -
-
target
-
DOM елемент, для которого надо убрать обработчик.
-
eventNameWithOn
-
Название ивента, начинающийся на "on" (так если бы это был колбэк атрибут), чей обработчик должен быть убран. Например, вам следует использовать "onclick" для удаления обработчика для данного "click" ивента.
-
callback
-
Функция, которую стоит убрать.
-
- -

Спецификация

- -

Не является частью спецификации.

- -

Microsoft содержит описание на MSDN.

- -

Поддержка браузерами

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Базовая поддержка{{ CompatNo() }}{{ CompatNo() }}6 thru 10 [1]{{ CompatUnknown() }}{{ CompatNo() }}
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Базовая поддержка{{ CompatNo() }}{{ CompatNo() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatNo() }}
-
- -

[1]: detachEvent() больше не поддерживается в IE11+. {{domxref("EventTarget.removeEventListener()")}} поддерживается в IE9+.

- -

Смотрите так-же

- - diff --git a/files/ru/web/api/file_and_directory_entries_api/introduction/index.html b/files/ru/web/api/file_and_directory_entries_api/introduction/index.html new file mode 100644 index 0000000000..e5c76758c1 --- /dev/null +++ b/files/ru/web/api/file_and_directory_entries_api/introduction/index.html @@ -0,0 +1,291 @@ +--- +title: Введение в API файлов и каталогов +slug: Web/API/File_and_Directory_Entries_API/Введение +translation_of: Web/API/File_and_Directory_Entries_API/Introduction +--- +
{{DefaultAPISidebar("File System API")}}{{Non-standard_header}}
+ +

API файлов и каталогов эмулирует для веб-приложений локальную файловую систему. У вас есть возможность создания приложений, которые могут читать, записывать и создавать файлы и директории в изолированной виртуальной файловой системе.

+ +

API файлов и каталогов взаимодействует с другими API. Оно было создано на основе File Writer API, который в свою очередь использует File API. Каждое API реализует разную функциональность. Данные программные интерфейсы являются огромным эволюционным скачком для веб-приложений, которые теперь могут кешировать и обрабатывать большие объемы данных. 

+ +

Об этом документе

+ +

В данном документе приведены основные концепции и терминология API файлов и каталогов, которые должны показать общую картину и ключевые идеи. Также описаны ограничения, несоблюдение которых может привести к появлению ошибок безопасности. Используемая терминология описана в разделе Определений.

+ +

Ссылки на страницы данного API приведены в Ссылочном справочнике.

+ +

Спецификация находится на стадии разработки и будет изменяться в будущем.

+ +

Обзор

+ +

Программный интерфейс файлов и каталогов включает асинхронные и синхронные методы. Асинхронное API может быть использовано в тех случаях, когда нежелательно, чтобы длительные вычисления блокировали весь пользовательский интерфейс. В свою очередь синхронное API предлагает более простую модель программирования, однако оно должно использоваться только с объектами WebWorkers.

+ +

Применимость API

+ +

API файлов и каталогов является важным программным интерфейсом по следующим причинам:

+ + + +

Примеры таких приложений приведены в разделе Примеры использования.

+ +

API файлов и каталогов и другие программные интерфейсы хранения данных

+ +

API файлов и каталогов является альтернативой для других интерфейсов хранения данных, таких как IndexedDB, WebSQL (признано устаревшим с 18 ноября 2010 г.) и AppCache. Тем не менее данное API является более хорошим выбором для приложений, обрабатывающим большие объемы данных, по следующим причинам:

+ + + +

Примеры использования

+ +

Далее приведены лишь некоторые случаи, в которых можно использовать API файлов и каталогов:

+ + + +

Big concepts

+ +

Before you start using the File and Directory Entries API, you need to understand a few concepts:

+ + + +

The File and Directory Entries API is a virtual representation of a file system

+ +

The API doesn't give you access to the local file system, nor is the sandbox really a section of the file system. Instead, it is a virtualized file system that looks like a full-fledged file system to the web app. It does not necessarily have a relationship to the local file system outside the browser. 

+ +

What this means is that a web app and a desktop app cannot share the same file at the same time. The API does not let your web app reach outside the browser to files that desktop apps can also work on. You can, however, export a file from a web app to a desktop app. For example, you can use the File API, create a blob, redirect an iframe to the blob, and invoke the download manager.

+ +

The File and Directory Entries API can use different storage types

+ +

An application can request temporary or persistent storage. Temporary storage is easier to get, because the browser just gives it to you, but it is limited and can be deleted by the browser when it runs out of space. Persistent storage, on the other hand, might offer you larger space that can only be deleted by the user, but it requires the user to grant you permission.

+ +

Use temporary storage for caching and persistent storage for data that you want your app to keep—such as user-generated or unique data.

+ +

Browsers impose storage quotas

+ +

To prevent a web app from using up the entire disk, browsers might impose a quota for each app and allocate storage among web apps.

+ +

How storage space is granted or allocated and how you can manage storage are idiosyncratic to the browser, so you need to check the respective documentation of the browser. Google Chrome, for example, allows temporary storage beyond the 5 MB required in the specifications and supports the Quota Management API. To learn more about the Chrome-specific implementation, see Managing HTML5 Offline Storage.

+ +

The File and Directory Entries API has asynchronous and synchronous versions

+ +

The File and Directory Entries API comes with asynchronous and synchronous versions. Both versions of the API offer the same capabilities and features. In fact, they are almost alike, except for a few differences.

+ + + +

The synchronous API can be simpler for some tasks. Its direct, in-order programming model can make code easier to read. The drawback of synchronous API has to do with its interactions with Web Workers, which has some limitations.

+ +

When using the asynchronous API, always use the error callbacks

+ +

When using the asynchronous API, always use the error callbacks. Although the error callbacks for the methods are optional parameters, they are not optional for your sanity. You want to know why your calls failed. At minimum, handle the errors to provide error messages, so you'll have an idea of what's going on.

+ +

The File and Directory Entries API interacts with other APIs

+ +

The File and Directory Entries API is designed to be used with other APIs and elements on the web platform. For example, you are likely to use one of the following:

+ + + +

The File and Directory Entries API is case sensitive

+ +
The filesystem API is case-sensitive, and case-preserving. 
+ +

 

+ +

Ограничения

+ +

For security reasons, browsers impose restrictions on file access. If you ignore them, you will get security errors.

+ + + +

The File and Directory Entries API adheres to the same-origin policy

+ +

An origin is the domain, application layer protocol, and port of a URL of the document where the script is being executed. Each origin has its own associated set of file systems.

+ +

The security boundary imposed on file system prevents applications from accessing data with a different origin. This protects private data by preventing access and deletion. For example, while an app or a page in http://www.example.com/app/ can access files from http://www.example.com/dir/, because they have the same origin, it cannot retrieve files from http://www.example.com:8080/dir/ (different port) or https://www.example.com/dir/ (different protocol).

+ +

The File and Directory Entries API does not let you create and rename executable files

+ +

To prevent malicious apps from running hostile executables, you cannot create executable files within the sandbox of the File and Directory Entries API. 

+ +

The file system is sandboxed

+ +

Because the file system is sandboxed, a web app cannot access another app's files. You also cannot read or write files to an arbitrary folder (for example, My Pictures and My Documents) on the user's hard drive.

+ +

You cannot run your app from file://

+ +

You cannot run your app locally from file://. If you do so, the browser throws errors or your app fails silently. This restriction also applies to many of the file APIs, including BlobBuilder and FileReader.

+ +

For testing purposes, you can bypass the restriction on Chrome by starting the browser with the --allow-file-access-from-files flag. Use this flag only for this purpose.

+ +

Определения

+ +

This section defines and explains terms used in the File and Directory Entries API.

+ +
+
blob
+
Stands for binary large object. A blob is a set of binary data that is stored a single object. It is a general-purpose way to reference binary data in web applications. A blob can be an image or an audio file.
+
Blob
+
Blob—with a capital B—is a data structure that is immutable, which means that binary data referenced by a Blob cannot be modified directly. This makes Blobs act predictably when they are passed to asynchronous APIs.
+
persistent storage
+
Persistent storage is storage that stays in the browser unless the user expunges it or the app deletes it. 
+
temporary storage
+
Transient storage is available to any web app. It is automatic and does not need to be requested, but the browser can delete the storage without warning.
+
+ +

Specifications

+ + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('File System API')}}{{Spec2('File System API')}}Draft of proposed API
+ +

This API has no official W3C or WHATWG specification.

+ +

Browser compatibility

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Asynchronous API13 {{ property_prefix("webkit") }}{{ CompatGeckoDesktop(50) }}[1]{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}
Synchronous API13 {{ property_prefix("webkit") }}{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Asynchronous API{{ CompatNo }}{{ CompatVersionUnknown }} {{ property_prefix("webkit") }}{{ CompatGeckoMobile(50) }}[1]{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}
Synchronous API{{ CompatNo }}{{ CompatVersionUnknown }} {{ property_prefix("webkit") }}{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}
+
+ +

[1] Firefox 50 introduces partial support for the File and Directory Entries API. Be sure to check the compatibility tables for individual interfaces and methods before using them, to ensure that they're supported, before you use them.

+ +

See also

+ + diff --git "a/files/ru/web/api/file_and_directory_entries_api/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" "b/files/ru/web/api/file_and_directory_entries_api/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" deleted file mode 100644 index e5c76758c1..0000000000 --- "a/files/ru/web/api/file_and_directory_entries_api/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" +++ /dev/null @@ -1,291 +0,0 @@ ---- -title: Введение в API файлов и каталогов -slug: Web/API/File_and_Directory_Entries_API/Введение -translation_of: Web/API/File_and_Directory_Entries_API/Introduction ---- -
{{DefaultAPISidebar("File System API")}}{{Non-standard_header}}
- -

API файлов и каталогов эмулирует для веб-приложений локальную файловую систему. У вас есть возможность создания приложений, которые могут читать, записывать и создавать файлы и директории в изолированной виртуальной файловой системе.

- -

API файлов и каталогов взаимодействует с другими API. Оно было создано на основе File Writer API, который в свою очередь использует File API. Каждое API реализует разную функциональность. Данные программные интерфейсы являются огромным эволюционным скачком для веб-приложений, которые теперь могут кешировать и обрабатывать большие объемы данных. 

- -

Об этом документе

- -

В данном документе приведены основные концепции и терминология API файлов и каталогов, которые должны показать общую картину и ключевые идеи. Также описаны ограничения, несоблюдение которых может привести к появлению ошибок безопасности. Используемая терминология описана в разделе Определений.

- -

Ссылки на страницы данного API приведены в Ссылочном справочнике.

- -

Спецификация находится на стадии разработки и будет изменяться в будущем.

- -

Обзор

- -

Программный интерфейс файлов и каталогов включает асинхронные и синхронные методы. Асинхронное API может быть использовано в тех случаях, когда нежелательно, чтобы длительные вычисления блокировали весь пользовательский интерфейс. В свою очередь синхронное API предлагает более простую модель программирования, однако оно должно использоваться только с объектами WebWorkers.

- -

Применимость API

- -

API файлов и каталогов является важным программным интерфейсом по следующим причинам:

- - - -

Примеры таких приложений приведены в разделе Примеры использования.

- -

API файлов и каталогов и другие программные интерфейсы хранения данных

- -

API файлов и каталогов является альтернативой для других интерфейсов хранения данных, таких как IndexedDB, WebSQL (признано устаревшим с 18 ноября 2010 г.) и AppCache. Тем не менее данное API является более хорошим выбором для приложений, обрабатывающим большие объемы данных, по следующим причинам:

- - - -

Примеры использования

- -

Далее приведены лишь некоторые случаи, в которых можно использовать API файлов и каталогов:

- - - -

Big concepts

- -

Before you start using the File and Directory Entries API, you need to understand a few concepts:

- - - -

The File and Directory Entries API is a virtual representation of a file system

- -

The API doesn't give you access to the local file system, nor is the sandbox really a section of the file system. Instead, it is a virtualized file system that looks like a full-fledged file system to the web app. It does not necessarily have a relationship to the local file system outside the browser. 

- -

What this means is that a web app and a desktop app cannot share the same file at the same time. The API does not let your web app reach outside the browser to files that desktop apps can also work on. You can, however, export a file from a web app to a desktop app. For example, you can use the File API, create a blob, redirect an iframe to the blob, and invoke the download manager.

- -

The File and Directory Entries API can use different storage types

- -

An application can request temporary or persistent storage. Temporary storage is easier to get, because the browser just gives it to you, but it is limited and can be deleted by the browser when it runs out of space. Persistent storage, on the other hand, might offer you larger space that can only be deleted by the user, but it requires the user to grant you permission.

- -

Use temporary storage for caching and persistent storage for data that you want your app to keep—such as user-generated or unique data.

- -

Browsers impose storage quotas

- -

To prevent a web app from using up the entire disk, browsers might impose a quota for each app and allocate storage among web apps.

- -

How storage space is granted or allocated and how you can manage storage are idiosyncratic to the browser, so you need to check the respective documentation of the browser. Google Chrome, for example, allows temporary storage beyond the 5 MB required in the specifications and supports the Quota Management API. To learn more about the Chrome-specific implementation, see Managing HTML5 Offline Storage.

- -

The File and Directory Entries API has asynchronous and synchronous versions

- -

The File and Directory Entries API comes with asynchronous and synchronous versions. Both versions of the API offer the same capabilities and features. In fact, they are almost alike, except for a few differences.

- - - -

The synchronous API can be simpler for some tasks. Its direct, in-order programming model can make code easier to read. The drawback of synchronous API has to do with its interactions with Web Workers, which has some limitations.

- -

When using the asynchronous API, always use the error callbacks

- -

When using the asynchronous API, always use the error callbacks. Although the error callbacks for the methods are optional parameters, they are not optional for your sanity. You want to know why your calls failed. At minimum, handle the errors to provide error messages, so you'll have an idea of what's going on.

- -

The File and Directory Entries API interacts with other APIs

- -

The File and Directory Entries API is designed to be used with other APIs and elements on the web platform. For example, you are likely to use one of the following:

- - - -

The File and Directory Entries API is case sensitive

- -
The filesystem API is case-sensitive, and case-preserving. 
- -

 

- -

Ограничения

- -

For security reasons, browsers impose restrictions on file access. If you ignore them, you will get security errors.

- - - -

The File and Directory Entries API adheres to the same-origin policy

- -

An origin is the domain, application layer protocol, and port of a URL of the document where the script is being executed. Each origin has its own associated set of file systems.

- -

The security boundary imposed on file system prevents applications from accessing data with a different origin. This protects private data by preventing access and deletion. For example, while an app or a page in http://www.example.com/app/ can access files from http://www.example.com/dir/, because they have the same origin, it cannot retrieve files from http://www.example.com:8080/dir/ (different port) or https://www.example.com/dir/ (different protocol).

- -

The File and Directory Entries API does not let you create and rename executable files

- -

To prevent malicious apps from running hostile executables, you cannot create executable files within the sandbox of the File and Directory Entries API. 

- -

The file system is sandboxed

- -

Because the file system is sandboxed, a web app cannot access another app's files. You also cannot read or write files to an arbitrary folder (for example, My Pictures and My Documents) on the user's hard drive.

- -

You cannot run your app from file://

- -

You cannot run your app locally from file://. If you do so, the browser throws errors or your app fails silently. This restriction also applies to many of the file APIs, including BlobBuilder and FileReader.

- -

For testing purposes, you can bypass the restriction on Chrome by starting the browser with the --allow-file-access-from-files flag. Use this flag only for this purpose.

- -

Определения

- -

This section defines and explains terms used in the File and Directory Entries API.

- -
-
blob
-
Stands for binary large object. A blob is a set of binary data that is stored a single object. It is a general-purpose way to reference binary data in web applications. A blob can be an image or an audio file.
-
Blob
-
Blob—with a capital B—is a data structure that is immutable, which means that binary data referenced by a Blob cannot be modified directly. This makes Blobs act predictably when they are passed to asynchronous APIs.
-
persistent storage
-
Persistent storage is storage that stays in the browser unless the user expunges it or the app deletes it. 
-
temporary storage
-
Transient storage is available to any web app. It is automatic and does not need to be requested, but the browser can delete the storage without warning.
-
- -

Specifications

- - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('File System API')}}{{Spec2('File System API')}}Draft of proposed API
- -

This API has no official W3C or WHATWG specification.

- -

Browser compatibility

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Asynchronous API13 {{ property_prefix("webkit") }}{{ CompatGeckoDesktop(50) }}[1]{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}
Synchronous API13 {{ property_prefix("webkit") }}{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Asynchronous API{{ CompatNo }}{{ CompatVersionUnknown }} {{ property_prefix("webkit") }}{{ CompatGeckoMobile(50) }}[1]{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}
Synchronous API{{ CompatNo }}{{ CompatVersionUnknown }} {{ property_prefix("webkit") }}{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}{{ CompatNo }}
-
- -

[1] Firefox 50 introduces partial support for the File and Directory Entries API. Be sure to check the compatibility tables for individual interfaces and methods before using them, to ensure that they're supported, before you use them.

- -

See also

- - diff --git a/files/ru/web/api/fullscreen_api/index.html b/files/ru/web/api/fullscreen_api/index.html new file mode 100644 index 0000000000..ad21d6d20e --- /dev/null +++ b/files/ru/web/api/fullscreen_api/index.html @@ -0,0 +1,198 @@ +--- +title: Fullscreen API +slug: DOM/Using_fullscreen_mode +translation_of: Web/API/Fullscreen_API +--- +
{{DefaultAPISidebar("Fullscreen API")}}
+ +

The Fullscreen API adds methods to present a specific {{DOMxRef("Element")}} (and its descendants) in full-screen mode, and to exit full-screen mode once it is no longer needed. This makes it possible to present desired content—such as an online game—using the user's entire screen, removing all browser user interface elements and other applications from the screen until full-screen mode is shut off.

+ +

See the article Guide to the Fullscreen API for details on how to use the API.

+ +
+

Note: Support for this API varies somewhat across browsers, with many requiring vendor prefixes and/or not implementing the latest specification. See the {{anch("Browser compatibility")}} section below for details on support for this API. You may wish to consider using a library such as Fscreen for vendor agnostic access to the Fullscreen API.

+
+ +

Interfaces

+ +

The Fullscreen API has no interfaces of its own. Instead, it augments several other interfaces to add the methods, properties, and event handlers needed to provide full-screen functionality. These are listed in the following sections.

+ +

Methods

+ +

The Fullscreen API adds methods to the {{DOMxRef("Document")}} and {{DOMxRef("Element")}} interfaces to allow turning off and on full-screen mode.

+ +

Methods on the Document interface

+ +
+
{{DOMxRef("Document.exitFullscreen()")}}
+
Requests that the {{Glossary("user agent")}} switch from full-screen mode back to windowed mode. Returns a {{jsxref("Promise")}} which is resolved once full-screen mode has been completely shut off.
+
+ +

Methods on the Element interface

+ +
+
{{DOMxRef("Element.requestFullscreen()")}}
+
Asks the user agent to place the specified element (and, by extension, its descendants) into full-screen mode, removing all of the browser's UI elements as well as all other applications from the screen. Returns a {{jsxref("Promise")}} which is resolved once full-screen mode has been activated.
+
+ +

Properties

+ +

The {{DOMxRef("Document")}} interface provides properties that can be used to determine if full-screen mode is supported and available, and if full-screen mode is currently active, which element is using the screen.

+ +
+
{{DOMxRef("DocumentOrShadowRoot.fullscreenElement")}}
+
The fullscreenElement property tells you the {{DOMxRef("Element")}} that's currently being displayed in full-screen mode on the DOM (or shadow DOM). If this is null, the document is not in full-screen mode.
+
{{DOMxRef("Document.fullscreenEnabled")}}
+
The fullscreenEnabled property tells you whether or not it is possible to engage full-screen mode. This is false if full-screen mode is not available for any reason (such as the "fullscreen" feature not being allowed, or full-screen mode not being supported).
+
+ +

Event handlers

+ +

The Fullscreen API defines two events which can be used to detect when full-screen mode is turned on and off, as well as when errors occur during the process of changing between full-screen and windowed modes. Event handlers for these events are available on the {{DOMxRef("Document")}} and {{DOMxRef("Element")}} interfaces.

+ +
+

Note: These event handler properties are not available as HTML content attributes. In other words, you cannot specify event handlers for {{Event("fullscreenchange")}} and {{Event("fullscreenerror")}} in the HTML content. They must be added by JavaScript code.

+
+ +

Event handlers on documents

+ +
+
{{DOMxRef("Document.onfullscreenchange")}}
+
An event handler for the {{Event("fullscreenchange")}} event that's sent to a {{DOMxRef("Document")}} when that document is placed into full-screen mode, or when that document exits full-screen mode. This handler is called only when the entire document is presented in full-screen mode.
+
{{DOMxRef("Document.onfullscreenerror")}}
+
An event handler for the {{Event("fullscreenerror")}} event that gets sent to a {{DOMxRef("Document")}} when an error occurs while trying to enable or disable full-screen mode for the entire document.
+
+ +

Event handlers on elements

+ +
+
{{DOMxRef("Element.onfullscreenchange")}}
+
An event handler which is called when the {{Event("fullscreenchange")}} event is sent to the element, indicating that the element has been placed into, or removed from, full-screen mode.
+
{{DOMxRef("Element.onfullscreenerror")}}
+
An event handler for the {{Event("fullscreenerror")}} event when sent to an element which has encountered an error while transitioning into or out of full-screen mode.
+
+ +

Obsolete properties

+ +
+
{{DOMxRef("Document.fullscreen")}} {{Deprecated_Inline}}
+
A Boolean value which is true if the document has an element currently being displayed in full-screen mode; otherwise, this returns false. +
Note: Use the {{DOMxRef("Document.fullscreenElement", "fullscreenElement")}} property on the {{DOMxRef("Document")}} or {{DOMxRef("ShadowRoot")}} instead; if it's not null, then it's an {{DOMxRef("Element")}} currently being displayed in full-screen mode.
+
+
+ +

Events

+ +

The Fullscreen API defines two events which can be used to detect when full-screen mode is turned on and off, as well as when errors occur during the process of changing between full-screen and windowed modes.

+ +
+
{{Event("fullscreenchange")}}
+
Sent to a {{DOMxRef("Document")}} or {{DOMxRef("Element")}} when it transitions into or out of full-screen mode.
+
{{Event("fullscreenerror")}}
+
Sent to a Document or Element if an error occurs while attempting to switch it into or out of full-screen mode.
+
+ +

Dictionaries

+ +
+
{{DOMxRef("FullscreenOptions")}}
+
Provides optional settings you can specify when calling {{DOMxRef("Element.requestFullscreen", "requestFullscreen()")}}.
+
+ +

Controlling access

+ +

The availability of full-screen mode can be controlled using Feature Policy. The full-screen mode feature is identified by the string "fullscreen", with a default allow-list value of "self", meaning that full-screen mode is permitted in top-level document contexts, as well as to nested browsing contexts loaded from the same origin as the top-most document.

+ +

See Using Feature Policy to learn more about using Feature Policy to control access to an API.

+ +

Usage notes

+ +

Users can choose to exit full-screen mode simply by pressing the ESC (or F11) key, rather than waiting for the site or app to programmatically do so. Make sure you provide, somewhere in your user interface, appropriate user interface elements that inform the user that this option is available to them.

+ +
+

Note: Navigating to another page, changing tabs, or switching to another application using any application switcher (or Alt-Tab) will likewise exit full-screen mode.

+
+ +

Example

+ +

In this example, a video is presented in a web page. Pressing the Return or Enter key lets the user toggle between windowed and full-screen presentation of the video.

+ +

View Live Examples

+ +

Watching for the Enter key

+ +

When the page is loaded, this code is run to set up an event listener to watch for the Enter key.

+ +
document.addEventListener("keypress", function(e) {
+  if (e.keyCode === 13) {
+    toggleFullScreen();
+  }
+}, false);
+
+ +

Toggling full-screen mode

+ +

This code is called by the event handler above when the user hits the Enter key.

+ +
function toggleFullScreen() {
+  if (!document.fullscreenElement) {
+      document.documentElement.requestFullscreen();
+  } else {
+    if (document.exitFullscreen) {
+      document.exitFullscreen();
+    }
+  }
+}
+ +

This starts by looking at the value of the {{DOMxRef("Document", "document")}}'s fullscreenElement attribute. In a real-world deployment, at this time, you'll want to check for prefixed versions of this (mozFullScreenElement, msFullscreenElement, or webkitFullscreenElement, for example). If the value is null, the document is currently in windowed mode, so we need to switch to full-screen mode; otherwise, it's the element that's currently in full-screen mode. Switching to full-screen mode is done by calling {{DOMxRef("Element.requestFullscreen()")}} on the {{HTMLElement("video")}} element.

+ +

If full-screen mode is already active (fullscreenElement is not null), we call {{DOMxRef("Document.exitFullscreen", "exitFullscreen()")}} on the document to shut off full-screen mode.

+ +

Specifications

+ + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName("Fullscreen")}}{{Spec2("Fullscreen")}}Initial version.
+ +

Browser compatibility

+ +

Document.fullscreen

+ +
+ + +

{{Compat("api.Document.fullscreen")}}

+
+ +

Document.fullscreenEnabled

+ +
+ + +

{{Compat("api.Document.fullscreenEnabled")}}

+
+ +

See also

+ + diff --git a/files/ru/web/api/geolocation/using_geolocation/index.html b/files/ru/web/api/geolocation/using_geolocation/index.html deleted file mode 100644 index 39847dedc5..0000000000 --- a/files/ru/web/api/geolocation/using_geolocation/index.html +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: Использование геолокации -slug: Web/API/Geolocation/Using_geolocation -tags: - - Geolocation API - - Guide - - Intermediate -translation_of: Web/API/Geolocation_API ---- -
{{securecontext_header}}{{DefaultAPISidebar("Geolocation API")}}
- -

Geolocation API позволяет пользователю предоставлять свое местоположение web-приложению, если пользователь согласится предоставить его. Из соображений конфиденциальности, у пользователя будет запрошено разрешение на предоставление информации о местоположении.

- -

Концепты и использование

- -

Вы часто хотите получать информацию о местоположении пользователя в своём веб приложении, например, для отображения участка на карте, либо для того, чтобы показывать информацию, основанную на местоположении посетителя.

- -

API геолокации может быть вызвано через {{domxref("Navigator.geolocation")}}; это заставит браузер пользователя вывести уведомление с запросом для доступа к текущему местоположению. Если его одобрят, то браузер сможет даст весь доступный функционал для работы с информацией о местонахождении (например, GPS).

- -

Тогда разработчику станут доступны несколько разных способов получения соответствующей информации:

- - - -

В обоих случая, методы принимают три аргумента:

- - - -

Интерфейсы

- -
-
{{domxref("Geolocation")}}
-
Главный класс этого API — содержит методы для получения текущего местоположения пользователя, наблюдает за его изменениями и удаляет функции-наблюдатели.
-
{{domxref("GeolocationPosition")}}
-
Предоставляет месторасположение пользователя. Экземпляр GeolocationPosition, полученный при успешном вызове одного из методов {{domxref("Geolocation")}}, внутри callback-функции при успехе, содержит метку времени плюс экземпляр объекта {{domxref("GeolocationCoordinates")}}.
-
{{domxref("GeolocationCoordinates")}}
-
Предоставлять координаты пользователя; Экземпляр GeolocationCoordinates содержит широту, долготу и прочую важную подобную информацию.
-
{{domxref("GeolocationPositionError")}}
-
GeolocationPositionError возвращается при неуспешном вызове методов, содержащихся в {{domxref("Geolocation")}}, внутри callback-функции при ошибке, содержит код ошибки и сообщение.
-
{{domxref("Navigator.geolocation")}}
-
Точка входа в API. Возвращает экземпляр объекта {{domxref("Geolocation")}}, из которого становятся доступны все функции и методы.
-
- -

Словари

- -
-
{{domxref("PositionOptions")}}
-
Предоставляет объект, содержащий опции, которые можно передать как параметр в  {{domxref("Geolocation.getCurrentPosition()")}} и {{domxref("Geolocation.watchPosition()")}}.
-
- -

Примеры

- -

{{page("/ru/docs/Web/API/Geolocation_API/Using","Examples")}}

- -

Спецификации

- - - - - - - - - - - - - -
СпецификацияСтатусКомментарий
{{SpecName("Geolocation")}}{{Spec2("Geolocation")}}
- -

Поддержка браузерами

- -

{{Compat("api.Geolocation")}}

- -

Доступность

- -

Так как местоположение, основанное на WiFi, часто предоставляется Google, API местоположения может быть не доступен в Китае. Вы можете использовать местных провайдеров, таких как Baidu, Autonavi или Tencent. Эти сервисы используют IP-адресс пользователя и/или приложение для предоставления наиболее точной позиции.

- -

Смотрите также

- - diff --git a/files/ru/web/api/geolocation/using_geolocation/using_the_geolocation_api/index.html b/files/ru/web/api/geolocation/using_geolocation/using_the_geolocation_api/index.html deleted file mode 100644 index 5fa1055292..0000000000 --- a/files/ru/web/api/geolocation/using_geolocation/using_the_geolocation_api/index.html +++ /dev/null @@ -1,170 +0,0 @@ ---- -title: Использование Geolocation API -slug: Web/API/Geolocation/Using_geolocation/Using_the_Geolocation_API -tags: - - Geolocation API - - Guide - - Tutorial -translation_of: Web/API/Geolocation_API/Using_the_Geolocation_API ---- -
{{securecontext_header}}{{DefaultAPISidebar("Geolocation API")}}
- -

Geolocation API позволяет пользователю предоставлять свое местоположение web-приложению, если пользователь согласится предоставить его. Из соображений конфиденциальности, у пользователя будет запрошено разрешение на предоставление информации о местоположении.

- -

Объект геолокации

- -

API геолокации доступен через объект {{domxref("navigator.geolocation")}}.

- -

Если объект существует, функции определения местоположения доступны. Вы можете проверить это слеюущим образом:

- -
if ("geolocation" in navigator) {
-  /* местоположение доступно */
-} else {
-  /* местоположение НЕ доступно */
-}
-
- -

Получение текущего местоположения

- -

Чтобы получить текущее местоположение пользователя, вы должны вызвать метод {{domxref("geolocation.getCurrentPosition()","getCurrentPosition()")}}. Это инициирует асихронный запрос для обнаружения местоположения пользователя, и запрашивает аппаратные средства позиционирования, чтобы получить последнюю актуальную информацию. Когда местоположение определено, выполняется callback. По желанию вы можете указать вторую callback функцию для обработки ошибки, которая запустится в случае ошибки. Третий, опциональный параметр - объект с опциями, где вы можете настроить максимальное значение возвращаемых данных, время ожидания ответа на запрос, и, при желании, точность возвращаемых данных.

- -
-

Note: По умолчанию {{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}} пытается вернуть результат так быстро, как это возможно, за счёт чего даёт не очень точный результат. Это может быть полезно, если вам нужно быстро получить ответ, при этом не важна точность. Устройства с GPS, например, могут пытаться скорректировать данные GPS около минуты и даже больше, поэтому в самом начале могут вернуться менее точные данные (местоположение IP или wifi-сети), полученные {{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}}.

-
- -
navigator.geolocation.getCurrentPosition(function(position) {
-  do_something(position.coords.latitude, position.coords.longitude);
-});
- -

Функция do_something(), в примере выше, будет вызвана лишь тогда, когда данные о местоположении будут получены.

- -

Наблюдение за текущим местоположением

- -

Если данные о местоположении меняются (либо устройство находится в движении, либо пришли более точные данные о геопозиции), вы можете указать callback функцию, которая будет вызывается при любом обновлении данных о местоположении. Это делается с использованием функции {{domxref("Geolocation.watchPosition()","watchPosition()")}}, которая имеет несколько входных параметров: {{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}}. Эта функция вызывается много раз, позволяя браузеру обновлять данные о текущей локации либо во время движения, либо после получения более точной информации о местоположении (после применения более точных приемов). Функция, которая вызывается при ошибке, для {{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}}, при желании, может быть вызвана неоднократно.

- -
-

Примечание: Вы можете использовать {{domxref("Geolocation.watchPosition()","watchPosition()")}} без вызова {{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}}.

-
- -
var watchID = navigator.geolocation.watchPosition(function(position) {
-  do_something(position.coords.latitude, position.coords.longitude);
-});
- -

Метод {{domxref("Geolocation.watchPosition()","watchPosition()")}} возвращает числовой ID, который может быть использован для идентификации наблюдателя за местоположением; используйте его вместе с методом {{domxref("Geolocation.clearWatch()","clearWatch()")}}, чтобы перестать получать новые данные о местоположении.

- -
navigator.geolocation.clearWatch(watchID);
-
- -

Точная настройка отклика

- -

{{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}} и {{domxref("Geolocation.watchPosition()","watchPosition()")}} принимают callback-функцию при успехе, необязательную callback-функцию при ошибке и необязательный объект PositionOptions.

- -

Этот объект позволяет вам включить возможность определения позиции с высокой точностью, указать максимальное время кэширования значения позиции (при повторных запросах, пока время не вышло, вам будет возвращается кэшированное значение; после браузер будет запрашивать актуальные данные), а также указать значение, устанавливающее интервал — как часто браузер должен пытаться получить данные о местоположении, прежде чем выйдет время.

- -

Вызов {{domxref("Geolocation.watchPosition()","watchPosition")}} может выглядит следующим образом:

- -
function geo_success(position) {
-  do_something(position.coords.latitude, position.coords.longitude);
-}
-
-function geo_error() {
-  alert("Извините, нет доступной позиции.");
-}
-
-var geo_options = {
-  enableHighAccuracy: true,
-  maximumAge        : 30000,
-  timeout           : 27000
-};
-
-var wpid = navigator.geolocation.watchPosition(geo_success, geo_error, geo_options);
- -

Описание позиции

- -

Местоположение пользователя содержится в экземпляре объекта {{domxref("GeolocationPosition")}}, содержащего внутри экземпляр другого объекта — {{domxref("GeolocationCoordinates")}}.

- -

Экземпляр GeolocationPosition содержит только две вещи, свойство coords, внутри которого GeolocationCoordinates и свойство timestamp, внутри которого экземпляр {{domxref("DOMTimeStamp")}}, предоставляющее метку времени, созданную при получении данные.

- -

Экземпляр GeolocationCoordinates содержит некоторое количество свойств, двое из которых вы будете чаще всего использовать: latitude и longitude, которые помогут вам отобразить полученную позицию на карте. Поэтому многие callback-функции с успешным получением позиции выглядят очень просто:

- -
function success(position) {
-  const latitude  = position.coords.latitude;
-  const longitude = position.coords.longitude;
-
-  // Дальше код, который что-то делает с широтой(latitude) и долготой(longitude)
-}
- -

Однако, вы также можете получить и другую информацию из объекта GeolocationCoordinates, такую как высота над уровнем моря, скорость, направление устройства и точные данные о высоте, долготе и широте.

- -

Обработка ошибок

- -

Callback-функция для ошибок, если она была передана в getCurrentPosition() или watchPosition(), ожидает экземпляр объекта GeolocationPositionError в качестве первого аргумента. Он будет содержать два свойства, code, который укажет на то, какая именно ошибка произошла и понятное для человека message, описывающее значение поля code.

- -

Функция может выглядеть примерно так:

- -
function errorCallback(error) {
-  alert('ERROR(' + error.code + '): ' + error.message);
-};
-
- -

Примеры

- -

Следующий пример использует Geolocation API для того, чтобы получить широту и долготу пользователя. При успешном выполнении, ссылка будет вести на openstreetmap.org, который отобразит пользовательскую позицию на карте.

- - - -

HTML

- -
<button id = "find-me">Show my location</button><br/>
-<p id = "status"></p>
-<a id = "map-link" target="_blank"></a>
-
- -

JavaScript

- -
function geoFindMe() {
-
-  const status = document.querySelector('#status');
-  const mapLink = document.querySelector('#map-link');
-
-  mapLink.href = '';
-  mapLink.textContent = '';
-
-  function success(position) {
-    const latitude  = position.coords.latitude;
-    const longitude = position.coords.longitude;
-
-    status.textContent = '';
-    mapLink.href = `https://www.openstreetmap.org/#map=18/${latitude}/${longitude}`;
-    mapLink.textContent = `Широта: ${latitude} °, Долгота: ${longitude} °`;
-  }
-
-  function error() {
-    status.textContent = 'Невозможно получить ваше местоположение';
-  }
-
-  if (!navigator.geolocation) {
-    status.textContent = 'Geolocation не поддерживается вашим браузером';
-  } else {
-    status.textContent = 'Определение местоположения…';
-    navigator.geolocation.getCurrentPosition(success, error);
-  }
-
-}
-
-document.querySelector('#find-me').addEventListener('click', geoFindMe);
-
- -

Демо

- -

{{EmbedLiveSample('Examples', 350, 150, "", "", "", "geolocation")}}

diff --git a/files/ru/web/api/geolocation_api/index.html b/files/ru/web/api/geolocation_api/index.html new file mode 100644 index 0000000000..39847dedc5 --- /dev/null +++ b/files/ru/web/api/geolocation_api/index.html @@ -0,0 +1,91 @@ +--- +title: Использование геолокации +slug: Web/API/Geolocation/Using_geolocation +tags: + - Geolocation API + - Guide + - Intermediate +translation_of: Web/API/Geolocation_API +--- +
{{securecontext_header}}{{DefaultAPISidebar("Geolocation API")}}
+ +

Geolocation API позволяет пользователю предоставлять свое местоположение web-приложению, если пользователь согласится предоставить его. Из соображений конфиденциальности, у пользователя будет запрошено разрешение на предоставление информации о местоположении.

+ +

Концепты и использование

+ +

Вы часто хотите получать информацию о местоположении пользователя в своём веб приложении, например, для отображения участка на карте, либо для того, чтобы показывать информацию, основанную на местоположении посетителя.

+ +

API геолокации может быть вызвано через {{domxref("Navigator.geolocation")}}; это заставит браузер пользователя вывести уведомление с запросом для доступа к текущему местоположению. Если его одобрят, то браузер сможет даст весь доступный функционал для работы с информацией о местонахождении (например, GPS).

+ +

Тогда разработчику станут доступны несколько разных способов получения соответствующей информации:

+ + + +

В обоих случая, методы принимают три аргумента:

+ + + +

Интерфейсы

+ +
+
{{domxref("Geolocation")}}
+
Главный класс этого API — содержит методы для получения текущего местоположения пользователя, наблюдает за его изменениями и удаляет функции-наблюдатели.
+
{{domxref("GeolocationPosition")}}
+
Предоставляет месторасположение пользователя. Экземпляр GeolocationPosition, полученный при успешном вызове одного из методов {{domxref("Geolocation")}}, внутри callback-функции при успехе, содержит метку времени плюс экземпляр объекта {{domxref("GeolocationCoordinates")}}.
+
{{domxref("GeolocationCoordinates")}}
+
Предоставлять координаты пользователя; Экземпляр GeolocationCoordinates содержит широту, долготу и прочую важную подобную информацию.
+
{{domxref("GeolocationPositionError")}}
+
GeolocationPositionError возвращается при неуспешном вызове методов, содержащихся в {{domxref("Geolocation")}}, внутри callback-функции при ошибке, содержит код ошибки и сообщение.
+
{{domxref("Navigator.geolocation")}}
+
Точка входа в API. Возвращает экземпляр объекта {{domxref("Geolocation")}}, из которого становятся доступны все функции и методы.
+
+ +

Словари

+ +
+
{{domxref("PositionOptions")}}
+
Предоставляет объект, содержащий опции, которые можно передать как параметр в  {{domxref("Geolocation.getCurrentPosition()")}} и {{domxref("Geolocation.watchPosition()")}}.
+
+ +

Примеры

+ +

{{page("/ru/docs/Web/API/Geolocation_API/Using","Examples")}}

+ +

Спецификации

+ + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("Geolocation")}}{{Spec2("Geolocation")}}
+ +

Поддержка браузерами

+ +

{{Compat("api.Geolocation")}}

+ +

Доступность

+ +

Так как местоположение, основанное на WiFi, часто предоставляется Google, API местоположения может быть не доступен в Китае. Вы можете использовать местных провайдеров, таких как Baidu, Autonavi или Tencent. Эти сервисы используют IP-адресс пользователя и/или приложение для предоставления наиболее точной позиции.

+ +

Смотрите также

+ + diff --git a/files/ru/web/api/geolocation_api/using_the_geolocation_api/index.html b/files/ru/web/api/geolocation_api/using_the_geolocation_api/index.html new file mode 100644 index 0000000000..5fa1055292 --- /dev/null +++ b/files/ru/web/api/geolocation_api/using_the_geolocation_api/index.html @@ -0,0 +1,170 @@ +--- +title: Использование Geolocation API +slug: Web/API/Geolocation/Using_geolocation/Using_the_Geolocation_API +tags: + - Geolocation API + - Guide + - Tutorial +translation_of: Web/API/Geolocation_API/Using_the_Geolocation_API +--- +
{{securecontext_header}}{{DefaultAPISidebar("Geolocation API")}}
+ +

Geolocation API позволяет пользователю предоставлять свое местоположение web-приложению, если пользователь согласится предоставить его. Из соображений конфиденциальности, у пользователя будет запрошено разрешение на предоставление информации о местоположении.

+ +

Объект геолокации

+ +

API геолокации доступен через объект {{domxref("navigator.geolocation")}}.

+ +

Если объект существует, функции определения местоположения доступны. Вы можете проверить это слеюущим образом:

+ +
if ("geolocation" in navigator) {
+  /* местоположение доступно */
+} else {
+  /* местоположение НЕ доступно */
+}
+
+ +

Получение текущего местоположения

+ +

Чтобы получить текущее местоположение пользователя, вы должны вызвать метод {{domxref("geolocation.getCurrentPosition()","getCurrentPosition()")}}. Это инициирует асихронный запрос для обнаружения местоположения пользователя, и запрашивает аппаратные средства позиционирования, чтобы получить последнюю актуальную информацию. Когда местоположение определено, выполняется callback. По желанию вы можете указать вторую callback функцию для обработки ошибки, которая запустится в случае ошибки. Третий, опциональный параметр - объект с опциями, где вы можете настроить максимальное значение возвращаемых данных, время ожидания ответа на запрос, и, при желании, точность возвращаемых данных.

+ +
+

Note: По умолчанию {{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}} пытается вернуть результат так быстро, как это возможно, за счёт чего даёт не очень точный результат. Это может быть полезно, если вам нужно быстро получить ответ, при этом не важна точность. Устройства с GPS, например, могут пытаться скорректировать данные GPS около минуты и даже больше, поэтому в самом начале могут вернуться менее точные данные (местоположение IP или wifi-сети), полученные {{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}}.

+
+ +
navigator.geolocation.getCurrentPosition(function(position) {
+  do_something(position.coords.latitude, position.coords.longitude);
+});
+ +

Функция do_something(), в примере выше, будет вызвана лишь тогда, когда данные о местоположении будут получены.

+ +

Наблюдение за текущим местоположением

+ +

Если данные о местоположении меняются (либо устройство находится в движении, либо пришли более точные данные о геопозиции), вы можете указать callback функцию, которая будет вызывается при любом обновлении данных о местоположении. Это делается с использованием функции {{domxref("Geolocation.watchPosition()","watchPosition()")}}, которая имеет несколько входных параметров: {{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}}. Эта функция вызывается много раз, позволяя браузеру обновлять данные о текущей локации либо во время движения, либо после получения более точной информации о местоположении (после применения более точных приемов). Функция, которая вызывается при ошибке, для {{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}}, при желании, может быть вызвана неоднократно.

+ +
+

Примечание: Вы можете использовать {{domxref("Geolocation.watchPosition()","watchPosition()")}} без вызова {{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}}.

+
+ +
var watchID = navigator.geolocation.watchPosition(function(position) {
+  do_something(position.coords.latitude, position.coords.longitude);
+});
+ +

Метод {{domxref("Geolocation.watchPosition()","watchPosition()")}} возвращает числовой ID, который может быть использован для идентификации наблюдателя за местоположением; используйте его вместе с методом {{domxref("Geolocation.clearWatch()","clearWatch()")}}, чтобы перестать получать новые данные о местоположении.

+ +
navigator.geolocation.clearWatch(watchID);
+
+ +

Точная настройка отклика

+ +

{{domxref("Geolocation.getCurrentPosition()","getCurrentPosition()")}} и {{domxref("Geolocation.watchPosition()","watchPosition()")}} принимают callback-функцию при успехе, необязательную callback-функцию при ошибке и необязательный объект PositionOptions.

+ +

Этот объект позволяет вам включить возможность определения позиции с высокой точностью, указать максимальное время кэширования значения позиции (при повторных запросах, пока время не вышло, вам будет возвращается кэшированное значение; после браузер будет запрашивать актуальные данные), а также указать значение, устанавливающее интервал — как часто браузер должен пытаться получить данные о местоположении, прежде чем выйдет время.

+ +

Вызов {{domxref("Geolocation.watchPosition()","watchPosition")}} может выглядит следующим образом:

+ +
function geo_success(position) {
+  do_something(position.coords.latitude, position.coords.longitude);
+}
+
+function geo_error() {
+  alert("Извините, нет доступной позиции.");
+}
+
+var geo_options = {
+  enableHighAccuracy: true,
+  maximumAge        : 30000,
+  timeout           : 27000
+};
+
+var wpid = navigator.geolocation.watchPosition(geo_success, geo_error, geo_options);
+ +

Описание позиции

+ +

Местоположение пользователя содержится в экземпляре объекта {{domxref("GeolocationPosition")}}, содержащего внутри экземпляр другого объекта — {{domxref("GeolocationCoordinates")}}.

+ +

Экземпляр GeolocationPosition содержит только две вещи, свойство coords, внутри которого GeolocationCoordinates и свойство timestamp, внутри которого экземпляр {{domxref("DOMTimeStamp")}}, предоставляющее метку времени, созданную при получении данные.

+ +

Экземпляр GeolocationCoordinates содержит некоторое количество свойств, двое из которых вы будете чаще всего использовать: latitude и longitude, которые помогут вам отобразить полученную позицию на карте. Поэтому многие callback-функции с успешным получением позиции выглядят очень просто:

+ +
function success(position) {
+  const latitude  = position.coords.latitude;
+  const longitude = position.coords.longitude;
+
+  // Дальше код, который что-то делает с широтой(latitude) и долготой(longitude)
+}
+ +

Однако, вы также можете получить и другую информацию из объекта GeolocationCoordinates, такую как высота над уровнем моря, скорость, направление устройства и точные данные о высоте, долготе и широте.

+ +

Обработка ошибок

+ +

Callback-функция для ошибок, если она была передана в getCurrentPosition() или watchPosition(), ожидает экземпляр объекта GeolocationPositionError в качестве первого аргумента. Он будет содержать два свойства, code, который укажет на то, какая именно ошибка произошла и понятное для человека message, описывающее значение поля code.

+ +

Функция может выглядеть примерно так:

+ +
function errorCallback(error) {
+  alert('ERROR(' + error.code + '): ' + error.message);
+};
+
+ +

Примеры

+ +

Следующий пример использует Geolocation API для того, чтобы получить широту и долготу пользователя. При успешном выполнении, ссылка будет вести на openstreetmap.org, который отобразит пользовательскую позицию на карте.

+ + + +

HTML

+ +
<button id = "find-me">Show my location</button><br/>
+<p id = "status"></p>
+<a id = "map-link" target="_blank"></a>
+
+ +

JavaScript

+ +
function geoFindMe() {
+
+  const status = document.querySelector('#status');
+  const mapLink = document.querySelector('#map-link');
+
+  mapLink.href = '';
+  mapLink.textContent = '';
+
+  function success(position) {
+    const latitude  = position.coords.latitude;
+    const longitude = position.coords.longitude;
+
+    status.textContent = '';
+    mapLink.href = `https://www.openstreetmap.org/#map=18/${latitude}/${longitude}`;
+    mapLink.textContent = `Широта: ${latitude} °, Долгота: ${longitude} °`;
+  }
+
+  function error() {
+    status.textContent = 'Невозможно получить ваше местоположение';
+  }
+
+  if (!navigator.geolocation) {
+    status.textContent = 'Geolocation не поддерживается вашим браузером';
+  } else {
+    status.textContent = 'Определение местоположения…';
+    navigator.geolocation.getCurrentPosition(success, error);
+  }
+
+}
+
+document.querySelector('#find-me').addEventListener('click', geoFindMe);
+
+ +

Демо

+ +

{{EmbedLiveSample('Examples', 350, 150, "", "", "", "geolocation")}}

diff --git a/files/ru/web/api/html_drag_and_drop_api/drag_operations/index.html b/files/ru/web/api/html_drag_and_drop_api/drag_operations/index.html new file mode 100644 index 0000000000..2dcdb6babb --- /dev/null +++ b/files/ru/web/api/html_drag_and_drop_api/drag_operations/index.html @@ -0,0 +1,314 @@ +--- +title: Drag Operations +slug: Web/Guide/HTML/Drag_and_drop/Drag_operations +translation_of: Web/API/HTML_Drag_and_Drop_API/Drag_operations +--- +

{{DefaultAPISidebar("HTML Drag and Drop API")}}

+ +

Ниже описаны шаги, которые происходят при drag and drop операции.

+ +

Drag операции описываются в документе, используя {{domxref("DataTransfer")}} интерфейс. Этот документ не использует не{{domxref("DataTransferItem")}} интерфейс, не{{domxref("DataTransferItemList")}} интерфейс.

+ +

draggable атрибуты

+ +

На веб-странице, в некоторых случаях используется поведение drag (перетаскивания) по умолчанию. Включая выделенный текст, изображения и ссылки. Когда изображение иои ссылка переносятся, URL изображения или ссылки устанавливается в качестве данных drag и перетаскивание начинается. Для других элементов, они должны быть частью выделения для выполнения перетаскивания по умолчанию. Чтобы увидеть это в действии, выделите область веб-страницы, а затем нажмите и удерживайте кнопку мыши и перетащите выделение. Появится специфичный для ОС рендеринг выделенного фрагмента и будет следовать за указателем мыши при перетаскивании. Однако это поведение является только drag поведением по умолчанию, если нет слушателей, определяющих данные для перетаскивания.

+ +

В HTML, кроме поведения по умолчанию изображений, ссылок и выделенных областей, ноикакие другие элементы по умолчанию не переносятся.

+ +

Для перетаскивания других HTML-элементов, должны быть выполнены три пункта :

+ +
    +
  1. Установить {{htmlattrxref("draggable")}}="true" на элемент, который вы хотите сделать перетаскиваемым.
  2. +
  3. Добавить слушатель события {{event("dragstart")}}.
  4. +
  5. Установить данные перетаскивания в слушатель выше.
  6. +
+ +

Вот пример, который позволяет перетаскивать часть содержимого.

+ +
<p draggable="true" ondragstart="event.dataTransfer.setData('text/plain', 'This text may be dragged')">
+  This text <strong>may</strong> be dragged.
+</p>
+
+ +

Атрибут {{htmlattrxref("draggable")}} установлен в  "true", т.о. этот элемент становится перетаскиваемым. Если этот атрибут был опущен или установлен в "false", то элемент не может быть перенесен, и вместо этого будет выбран текст.

+ +

Атрибут {{htmlattrxref("draggable")}} может быть использован для любого элемента, включаяизображения и ссылки. Однако, для последних двух, значение по умолчанию - true, т.о. вы можете только использвать атрибут  {{htmlattrxref("draggable")}} со значением false для отключение перетаскивания этих элементов.

+ +
+

Примечание: Когда элемент становится перетаскиваемыми, tтекст или другие элементы в нем больше не могут быть выбраны обычным способом, щелкая и перетаскивая мышью. Вместо этого пользователь должен удерживать клавишу Alt  чтобы выбрать текст с помощью мыши или клавиатуры.

+
+ +

Начало операции перетаскивания

+ +

В примере, слушатель добавлен для события {{event("dragstart")}} с использованием атрибута{{domxref("GlobalEventHandlers.ondragstart","ondragstart")}}.

+ +
<p draggable="true" ondragstart="event.dataTransfer.setData('text/plain', 'This text may be dragged')">
+  This text <strong>may</strong> be dragged.
+</p>
+
+ +

Когда пользователь начинает перетаскивание, запускается событиеdrag, the {{event("dragstart")}}.

+ +

В этом примере слушатель {{event("dragstart")}} добавлен к самому перемещаемом элементу. Однако, вы можете слушать более высокого предка, так как событие перетаскивание высплывает вверх как и большинство событий.

+ +

Внутри события {{event("dragstart")}}, вы можете указать drag данные, изображжение отклика, drag-эффекты, все это описано ниже. Однако, обязательны только drag данные. (Изображение и drag-эффекты по умолчанию, подходят в большинстве ситуаций)

+ +

Drag-данные

+ +

Все {{domxref("DragEvent","drag events")}} имеют свойство, называемое{{domxref("DragEvent.dataTransfer","dataTransfer")}}, которое содержит drag-данные (dataTransfer это {{domxref("DataTransfer")}} object).

+ +

Когда происходит перетаскивание, данные должны быть связаны с перетаскиванием, которое определяет, что перетаскивается. Например, при перетаскивании выделенного текста в текстовое поле данные, связанные с элементом данных перетаскивания, являются самим текстом. Аналогично, при перетаскивании ссылки на веб-странице элемент данных перетаскивания является URL-адресом ссылки.

+ +

{{domxref("DataTransfer","drag data")}} содержит два параметра, тип (или формат) данных, и значение данных. Формат это строковый тип (такой как text/plain текстовых данных), значение - строка текста. Когда начинается перетаскивание, вы добавляете данные, предоставляя тип и данные. Во время перетаскивания в слушателе события для событий {{event("dragenter")}} и {{event("dragover")}} , вы используете типы данных перетаскиваемых данных, чтобы проверить, разрешено ли удаление. Например, цель drop, которая принимает ссылки, будет проверять тип text/uri-list. В течение события drop, слушатель будет получать данные тащат и вставить его на место.

+ +

Свойство {{domxref("DataTransfer","drag data's")}} {{domxref("DataTransfer.types","types")}} возвращает список MIME-типов {{domxref("DOMString")}}, таких как text/plain или image/jpeg. Вы также можете создавать свои собственные типы. Большинство основные используемых типов описаны в  Recommended Drag Types.

+ +

Перетаскивание может включать элементы данных нескольких различных типов. Это позволяет предоставлять данные в более специфических типах, часто пользовательских, но по предоставляет резервные данные для drop, которые не поддерживают более специфические типы. Как правило, наименее специфичным типом будут обычные текстовые данные, использующие тип text/plain. Эти данные будут простым текстовым представлением.

+ +

Установка элементов drag-данных {{domxref("DragEvent.dataTransfer","dataTransfer")}}, используя метод {{domxref("DataTransfer.setData","setData()")}}. Требуется два аргумента: тип данных и значение данных. Например:

+ +
event.dataTransfer.setData("text/plain", "Text to drag");
+
+ +

Здесь, значение -  "Text to drag", формат -  text/plain.

+ +

Вы можете предусмотреть данные в нескольких форматах. Сделаем это, вызовем метод  {{domxref("DataTransfer.setData","setData()")}} несколько раз с различными форматами. Вы должны вызывать его с форматами от большей специфичности к меньшей.

+ +
const dt = event.dataTransfer;
+dt.setData("application/x.bookmark", bookmarkString);
+dt.setData("text/uri-list", "https://www.mozilla.org");
+dt.setData("text/plain", "https://www.mozilla.org");
+
+ +

Добавлены данные трех различных форматов. Первый тип - application/x.bookmark, пользовательский тип.Другие приложения не поддерживают данный тип, но вы можете использовать пользовательский тип для перетаскивания между областями в одном приложениее или на одной странице.

+ +

Предоставляя данные и в других типах, мы также можем поддерживать перетаскивание в другие приложения в менее специфичных формах. Тип application/x.bookmark может предоставлять данные с  более подробной информацией для использования в приложении, в то время как другие типы могут включать только один URL-адрес или текстовую версию.

+ +

Обратите внимание, что и text/uri-list и text/plain cодержат одни и те же данные в этом примере.  Это часто бывает так, но это не обязательно.

+ +

Если вы попытаетесь добавить данные дважды с тем же форматом, новые данные заменят старые данные, но в той же позиции в списке типов, что и старые данные.

+ +

Вы можете очистить данные, используя метод {{domxref("DataTransfer.clearData","clearData()")}}, который принимает один аргумент: тип данных для удаления.

+ +
event.dataTransfer.clearData("text/uri-list");
+
+ +

Аргумент type в методе {{domxref("DataTransfer.clearData","clearData()")}} опционален. Если type не указан, данные, связанные со всеми типами, удаляются. Если перетаскивание не содержит элементов данных перетаскивания или все элементы были впоследствии очищены, то перетаскивание не произойдет.

+ +

Настройка изображения отклика drag

+ +

Когда происходит перетаскивание, полупрозрачное изображение генерируется из цели перетаскивания (событие "{{event("dragstart")}}" элемента срабатывает), и следует за указателем пользователя во время перетаскивания. Это изображение создается автоматически, поэтому вам не нужно создавать его самостоятельно. Однако вы можете использовать {{domxref("DataTransfer.setDragImage","setDragImage()")}} для задания пользовательского изображения отклика перетаскивания.

+ +
event.dataTransfer.setDragImage(image, xOffset, yOffset);
+
+ +

Необходимы три аргумента. Первый - это ссылка на изображение. Эта ссылка обычно относится к элементу <img>, но также может относиться к элементу <canvas> или любому другому элементу. Изображение отклика будет генерироваться из того, как изображение выглядит на экране, для изображений они будут нарисованы в их первоначальном размере. Второй и третий аргументы метода {{domxref("DataTransfer.setDragImage","setDragImage()")}} - это смещения, в которых изображение должно появляться относительно указателя мыши.

+ +

Также можно использовать изображения и canvas, которых нет в документе. Этот метод полезен при рисовании пользовательских изображений перетаскивания с помощью элемента canvas, как показано в следующем примере:

+ +
function dragWithCustomImage(event) {
+  const canvas = document.createElement("canvas");
+  canvas.width = canvas.height = 50;
+
+  const ctx = canvas.getContext("2d");
+  ctx.lineWidth = 4;
+  ctx.moveTo(0, 0);
+  ctx.lineTo(50, 50);
+  ctx.moveTo(0, 50);
+  ctx.lineTo(50, 0);
+  ctx.stroke();
+
+  const dt = event.dataTransfer;
+  dt.setData('text/plain', 'Data to Drag');
+  dt.setDragImage(canvas, 25, 25);
+}
+
+ +

В этом примере мы делаем один canvas перетаскивания. Поскольку размер холста составляет 50×50 пикселей, мы используем смещение половины этого (25), чтобы изображение было центрировано на указателе мыши.

+ +

Drag эффекты

+ +

При перетаскивании можно выполнить несколько операций. Операция  copy используется для указания на то, что перетаскиваемые данные будут скопированы из текущего местоположения в место перетаскивания. Операция move используется для указания на то, что перетаскиваемые данные будут перемещены, а операция link используется для указания на то, что между исходным и удаляемым местоположениями будет создана некоторая форма связи или соединения.

+ +

Вы можете указать, какая из трех операций разрешена для источника перетаскивания, установив свойство {{domxref("DataTransfer.effectAllowed","effectAllowed")}} в слушателе событий{{event("dragstart")}}.

+ +
event.dataTransfer.effectAllowed = "copy";
+
+ +

В этом примере разрешена только копия.

+ +

Вы можете комбинировать значения различными способами:

+ +
+
none
+
никакая операция не разрешена
+
copy
+
только copy
+
move
+
только move
+
link
+
только link
+
copyMove
+
только copy или move
+
copyLink
+
только copy или link
+
linkMove
+
только link или move
+
all
+
только copy, move, или link
+
uninitialized
+
Значение по умолчанию all.
+
+ +

Обратите внимание, что эти значения должны использоваться так, как указано выше. Например, установка свойства {{domxref("DataTransfer.effectAllowed","effectAllowed")}} на copyMove позволяет выполнять операцию копирования или перемещения, но не позволяет пользователю выполнять операцию связывания. Если вы не измените свойство {{domxref("DataTransfer.effectAllowed","effectAllowed")}},  то любая операция разрешена, как и со значением 'all'. Поэтому вам не нужно настраивать это свойство, если вы не хотите исключить определенные типы.

+ +

Во время операции перетаскивания, слушатель для событий {{event("dragenter")}} или {{event("dragover")}} может проверить свойство {{domxref("DataTransfer.effectAllowed","effectAllowed")}} , какие операции разрешены. Связанное свойство,  {{domxref("DataTransfer.dropEffect","dropEffect")}}, должно быть установлено в пределах одного из этих событий, чтобы указать, какая единственная операция должна быть выполнена. Допустимые значения для {{domxref("DataTransfer.dropEffect","dropEffect")}} - none, copy, move, или link. Комбинированные значения для этого свойства не используются.

+ +

С событиями {{event("dragenter")}} и {{event("dragover")}}, свойство {{domxref("DataTransfer.dropEffect","dropEffect")}} инициализируется в соответствии с запросом пользователя. Пользователь может изменить желаемый эффект, нажав клавиши-модификаторы. Хотя точные используемые клавиши различаются в зависимости от платформы, обычно клавиши  Shift и Control используются для переключения между копированием, перемещением и связыванием. Указатель мыши изменится, чтобы указать, какая операция требуется. Например, для copy курсор может появиться со знаком плюс рядом с ним.

+ +

Вы можете изменять свойство {{domxref("DataTransfer.dropEffect","dropEffect")}} во время событий {{event("dragenter")}} или {{event("dragover")}}, например, определенная drop-цель поддерживает только определенные операции. Вы можете изменить свойство {{domxref("DataTransfer.dropEffect","dropEffect")}}, чтобы переопределить действие пользователя, и обеспечить выполнение специфичной  операции перетаскивания при ее наступлении. Обратите внимание, что этот эффект должен быть указан в списке свойств {{domxref("DataTransfer.effectAllowed","effectAllowed")}}. В противном случае ему будет присвоено другое допустимое значение.

+ +
event.dataTransfer.dropEffect = "copy";
+
+ +

В этом примере выполняется эффект копирования.

+ +

Вы можете использовать значение none, чтобы указать, что в этом месте не допускается удаление, хотя в этом случае лучше не отменять событие.

+ +

В событиях {{event("drop")}} и {{event("dragend")}}, yвы можете проверить свойства {{domxref("DataTransfer.dropEffect","dropEffect")}} для определения того, какой эффект был в конечном итоге выбран.  Если выбран эффект "move",то исходные данные должны быть удалены из источника перетаскивания в событии{{event("dragend")}}.

+ +

Указание drop-целей

+ +

Слушатель для событий {{event("dragenter")}} и {{event("dragover")}} используются для указания допустимых drop-целей, то есть мест, где могут быть сброшены перетаскиваемые элементы. Большинство областей веб-страницы или приложения не являются допустимыми местами для сброса данных. Таким образом, обработка этих событий по умолчанию не допускает сброса перетаскиваемых данных.

+ +

Если вы хотите разрешить сброс переносимых данных, вы должны предотвратить обработку по умолчанию, отменив оба события dragenter и dragover.  Это можно сделать, либо вернув false из определенных атрибутом слушателя событий, либо вызвав метод {{domxref("Event.preventDefault","preventDefault()")}} событие. Последнее может быть более осуществимо в функции, определенной в отдельном скрипте.

+ +
<div ondragover="return false">
+<div ondragover="event.preventDefault()">
+
+ +

Вызывая метод {{domxref("Event.preventDefault","preventDefault()")}} во время обоих событий {{event("dragenter")}} и {{event("dragover")}} укажите, что падение разрешено в этом месте. Однако обычно вы захотите вызвать метод  {{domxref("Event.preventDefault","preventDefault()")}} события только в определенных ситуациях (например, только при перетаскивании ссылки).

+ +

Для этого вызовите функцию, которая проверяет условие и отменяет событие только при его выполнении. Если условие не выполнено, не отменяйте событие, и сброс перетаскиваемых данных не произойдет, если пользователь отпустит кнопку мыши.

+ +

Наиболее распространенным является принятие или отклонение сброса в зависимости от типа данных перетаскивания при передаче данных — например, разрешение для изображений, ссылок или и того, и другого. Для этого вы можете проверить свойство {{domxref("DataTransfer.types","types")}} события {{domxref("DragEvent.dataTransfer","dataTransfer")}} (свойство). Свойство {{domxref("DataTransfer.types","types")}} возвращает массив из строк, добавленных при начале перетаскивания, в порядке от наиболее значимого к наименее значимому.

+ +
function doDragOver(event) {
+  const isLink = event.dataTransfer.types.includes("text/uri-list");
+  if (isLink) {
+    event.preventDefault();
+  }
+}
+ +

В этом примере мы используем метод includes  чтобы проверить, присутствует ли тип text/uri-list в списке типов. Если это так, мы отменим событие, так что сброс становится разрешен. Если перетаскиваемые данные не содержат ссылки, событие не будет отменено, и сброс не может произойти в этом месте.

+ +

Вы также можете установить либо свойство {{domxref("DataTransfer.effectAllowed","effectAllowed")}}, либо свойство{{domxref("DataTransfer.dropEffect","dropEffect")}}, либо оба одновременно, если вы хотите указать более конкретные сведения о типе операции, которая будет выполнена. Естественно, изменение любого свойства не будет иметь никакого эффекта, если вы не отмените событие.

+ +

Drop Feedback

+ +

There are several ways in which you can indicate to the user that a drop is allowed at a certain location. The mouse pointer will update as necessary depending on the value of the {{domxref("DataTransfer.dropEffect","dropEffect")}} property.

+ +

Although the exact appearance depends on the user's platform, typically a plus sign icon will appear for a 'copy' for example, and a 'cannot drop here' icon will appear when a drop is not allowed. This mouse pointer feedback is sufficient in many cases.

+ +

However, you can also update the user interface with an insertion point or highlight as needed. For simple highlighting, you can use the :-moz-drag-over CSS pseudoclass on a drop target.

+ +
.droparea:-moz-drag-over {
+  outline: 1px solid black;
+}
+
+ +

In this example, the element with the class droparea will receive a 1 pixel black outline while it is a valid drop target, that is, if the {{domxref("Event.preventDefault","preventDefault()")}} method was called during the {{event("dragenter")}} event.

+ +
+

Note: You must cancel the {{event("dragenter")}} event for this pseudoclass to apply, as this state is not checked for the {{event("dragover")}} event.

+
+ +

For more complex visual effects, you can also perform other operations during the {{event("dragenter")}} event. For example, by inserting an element at the location where the drop will occur. This might be an insertion marker, or an element that represents the dragged element in its new location. To do this, you could create an image or separator element and simply insert it into the document during the {{event("dragenter")}} event.

+ +

The {{event("dragover")}} event will fire at the element the mouse is pointing at. Naturally, you may need to move the insertion marker around a {{event("dragover")}} event as well. You can use the event's {{domxref("MouseEvent.clientX","clientX")}} and {{domxref("MouseEvent.clientY","clientY")}} properties as with other mouse events to determine the location of the mouse pointer.

+ +

Finally, the {{event("dragleave")}} event will fire at an element when the drag leaves the element. This is the time when you should remove any insertion markers or highlighting. You do not need to cancel this event. Any highlighting or other visual effects specified using the :-moz-drag-over pseudoclass will be removed automatically. The {{event("dragleave")}} event will always fire, even if the drag is cancelled, so you can always ensure that any insertion point cleanup can be done during this event.

+ +

Performing a Drop

+ +

When the user releases the mouse, the drag and drop operation ends.

+ +

If the mouse is released over an element that is a valid drop target, that is, one that cancelled the last {{event("dragenter")}} or {{event("dragover")}} event, then the drop will be successful, and a {{event("drop")}} event will fire at the target. Otherwise, the drag operation is cancelled, and no {{event("drop")}} event is fired.

+ +

During the {{event("drop")}} event, you should retrieve that data that was dropped from the event and insert it at the drop location. You can use the {{domxref("DataTransfer.dropEffect","dropEffect")}} property to determine which drag operation was desired.

+ +

As with all drag-related events, the event's {{domxref("DataTransfer","dataTransfer")}} property will hold the data that is being dragged. The {{domxref("DataTransfer.getData","getData()")}} method may be used to retrieve the data again.

+ +
function onDrop(event) {
+  const data = event.dataTransfer.getData("text/plain");
+  event.target.textContent = data;
+  event.preventDefault();
+}
+
+ +

The {{domxref("DataTransfer.getData","getData()")}} method takes one argument, the type of data to retrieve. It will return the string value that was set when {{domxref("DataTransfer.setData","setData()")}} was called at the beginning of the drag operation. An empty string will be returned if data of that type does not exist. (Naturally, though, you would likely know that the right type of data was available, as it was previously checked during a {{event("dragover")}} event.)

+ +

In the example here, once the data has been retrieved, we insert the string as the textual content of the target. This has the effect of inserting the dragged text where it was dropped, assuming that the drop target is an area of text such as a p or div element.

+ +

In a web page, you should call the {{domxref("Event.preventDefault","preventDefault()")}} method of the event if you have accepted the drop, so that the browser's default handling is not triggered by the dropped data as well. For example, when a link is dragged to a web page, Firefox will open the link. By cancelling the event, this behavior will be prevented.

+ +

You can retrieve other types of data as well. If the data is a link, it should have the type text/uri-list. You could then insert a link into the content.

+ +
function doDrop(event) {
+  const lines = event.dataTransfer.getData("text/uri-list").split("\n");
+  lines.filter(line => !line.startsWith("#"))
+    .forEach(line => {
+      const link = document.createElement("a");
+      link.href = line;
+      link.textContent = line;
+      event.target.appendChild(link);
+    })
+  event.preventDefault();
+}
+
+ +

This example inserts a link from the dragged data. As the name implies, the text/uri-list type actually may contain a list of URLs, each on a separate line. The above code uses split to break the string into lines, then iterates over the list of lines, and inserts each as a link into the document. (Note also that links starting with a number sign (#) are skipped, as these are comments.)

+ +

For simple cases, you can use the special type URL just to retrieve the first valid URL in the list. For example:

+ +
const link = event.dataTransfer.getData("URL");
+
+ +

This eliminates the need to check for comments or iterate through lines yourself. However, it is limited to only the first URL in the list.

+ +

The URL type is a special type. It is used only as a shorthand, and it does not appear within the list of types specified in the {{domxref("DataTransfer.types","types")}} property.

+ +

Sometimes you may support some different formats, and you want to retrieve the data that is most specific that is supported. In the following example, three formats are supported by a drop target.

+ +

The following example returns the data associated with the best-supported format:

+ +
function doDrop(event) {
+  const supportedTypes = ["application/x-moz-file", "text/uri-list", "text/plain"];
+  const types = event.dataTransfer.types.filter(type => supportedTypes.includes(type));
+  if (types.length) {
+    const data = event.dataTransfer.getData(types[0]);
+  }
+  event.preventDefault();
+}
+
+ +

Окончание перетаскивания

+ +

Как только перетаскивание завершено, событие {{event("dragend")}} запускается в источнике перетаскивания (тот же элемент, который получил событие {{event("dragstart")}}). Это событие сработает, если перетаскивание было успешным[1] или если оно было отменено. Однако вы можете использовать свойство {{domxref("DataTransfer.dropEffect","dropEffect")}} для определения, какая операция удаления произошла.

+ +

Если свойство {{domxref("DataTransfer.dropEffect","dropEffect")}} имеет значение none во время события {{event("dragend")}}, то перетаскивание было отменено. В противном случае эффект указывает, какая операция была выполнена. Источник может использовать эту информацию после операции перемещения для удаления перетаскиваемого элемента из старого расположения. Свойство {{domxref("DataTransfer.mozUserCancelled","mozUserCancelled")}} будет присвоено значение true, если пользователь отменил перетаскивание (нажав Escape), и false если перетаскивание было отменено по другим причинам, таким как недопустимая цель перетаскивания, или если оно было успешным.

+ +

Сброс может произойти внутри того же окна или над другим приложением. Событие{{event("dragend")}}будет срабатывать всегда, независимо от этого. Свойство события {{domxref("MouseEvent.screenX","screenX")}} и {{domxref("MouseEvent.screenY","screenY")}} будут установлены в координаты экрана, где произошел сброс.

+ +

Когда событие {{event("dragend")}} завершило распространение, операция перетаскивания завершена.

+ +

[1]: В Gecko, {{event("dragend")}} не отправляется, если исходный узел движется или удаляется во время перетаскивания (например, при сбрасывании или {{event("dragover")}}). Bug 460801

+ +

Смотрите также

+ + diff --git a/files/ru/web/api/html_drag_and_drop_api/index.html b/files/ru/web/api/html_drag_and_drop_api/index.html new file mode 100644 index 0000000000..86467501fd --- /dev/null +++ b/files/ru/web/api/html_drag_and_drop_api/index.html @@ -0,0 +1,72 @@ +--- +title: Drag and drop +slug: Web/Guide/HTML/Drag_and_drop +translation_of: Web/API/HTML_Drag_and_Drop_API +--- +

Firefox и прочие приложения компании Mozilla имеют ряд возможностей для управления drag и drop. Это позволяет пользователю нажать и удерживая зажатой кнопку мыши над элементом, переместить его на другую позицию, отпустив кнопку мыши пользователь может оставить элемент на новой позиции. На протяжении всей операции перемещения полупрозрачное представление элемента следует за курсором мыши. Новая позиция элемента может располагаться в совершенно другом приложении. Веб сайты, и XUL приложения могут использовать эту функциональность для того, чтобы определить какие элементы страницы могут быть перемещены, а также определить элементы куда первые могут быть перемещены.

+ +
Эта часть покрывает функциональность drag и drop в Firefox 3.5 (Gecko 1.9.1) а также последующие версии. Для старого API для Firefox 3.0 и ранее, в котором нет соответствующей поддержки данной функциональности, смотрите older API documentation.
+ +

Основы Drag и Drop

+ +

Использование функциональности drag и drop подразумевает выполнения следующих шагов:

+ + + +

Mozilla и Firefox поддерживают ряд возможностей, которые выходят за рамку стандартной модели спецификации. Они позволяют пользователю перемещать несколько элементов и перемещать нестроковые данные. Для детальной информации смотрите Dragging and Dropping Multiple Items.

+ +

Для того, чтобы ознакомиться с общим списком данных поддерживаемых операцией drag and drop смотрите Recommended Drag Types.

+ +

Также доступны примеры с лучшей практикой использования операции drag and drop для перемещения данных разных типов:

+ + + +

Смотри DataTransfer для ссылки на объект DataTransfer.

+ +

События Drag

+ +

Ряд событий срабатывают на протяжении всей процедуры drag and drop. Запомните, что только drag-события срабатывают на протяжении операции перемещения; события мыши, такие как mousemove - нет. Также запомните, что события dragstart и dragend не срабатывают при попытке перенести файл из операционной системы в браузер.

+ +

Свойство dataTransfer всех событий перемещения содержит данные про все drag и drop операции.

+ +
+
dragstart
+
Срабатывает когда элeмент начал перемещаться. В момент срабатывания события dragstart пользователь начинает перетаскивание элемента. Обработчик данного события может быть использован для сохранения информации о перемещаемом объекте, а также для изменения изображения, которое будет ассоциировано с перемещением. Дaнное событие не срабатывает, когда некоторый файл будет переноситься из операционной системы в браузер. Для детальной информации Starting a Drag Operation.
+
dragenter
+
Срабатывает, когда перемещаемый элемент попадает на элемент-назначение. Обработчик этого события показывает, что элемент находится над объектом на который он может быть перенесен. Если же обработчика нет, либо он не совершает никаких действий перемещение по умолчанию запрещено. Это событие также используется для того, чтобы подсветить либо промаркировать объект над которым происходит перемещения в случае, если перемещение на данный элемент разрешено. Для детальной информации смотрите Specifying Drop Targets.
+
dragover
+
Данное событие срабатывает каждые несколько сотен милисекунд, когда перемещаемый элемент оказывается над зоной, принимающей перетаскиваемые элементы. Для детальной информации смотрите Specifying Drop Targets.
+
dragleave
+
Это событие запускается в момент перетаскивания, когда курсор мыши выходит за пределы элемента. Обработчикам следует убрать любую подсветку или иные индикаторы, указывавшие на присутствие курсора, чтобы тем самым обозначить реакцию на прекращение перетаскивания.
+
drag
+
Запускается при перемещении элемента или выделенного текста.
+
drop
+
Событие drop вызывается для элемента, над которым произошло "сбрасывание" перемещаемого элемента. Событие отвечает за извлечение "сброшенных" данных и их вставку. Событие будет срабатывать только при завершении операции перетаскивания, например, событие не сработает, если пользователь отменит перетаскивание нажатием Esc, или не донесет элемент, до цели. Для детальной информации смотрите Performing a Drop.
+
dragend
+
Источник перетаскивания получит событие dragend, когда перетаскивание завершится, было оно удачным или нет. Это событие не вызывается при перетаскивании файла в браузер из ОС.   Для детальной информации смотрите Finishing a Drag.
+
+ +

Смотрите также

+ + diff --git a/files/ru/web/api/htmlaudioelement/audio()/index.html b/files/ru/web/api/htmlaudioelement/audio()/index.html deleted file mode 100644 index 4d9e39dfab..0000000000 --- a/files/ru/web/api/htmlaudioelement/audio()/index.html +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Audio() -slug: Web/API/HTMLAudioElement/Audio() -tags: - - аудио -translation_of: Web/API/HTMLAudioElement/Audio ---- -

{{APIRef("HTML DOM")}}

- -

Конструктор Audio() создает и возвращает новый {{domxref("HTMLAudioElement")}} объект, который может быть прикреплен к документу, чтобы пользователь мог взаимодействовать и/или слушать его, либо может использоваться вне экрана для управления и воспроизведения звука.

- -

Синтаксис

- -
audioObj = new Audio(url);
- -

Параметры

- -
-
url {{optional_inline}}
-
Необязательный параметр {{domxref("DOMString")}}, содержащий URL-адрес аудиофайла, который будет связан с новым аудиоэлементом.
-
- -

Возвращаемое значение

- -

Новый {{domxref("HTMLAudioElement")}} объект, настроенный для воспроизведения файла, указанного в url. Свойство {{domxref("HTMLMediaElement.preload", "preload")}} нового объекта имеет значение по умолчанию auto, а его свойство src — указанный URL-адрес или null, если адрес не указан. Если указан URL-адрес, браузер начинает асинхронно загружать медиаресурс перед возвратом нового объекта.

- - - -

Примечания по использованию

- -

Вы также можете использовать другие методы создания элементов, такие как метод {{domxref("Document.createElement", "createElement()")}} объекта {{domxref("document")}}, для создания нового {{domxref("HTMLAudioElement")}} объекта.

- -

Определение, когда воспроизведение может начаться

- -

Существует три способа определить насколько аудио-файл загружен, чтобы начать воспроизведение:

- - - -

Лучший подход, основанный на событии:

- -
myAudioElement.addEventListener("canplaythrough", event => {
-  /* аудио может быть воспроизведено; проиграть, если позволяют разрешения */
-  myAudioElement.play();
-});
- -

Использование памяти и управление

- -

Если все ссылки на аудиоэлемент, созданные с помощью конструктора Audio() удалены, сам элемент не будет удален из памяти механизмом сборщика мусора JavaScript, если в данный момент идет воспроизведение. Вместо этого продолжится воспроизведение и объект останется в памяти до тех пор, пока не закончится аудио или оно не будет приостановлено (например, путем вызова {{domxref("HTMLMediaElement.pause", "pause()")}}). В этот момент объект подлежит уничтожению сборщиком мусора.

- -

Спецификации

- - - - - - - - - - - - - - - - -
СпецификацияСтатусКомментарий
{{SpecName('HTML WHATWG', "#dom-audio", "Audio()")}}{{Spec2('HTML WHATWG')}}
- -

Поддержка браузерами

- -

Таблица совместимости на этой странице генерируется из структурированных данных. Если Вы хотите внести свой вклад в эти данные, просмотрите https://github.com/mdn/browser-compat-data и отправте нам Pull-запрос.

- -

{{Compat("api.HTMLAudioElement.Audio")}}

- -

Смотрите также

- - diff --git a/files/ru/web/api/htmlaudioelement/audio/index.html b/files/ru/web/api/htmlaudioelement/audio/index.html new file mode 100644 index 0000000000..4d9e39dfab --- /dev/null +++ b/files/ru/web/api/htmlaudioelement/audio/index.html @@ -0,0 +1,85 @@ +--- +title: Audio() +slug: Web/API/HTMLAudioElement/Audio() +tags: + - аудио +translation_of: Web/API/HTMLAudioElement/Audio +--- +

{{APIRef("HTML DOM")}}

+ +

Конструктор Audio() создает и возвращает новый {{domxref("HTMLAudioElement")}} объект, который может быть прикреплен к документу, чтобы пользователь мог взаимодействовать и/или слушать его, либо может использоваться вне экрана для управления и воспроизведения звука.

+ +

Синтаксис

+ +
audioObj = new Audio(url);
+ +

Параметры

+ +
+
url {{optional_inline}}
+
Необязательный параметр {{domxref("DOMString")}}, содержащий URL-адрес аудиофайла, который будет связан с новым аудиоэлементом.
+
+ +

Возвращаемое значение

+ +

Новый {{domxref("HTMLAudioElement")}} объект, настроенный для воспроизведения файла, указанного в url. Свойство {{domxref("HTMLMediaElement.preload", "preload")}} нового объекта имеет значение по умолчанию auto, а его свойство src — указанный URL-адрес или null, если адрес не указан. Если указан URL-адрес, браузер начинает асинхронно загружать медиаресурс перед возвратом нового объекта.

+ + + +

Примечания по использованию

+ +

Вы также можете использовать другие методы создания элементов, такие как метод {{domxref("Document.createElement", "createElement()")}} объекта {{domxref("document")}}, для создания нового {{domxref("HTMLAudioElement")}} объекта.

+ +

Определение, когда воспроизведение может начаться

+ +

Существует три способа определить насколько аудио-файл загружен, чтобы начать воспроизведение:

+ + + +

Лучший подход, основанный на событии:

+ +
myAudioElement.addEventListener("canplaythrough", event => {
+  /* аудио может быть воспроизведено; проиграть, если позволяют разрешения */
+  myAudioElement.play();
+});
+ +

Использование памяти и управление

+ +

Если все ссылки на аудиоэлемент, созданные с помощью конструктора Audio() удалены, сам элемент не будет удален из памяти механизмом сборщика мусора JavaScript, если в данный момент идет воспроизведение. Вместо этого продолжится воспроизведение и объект останется в памяти до тех пор, пока не закончится аудио или оно не будет приостановлено (например, путем вызова {{domxref("HTMLMediaElement.pause", "pause()")}}). В этот момент объект подлежит уничтожению сборщиком мусора.

+ +

Спецификации

+ + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('HTML WHATWG', "#dom-audio", "Audio()")}}{{Spec2('HTML WHATWG')}}
+ +

Поддержка браузерами

+ +

Таблица совместимости на этой странице генерируется из структурированных данных. Если Вы хотите внести свой вклад в эти данные, просмотрите https://github.com/mdn/browser-compat-data и отправте нам Pull-запрос.

+ +

{{Compat("api.HTMLAudioElement.Audio")}}

+ +

Смотрите также

+ + diff --git a/files/ru/web/api/htmlelement/accesskey/index.html b/files/ru/web/api/htmlelement/accesskey/index.html new file mode 100644 index 0000000000..0230ecc9e0 --- /dev/null +++ b/files/ru/web/api/htmlelement/accesskey/index.html @@ -0,0 +1,74 @@ +--- +title: Element.accessKey +slug: Web/API/Element/accessKey +translation_of: Web/API/HTMLElement/accessKey +translation_of_original: Web/API/Element/accessKey +--- +
{{APIRef("DOM")}}
+ +
 
+ +

Описание

+ +

Свойство accessKey позволяет перейти к элементу с помощью сочетания клавиш - заданной им и тех, что назначит браузер.

+ +
+

По сути, accessKey задает значение для одноименного атрибута...

+
+ +
+

Данное свойство использовать не рекоммендуется, поскольку в браузерах уже заданы подобные привязки и неосторожное обращение может привести к жестокому конфликту.

+
+ +

 

+ +

Синтаксис

+ +
var key = elem.accessKey;
+elem.accessKey = key;
+
+ +

 

+ +

Пример

+ +
var elem = document.getElementById("id");
+elem.accessKey = "w";
+
+ +

Немного информации

+ +

Фокусировка на элемент произойдет при нажатии следующих клавиш (,где acesskey - значение свойства acessKey).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

      Браузер

+
+

      Сочетание

+
Firefox[Alt] [Shift] + accesskey
Internet Explorer[Alt] + accesskey
Chrome[Alt] + accesskey
Safari[Alt] + accesskey
Opera[Shift] [Esc] + accesskey
diff --git a/files/ru/web/api/htmlelement/dataset/index.html b/files/ru/web/api/htmlelement/dataset/index.html deleted file mode 100644 index 328b265afa..0000000000 --- a/files/ru/web/api/htmlelement/dataset/index.html +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: HTMLElement.dataset -slug: Web/API/HTMLElement/dataset -translation_of: Web/API/HTMLOrForeignElement/dataset ---- -

{{ APIRef("HTML DOM") }}

- -

Свойство HTMLElement.dataset предоставляет доступ как для чтения, так и для изменения всех пользовательских дата-атрибутов custom data attributes (data-*) , установленных у элемента. Это map of DOMString, одна запись для каждого пользовательского атрибута данных. Обратите внимание, свойство dataset доступно только для чтения. Для записи должны использоваться  его "свойства", которые представлены data-атрибутами. Также обратите внимание, что HTML data-атрибут и соответствующий ему DOM-dataset.property не имеют одно и то же имя, но они всегда похожи:

- - - -

Преобразование имён

- -

dash-style в camelCase: имя пользовательского дата-атрибута преобразуется в ключ для {{ domxref("DOMStringMap") }} по следующим правилам:

- - - -

camelCase в dash-style: обратное преобразование ключа в имя атрибута производится по следующим правилам:

- - - -

Ограничение в правилах гарантирует, что эти два преобразования являются обратными друг другу.

- -

Например, атрибуту data-abc-def соответствует ключ abcDef.

- -

Доступ к значениям

- - - -

Синтаксис

- - - -

Примеры

- -
<div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth>John Doe</div>
-
-let el = document.querySelector('#user');
-
-// el.id == 'user'
-// el.dataset.id === '1234567890'
-// el.dataset.user === 'johndoe'
-// el.dataset.dateOfBirth === ''
-
-el.dataset.dateOfBirth = '1960-10-03'; // set the DOB.
-
-// 'someDataAttr' in el.dataset === false
-el.dataset.someDataAttr = 'mydata';
-// 'someDataAttr' in el.dataset === true
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('HTML WHATWG', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML WHATWG')}}No change from latest snapshot, {{SpecName('HTML5.1')}}
{{SpecName('HTML5.1', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName('HTML WHATWG')}}, no change from {{SpecName('HTML5 W3C')}}
{{SpecName('HTML5 W3C', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5 W3C')}}Snapshot of  {{SpecName('HTML WHATWG')}}, initial definition.
- -

Совместимость с браузерами

- -

{{Compat("api.HTMLElement.dataset")}}

- -

См. также

- - diff --git a/files/ru/web/api/htmlelement/innertext/index.html b/files/ru/web/api/htmlelement/innertext/index.html new file mode 100644 index 0000000000..ef23b48d59 --- /dev/null +++ b/files/ru/web/api/htmlelement/innertext/index.html @@ -0,0 +1,46 @@ +--- +title: Node.innerText +slug: Web/API/Node/innerText +translation_of: Web/API/HTMLElement/innerText +--- +
{{APIRef("DOM")}}
+ +

Node.innerText - это свойство, позволяющее задавать или получать текстовое содержимое элемента и его потомков. В качестве геттера, свойство приближается к тексту, который пользователь получит, если он выделит содержимое элемента курсором, затем копирует его в буфер обмена.

+ +

Изначально, данное поведение было представленно Internet Explorer, и было формально специализированно в стандарте HTML в 2016 после того, как было адаптированно всеми ведущими браузерами.

+ +

{{domxref("Node.textContent")}} - это альтернативное свойство, которое имеет ряд отличий:

+ + + +

Спецификация

+ + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('HTML WHATWG', 'dom.html#the-innertext-idl-attribute', 'innerText')}}{{Spec2('HTML WHATWG')}}Представлено, основываясь на черновике спецификации innerText. См. whatwg/html#465 и whatwg/compat#5.
+ +

Поддержка браузерами

+ +

{{Compat("api.Node.innerText")}}

+ +

Смотрите также

+ + diff --git a/files/ru/web/api/htmlelement/nonce/index.html b/files/ru/web/api/htmlelement/nonce/index.html deleted file mode 100644 index e47f3aea23..0000000000 --- a/files/ru/web/api/htmlelement/nonce/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: HTMLElement.nonce -slug: Web/API/HTMLElement/nonce -translation_of: Web/API/HTMLOrForeignElement/nonce ---- -

{{SeeCompatTable}}{{APIRef("HTML DOM")}}

- -

Свойство nonce интерфейса {{domxref("HTMLElement")}} возвращает криптографический номер, который используется политикой безопасности содержимого для определения того, будет ли разрешена дальнейшая работа с данной выборкой.

- -

В более поздних реализациях элементы, имеющие атрибут nonce, предоставляют его только скриптам (а не сторонним каналам, таким как селекторы атрибутов CSS).

- -

Syntax

- -
var nonce = HTMLElement.nonce
-HTMLElement.nonce = nonce
- -

Value

- -

Криптографический код.

- -

Specifications

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('HTML WHATWG','#attr-nonce','nonce')}}{{Spec2('HTML WHATWG')}}Первоначальное определение.
- -

Browser Compatibility

- -
- - -

{{Compat("api.HTMLElement.nonce")}}

-
diff --git a/files/ru/web/api/htmlelement/style/index.html b/files/ru/web/api/htmlelement/style/index.html deleted file mode 100644 index 683bfa1101..0000000000 --- a/files/ru/web/api/htmlelement/style/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: HTMLElement.style -slug: Web/API/HTMLElement/style -tags: - - API - - HTML DOM - - HTMLElement - - NeedsBrowserAgnosticism - - NeedsBrowserCompatibility - - NeedsMarkupWork - - NeedsSpecTable - - Свойство - - Ссылки -translation_of: Web/API/ElementCSSInlineStyle/style ---- -

Кратко

- -
-
{{ APIRef("HTML DOM") }}
-
- -

Свойство HTMLElement.style используется для получения и установки инлайновых стилей. При получении возвращается объект CSSStyleDeclaration , который содержит список из всех свойств стилей для этого элемента с значениями заданными  для атрибутов , что определенны  в инлайновом стиле (см. атрибут стиля) элемента. См. CSS Properties Reference для получения списка CSS свойств применимых вместе со style.  

- -

Настройка стилей

- -

Свойство style имеет тот же приоритет (и выше) в каскаде CSS как и прямая декларация стиля через атрибут style, полезен для настройки стиля отдельного специфичного элемента.

- -

Стили не следует устанавливать непосредственно через свойство style (например elt.style = "color: blue;"), поскольку оно считается доступным только для чтения и атрибут style возвращает объект CSSStyleDeclaration который доступен только для чтения. Вместо этого стили могут быть установлены путем присвоения значений свойствам style. Для добавления определенных стилей для элемента без изменения других свойств стилей предпочтительно использовать отдельные свойства style (например elt.style.color = '...'). -При использовании
elt.style.cssText = '...' или elt.setAttribute('style','...') устанавливаются стили перезаписывая уже существующие. Обратите внимание, что имена свойств стилей задаются в camel-case а не в kebab-case elt.style.<property> (т.е., elt.style.fontSize, а не elt.style.font-size).

- -

Объявленные стили сбрасываются присваиванием значения null,
elt.style.color = null

- -

Примеры

- -
// Устанавливает несколько стилей в одном выражении
-elt.style.cssText = "color: blue; border: 1px solid black";
-// Или
-elt.setAttribute("style", "color:red; border: 1px solid blue;");
-
-// Устанавливает определенный стиль оставляя другие значения стиля нетронутыми
-elt.style.color = "blue";
- -

Получение стиль-информации

- -

Свойство style в основном не имеет пользы в части информации о стиле элемента, оно только олицетворяет собой набор CSS деклараций атрибутов style элемента, а не тех которые проистекают из стиль-правил откуда-либо ещё, таких как стилевые правила раздела {{HTMLElement("head")}}, или внешней таблицы стилей. Для получения значений всех CSS свойств элемента вы должны использовать вместо этого {{domxref("window.getComputedStyle()")}}.

- -
-
var div = document.getElementById("div1");
-div.style.marginTop = ".25in";
-
- -

Следующий код показывает имена всех свойств стиля, значений, заданных явно для элемента elt и унаследованных "расчитанных" значений:

- -
var elt = document.getElementById("elementIdHere");
-var out = "";
-var st = elt.style;
-var cs = window.getComputedStyle(elt, null);
-for (x in st) {
-  out += "  " + x + " = '" + st[x] + "' > '" + cs[x] + "'\n";
-}
- -

Спецификация

- -

DOM Level 2 Style: ElementCSSInlineStyle.style

- -

CSSOM: ElementCSSInlineStyle

- -

Совместимость

- - - -

{{Compat("api.HTMLElement.style")}}

- -

См. также

- - diff --git a/files/ru/web/api/htmlelement/tabindex/index.html b/files/ru/web/api/htmlelement/tabindex/index.html deleted file mode 100644 index fe41116fe4..0000000000 --- a/files/ru/web/api/htmlelement/tabindex/index.html +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: HTMLElement.tabIndex -slug: Web/API/HTMLElement/tabIndex -translation_of: Web/API/HTMLOrForeignElement/tabIndex ---- -
-
{{ APIRef("HTML DOM") }}
-
- -

Свойство HTMLElement.tabIndex предоставляет возможность вызова по кнопке Tab текущего элемента.

- -
-
Вызов по табуляции происходит в следующем порядке:
- -
    -
  1. элементы с положительным tabIndex. Элементы, имеющие одинаковое значение tabIndex вызываются в порядке появления в коде.  Переход осуществляется от меньших tabIndex до больших tabIndex. 
  2. -
  3. Элементы, которые не поддерживают атрибут tabIndex или поддерживают но tabIndex установлен в "0", выбираются по Tab в порядке их появления в коде.
  4. -
- -
Элементы для которых установлена блокировка (disabled) не могут быть выбраны кнопкой Tab и не могут быть в фокусе.
- -
 
- -
Значения могут начинаться с любого числа, могут быть отрицательными и могут быть непоследовательными, однако разные браузеры можгут неправильно сработать при очень больших значениях.
- -
 
-
- -

Синтаксис

- -
elt.tabIndex = index;
-var index = elt.tabIndex;
-
- - - -

Пример

- -
var b1 = document.getElementById("button1");
-
-b1.tabIndex = 1;
-
- -

Спецификация

- -

 

- - - - - - - - - - - - - - - - - - - - - - - - - - -
СпецификацияСтатусКоментарии
{{SpecName('HTML WHATWG', '#dom-tabindex', 'tabindex')}}{{Spec2('HTML WHATWG')}}Не было изменений с {{SpecName('DOM2 HTML')}}.
{{SpecName('DOM2 HTML', 'html.html#ID-40676705', 'tabindex')}}{{Spec2('DOM2 HTML')}}Не было изменений с {{SpecName('DOM1')}}.
{{SpecName('DOM1', 'level-one-html.html#ID-40676705', 'tabindex')}}{{Spec2('DOM1')}}Начальное определение
- -

Поддержка в браузерах

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
-
- -

Смотрите также

- - diff --git a/files/ru/web/api/htmlelement/transitionend_event/index.html b/files/ru/web/api/htmlelement/transitionend_event/index.html new file mode 100644 index 0000000000..dfb8542da6 --- /dev/null +++ b/files/ru/web/api/htmlelement/transitionend_event/index.html @@ -0,0 +1,165 @@ +--- +title: transitionend +slug: Web/Events/transitionend +tags: + - CSS +translation_of: Web/API/HTMLElement/transitionend_event +--- +

Событие transitionend срабатывает, когда CSS transition закончил свое выполнение. В случае, когда анимация удаляется до ее завершения(например, если transition-property [en-US] удаляется), то событие не срабатывает.

+ +

Общая информация

+ +
+
Интерфейс
+
{{domxref("TransitionEvent")}}
+
Всплывает
+
Да
+
Отменяемое
+
Да
+
Элемент
+
{{domxref("document")}}, {{domxref("element")}}
+
Действие по умолчанию
+
Нет
+
+ +

Свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The event target (the topmost target in the DOM tree).
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
propertyName {{readonlyInline}}{{domxref("DOMString")}}The name of the CSS property associated with the transition.
elapsedTime {{readonlyInline}}FloatThe amount of time the transition has been running, in seconds, as of the time the event was generated. This value is not affected by the value of transition-delay.
pseudoElement {{readonlyInline}}{{domxref("DOMString")}}The name (beginning with two colons) of the CSS pseudo-element on which the transition occured (in which case the target of the event is that pseudo-element's corresponding element), or the empty string if the transition occurred on an element (which means the target of the event is that element).
+ +

Пример

+ +
/*
+ * Прослушивать событие transitionend на определенном элементе, т.е. #slidingMenu
+ * Затем, вызвать определенную функцию, т.е. showMessage()
+ */
+function showMessage() {
+    alert('Transition закончил свое выполнение');
+}
+
+var element = document.getElementById("slidingMenu");
+element.addEventListener("transitionend", showMessage, false);
+
+ +

Спецификация

+ + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName("CSS3 Transitions", "#transition-events", "transitionend")}}{{ Spec2('CSS3 Transitions') }}Initial definition.
+ +

Совместимость с браузерами

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support1.0 as webkitTransitionEnd{{ CompatGeckoDesktop("2.0") }}1010.5 as oTransitionEnd
+ 12 as otransitionend
+ 12.10 as transitionend
3.2 as webkitTransitionEnd
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Basic support2.1 as webkitTransitionEnd{{ CompatGeckoMobile("2.0") }}{{ CompatUnknown() }}10 as oTransitionEnd
+ 12 as otransitionend
+ 12.10 as transitionend
3.2 as webkitTransitionEnd
+
+ +

Также

+ + diff --git a/files/ru/web/api/htmlmediaelement/seeking_event/index.html b/files/ru/web/api/htmlmediaelement/seeking_event/index.html new file mode 100644 index 0000000000..5802aecadb --- /dev/null +++ b/files/ru/web/api/htmlmediaelement/seeking_event/index.html @@ -0,0 +1,80 @@ +--- +title: стримится +slug: Web/HTML/Element/video/seeking_event +translation_of: Web/API/HTMLMediaElement/seeking_event +--- +

Событие 'seeking' в случае, когда идет подгрузка видео

+ +

General info

+ +
+
Specification
+
HTML5 media
+
Interface
+
Event
+
Bubbles
+
No
+
Cancelable
+
No
+
Target
+
Element
+
Default Action
+
None.
+
+ +

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The event target (the topmost target in the DOM tree).
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
+ + + + diff --git a/files/ru/web/api/htmlorforeignelement/dataset/index.html b/files/ru/web/api/htmlorforeignelement/dataset/index.html new file mode 100644 index 0000000000..328b265afa --- /dev/null +++ b/files/ru/web/api/htmlorforeignelement/dataset/index.html @@ -0,0 +1,114 @@ +--- +title: HTMLElement.dataset +slug: Web/API/HTMLElement/dataset +translation_of: Web/API/HTMLOrForeignElement/dataset +--- +

{{ APIRef("HTML DOM") }}

+ +

Свойство HTMLElement.dataset предоставляет доступ как для чтения, так и для изменения всех пользовательских дата-атрибутов custom data attributes (data-*) , установленных у элемента. Это map of DOMString, одна запись для каждого пользовательского атрибута данных. Обратите внимание, свойство dataset доступно только для чтения. Для записи должны использоваться  его "свойства", которые представлены data-атрибутами. Также обратите внимание, что HTML data-атрибут и соответствующий ему DOM-dataset.property не имеют одно и то же имя, но они всегда похожи:

+ + + +

Преобразование имён

+ +

dash-style в camelCase: имя пользовательского дата-атрибута преобразуется в ключ для {{ domxref("DOMStringMap") }} по следующим правилам:

+ + + +

camelCase в dash-style: обратное преобразование ключа в имя атрибута производится по следующим правилам:

+ + + +

Ограничение в правилах гарантирует, что эти два преобразования являются обратными друг другу.

+ +

Например, атрибуту data-abc-def соответствует ключ abcDef.

+ +

Доступ к значениям

+ + + +

Синтаксис

+ + + +

Примеры

+ +
<div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth>John Doe</div>
+
+let el = document.querySelector('#user');
+
+// el.id == 'user'
+// el.dataset.id === '1234567890'
+// el.dataset.user === 'johndoe'
+// el.dataset.dateOfBirth === ''
+
+el.dataset.dateOfBirth = '1960-10-03'; // set the DOB.
+
+// 'someDataAttr' in el.dataset === false
+el.dataset.someDataAttr = 'mydata';
+// 'someDataAttr' in el.dataset === true
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML WHATWG')}}No change from latest snapshot, {{SpecName('HTML5.1')}}
{{SpecName('HTML5.1', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName('HTML WHATWG')}}, no change from {{SpecName('HTML5 W3C')}}
{{SpecName('HTML5 W3C', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5 W3C')}}Snapshot of  {{SpecName('HTML WHATWG')}}, initial definition.
+ +

Совместимость с браузерами

+ +

{{Compat("api.HTMLElement.dataset")}}

+ +

См. также

+ + diff --git a/files/ru/web/api/htmlorforeignelement/nonce/index.html b/files/ru/web/api/htmlorforeignelement/nonce/index.html new file mode 100644 index 0000000000..e47f3aea23 --- /dev/null +++ b/files/ru/web/api/htmlorforeignelement/nonce/index.html @@ -0,0 +1,44 @@ +--- +title: HTMLElement.nonce +slug: Web/API/HTMLElement/nonce +translation_of: Web/API/HTMLOrForeignElement/nonce +--- +

{{SeeCompatTable}}{{APIRef("HTML DOM")}}

+ +

Свойство nonce интерфейса {{domxref("HTMLElement")}} возвращает криптографический номер, который используется политикой безопасности содержимого для определения того, будет ли разрешена дальнейшая работа с данной выборкой.

+ +

В более поздних реализациях элементы, имеющие атрибут nonce, предоставляют его только скриптам (а не сторонним каналам, таким как селекторы атрибутов CSS).

+ +

Syntax

+ +
var nonce = HTMLElement.nonce
+HTMLElement.nonce = nonce
+ +

Value

+ +

Криптографический код.

+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG','#attr-nonce','nonce')}}{{Spec2('HTML WHATWG')}}Первоначальное определение.
+ +

Browser Compatibility

+ +
+ + +

{{Compat("api.HTMLElement.nonce")}}

+
diff --git a/files/ru/web/api/htmlorforeignelement/tabindex/index.html b/files/ru/web/api/htmlorforeignelement/tabindex/index.html new file mode 100644 index 0000000000..fe41116fe4 --- /dev/null +++ b/files/ru/web/api/htmlorforeignelement/tabindex/index.html @@ -0,0 +1,134 @@ +--- +title: HTMLElement.tabIndex +slug: Web/API/HTMLElement/tabIndex +translation_of: Web/API/HTMLOrForeignElement/tabIndex +--- +
+
{{ APIRef("HTML DOM") }}
+
+ +

Свойство HTMLElement.tabIndex предоставляет возможность вызова по кнопке Tab текущего элемента.

+ +
+
Вызов по табуляции происходит в следующем порядке:
+ +
    +
  1. элементы с положительным tabIndex. Элементы, имеющие одинаковое значение tabIndex вызываются в порядке появления в коде.  Переход осуществляется от меньших tabIndex до больших tabIndex. 
  2. +
  3. Элементы, которые не поддерживают атрибут tabIndex или поддерживают но tabIndex установлен в "0", выбираются по Tab в порядке их появления в коде.
  4. +
+ +
Элементы для которых установлена блокировка (disabled) не могут быть выбраны кнопкой Tab и не могут быть в фокусе.
+ +
 
+ +
Значения могут начинаться с любого числа, могут быть отрицательными и могут быть непоследовательными, однако разные браузеры можгут неправильно сработать при очень больших значениях.
+ +
 
+
+ +

Синтаксис

+ +
elt.tabIndex = index;
+var index = elt.tabIndex;
+
+ + + +

Пример

+ +
var b1 = document.getElementById("button1");
+
+b1.tabIndex = 1;
+
+ +

Спецификация

+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКоментарии
{{SpecName('HTML WHATWG', '#dom-tabindex', 'tabindex')}}{{Spec2('HTML WHATWG')}}Не было изменений с {{SpecName('DOM2 HTML')}}.
{{SpecName('DOM2 HTML', 'html.html#ID-40676705', 'tabindex')}}{{Spec2('DOM2 HTML')}}Не было изменений с {{SpecName('DOM1')}}.
{{SpecName('DOM1', 'level-one-html.html#ID-40676705', 'tabindex')}}{{Spec2('DOM1')}}Начальное определение
+ +

Поддержка в браузерах

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +

Смотрите также

+ + diff --git a/files/ru/web/api/mediatrackconstraints/echocancellation/index.html b/files/ru/web/api/mediatrackconstraints/echocancellation/index.html new file mode 100644 index 0000000000..3e8d1f1a4e --- /dev/null +++ b/files/ru/web/api/mediatrackconstraints/echocancellation/index.html @@ -0,0 +1,77 @@ +--- +title: MediaTrackConstraints.echoCancellation +slug: Web/API/MediaTrackConstraints/Эхоподавление +tags: + - API + - Media Capture and Streams API + - Media Streams API + - MediaTrackConstrains + - WebRTC + - Медиа + - Ограничения + - Свойство + - Эхоподавление + - справочник +translation_of: Web/API/MediaTrackConstraints/echoCancellation +--- +
{{APIRef("Media Capture and Streams")}}
+ +

Свойство echoCancellation объекта {{domxref("MediaTrackConstraints")}} это {{domxref("ConstrainBoolean")}} описывающее запрашиваемые или обязательные ограничения накладываемые на ограничивающее свойство {{domxref("MediaTrackSettings.echoCancellation", "echoCancellation")}}.

+ +

При необходимости вы можете определить, поддерживается ли это ограничение, проверив значение {{domxref("MediaTrackSupportedConstraints.echoCancellation")}} как результат вызова {{domxref("MediaDevices.getSupportedConstraints()")}}. Однако, обычно в этом нет необходимости, поскольку браузеры просто игнорируют любые незнакомые им ограничения.

+ +

Поскольку {{Glossary("RTP")}} не содержит эту информцию, медиа-треки связанные с WebRTC {{domxref("RTCPeerConnection")}} некогда не будут включать это свойство.

+ +

Синтаксис

+ +
const constraintsObject = {
+  echoCancellation: constraint,
+};
+
+constraintsObject.echoCancellation = constraint;
+
+ +

Значение

+ +

Если это значение является простым true или false, пользовательский агент попытается получить медиа с включенным или отключенным эхоподавлением, если это возможно, но не вернет ошибку, если это невозможно сделать. Иначе если значение передано как объект с полем exact , то логическое значение этого поля указывает обязательную настройку для эхоподавления; если это не может быть выполненым - запрос вернет ошибку.

+ +

Пример

+ +

Смотрите {{SectionOnPage("/en-US/docs/Web/API/Media_Streams_API/Constraints", "Example: Constraint exerciser")}} для примера.

+ +

Спецификации

+ + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{ SpecName('Media Capture', '#dom-mediatrackconstraintset-echocancellation', 'echoCancellation') }}{{ Spec2('Media Capture') }}Initial specification.
+ +

Совместимость с браузерами

+ + + +

{{Compat("api.MediaTrackConstraints.echoCancellation")}}

+ +

Смотрите также

+ + diff --git "a/files/ru/web/api/mediatrackconstraints/\321\215\321\205\320\276\320\277\320\276\320\264\320\260\320\262\320\273\320\265\320\275\320\270\320\265/index.html" "b/files/ru/web/api/mediatrackconstraints/\321\215\321\205\320\276\320\277\320\276\320\264\320\260\320\262\320\273\320\265\320\275\320\270\320\265/index.html" deleted file mode 100644 index 3e8d1f1a4e..0000000000 --- "a/files/ru/web/api/mediatrackconstraints/\321\215\321\205\320\276\320\277\320\276\320\264\320\260\320\262\320\273\320\265\320\275\320\270\320\265/index.html" +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: MediaTrackConstraints.echoCancellation -slug: Web/API/MediaTrackConstraints/Эхоподавление -tags: - - API - - Media Capture and Streams API - - Media Streams API - - MediaTrackConstrains - - WebRTC - - Медиа - - Ограничения - - Свойство - - Эхоподавление - - справочник -translation_of: Web/API/MediaTrackConstraints/echoCancellation ---- -
{{APIRef("Media Capture and Streams")}}
- -

Свойство echoCancellation объекта {{domxref("MediaTrackConstraints")}} это {{domxref("ConstrainBoolean")}} описывающее запрашиваемые или обязательные ограничения накладываемые на ограничивающее свойство {{domxref("MediaTrackSettings.echoCancellation", "echoCancellation")}}.

- -

При необходимости вы можете определить, поддерживается ли это ограничение, проверив значение {{domxref("MediaTrackSupportedConstraints.echoCancellation")}} как результат вызова {{domxref("MediaDevices.getSupportedConstraints()")}}. Однако, обычно в этом нет необходимости, поскольку браузеры просто игнорируют любые незнакомые им ограничения.

- -

Поскольку {{Glossary("RTP")}} не содержит эту информцию, медиа-треки связанные с WebRTC {{domxref("RTCPeerConnection")}} некогда не будут включать это свойство.

- -

Синтаксис

- -
const constraintsObject = {
-  echoCancellation: constraint,
-};
-
-constraintsObject.echoCancellation = constraint;
-
- -

Значение

- -

Если это значение является простым true или false, пользовательский агент попытается получить медиа с включенным или отключенным эхоподавлением, если это возможно, но не вернет ошибку, если это невозможно сделать. Иначе если значение передано как объект с полем exact , то логическое значение этого поля указывает обязательную настройку для эхоподавления; если это не может быть выполненым - запрос вернет ошибку.

- -

Пример

- -

Смотрите {{SectionOnPage("/en-US/docs/Web/API/Media_Streams_API/Constraints", "Example: Constraint exerciser")}} для примера.

- -

Спецификации

- - - - - - - - - - - - - - - - -
СпецификацияСтатусКомментарий
{{ SpecName('Media Capture', '#dom-mediatrackconstraintset-echocancellation', 'echoCancellation') }}{{ Spec2('Media Capture') }}Initial specification.
- -

Совместимость с браузерами

- - - -

{{Compat("api.MediaTrackConstraints.echoCancellation")}}

- -

Смотрите также

- - diff --git a/files/ru/web/api/navigator/connection/index.html b/files/ru/web/api/navigator/connection/index.html new file mode 100644 index 0000000000..607101a911 --- /dev/null +++ b/files/ru/web/api/navigator/connection/index.html @@ -0,0 +1,100 @@ +--- +title: NetworkInformation.connection +slug: Web/API/NetworkInformation/connection +translation_of: Web/API/Navigator/connection +--- +

{{ apiref("Network Information API") }}

+ +

{{ SeeCompatTable() }}

+ +

NetworkInformation.connection свойство только для чтения представляющее собой {{domxref("Connection")}} содержащий информацию о системном подключении, таких как текущая пропускная способность пользовательского устройства или определено ли соеденение. Это может быть использовано для выбора контента высокой плотности или контента низкой плотности в соединении пользователя.

+ +

Синтаксис

+ +
connectionInfo = navigator.connection
+ +

Спецификации

+ + + + + + + + + + + + + + + + +
СпецификацияСтатусКоментарий
{{ SpecName('Network Information', '#h-the-connection-attribute', 'NetworkInformation.connection') }}{{ Spec2('Network Information') }}Первоначальная спецификация.
+ +

Доступность в браузере

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
СвойствоChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка{{ CompatNo() }}12.0
+ behind the flag
{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
СвойствоAndroidFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari Mobile
Базовая поддержка2.2 {{ property_prefix("webkit") }}12.01.4{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +

Заметка для Gecko

+ + + +

Смотрите также

+ + diff --git a/files/ru/web/api/navigatorgeolocation/index.html b/files/ru/web/api/navigatorgeolocation/index.html deleted file mode 100644 index 7287eee669..0000000000 --- a/files/ru/web/api/navigatorgeolocation/index.html +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: NavigatorGeolocation -slug: Web/API/NavigatorGeolocation -translation_of: Web/API/Geolocation -translation_of_original: Web/API/NavigatorGeolocation ---- -
{{APIRef("Geolocation API")}}
- -

NavigatorGeolocation содержит метод, позволяющий объектам реализовывать его,, получая {{domxref("Geolocation")}} экземпляр объекта.

- -

Здесь нет объектов типа NavigatorGeolocation, но некоторые интерфейсы, например, {{domxref("Navigator")}} реализуют его.

- -

Свойства

- -

Интерфейс NavigatorGeolocation не наследует каких-либо свойств.

- -
-
{{domxref("NavigatorGeolocation.geolocation")}} {{readonlyInline}}
-
Возвращает объект {{domxref("Geolocation")}} позволяющий получить доступ к местоположению устройства.
-
- -

Методы

- -

Интерфейс NavigatorGeolocation ни реализует, ни наследует  никаких методов.

- -

Спецификации

- - - - - - - - - - - - - - - - -
СпецификацияСтатусКомментарий
{{SpecName('Geolocation', '#navi-geo', 'NavigatorGeolocation')}}{{Spec2('Geolocation')}}Изначальное описание
- -

Совместимость с браузерами

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
СвойствоChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка5{{CompatGeckoDesktop("1.9.1")}}910.60
- {{CompatNo}} 15.0
- 16.0
5
-
- -
- - - - - - - - - - - - - - - - - - - - - -
СвойствоAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("4")}}{{CompatUnknown}}10.60{{CompatUnknown}}
-
- -

Смотрите также

- - diff --git a/files/ru/web/api/networkinformation/connection/index.html b/files/ru/web/api/networkinformation/connection/index.html deleted file mode 100644 index 607101a911..0000000000 --- a/files/ru/web/api/networkinformation/connection/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: NetworkInformation.connection -slug: Web/API/NetworkInformation/connection -translation_of: Web/API/Navigator/connection ---- -

{{ apiref("Network Information API") }}

- -

{{ SeeCompatTable() }}

- -

NetworkInformation.connection свойство только для чтения представляющее собой {{domxref("Connection")}} содержащий информацию о системном подключении, таких как текущая пропускная способность пользовательского устройства или определено ли соеденение. Это может быть использовано для выбора контента высокой плотности или контента низкой плотности в соединении пользователя.

- -

Синтаксис

- -
connectionInfo = navigator.connection
- -

Спецификации

- - - - - - - - - - - - - - - - -
СпецификацияСтатусКоментарий
{{ SpecName('Network Information', '#h-the-connection-attribute', 'NetworkInformation.connection') }}{{ Spec2('Network Information') }}Первоначальная спецификация.
- -

Доступность в браузере

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
СвойствоChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка{{ CompatNo() }}12.0
- behind the flag
{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
СвойствоAndroidFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari Mobile
Базовая поддержка2.2 {{ property_prefix("webkit") }}12.01.4{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
-
- -

Заметка для Gecko

- - - -

Смотрите также

- - diff --git a/files/ru/web/api/node.replacechild/index.html b/files/ru/web/api/node.replacechild/index.html deleted file mode 100644 index 6d69392c57..0000000000 --- a/files/ru/web/api/node.replacechild/index.html +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Node.replaceChild -slug: Web/API/Node.replaceChild -tags: - - API - - DOM - - DOM Elements Method - - Gecko - - Method - - Node -translation_of: Web/API/Node/replaceChild ---- -
- {{ApiRef}}
-

Аннотация

-

Заменяет дочерний элемент на выбранный. Возвращает замененный элемент.

-

Синтаксис

-
replacedNode = parentNode.replaceChild(newChild, oldChild);
-
- -

Пример

-
// <div>
-//  <span id="childSpan">foo bar</span>
-// </div>
-
-// Создаем новый пустой элемент
-// without an ID, any attributes, or any content
-var sp1 = document.createElement("span");
-
-// Присваиваем ему id 'newSpan'
-sp1.setAttribute("id", "newSpan");
-
-// Создаем строку.
-var sp1_content = document.createTextNode("new replacement span element.");
-
-// Добавляем контент в созданный нами узел
-sp1.appendChild(sp1_content);
-
-// создаем ссылку на существующий элемент который будем заменять
-var sp2 = document.getElementById("childSpan");
-var parentDiv = sp2.parentNode;
-
-// заменяем существующий элемент sp2 на созданный нами sp1
-parentDiv.replaceChild(sp1, sp2);
-
-// Результат:
-// <div>
-//   <span id="newSpan">new replacement span element.</span>
-// </div>
-
-

Спецификация

- -

См. также

- diff --git a/files/ru/web/api/node/baseuriobject/index.html b/files/ru/web/api/node/baseuriobject/index.html deleted file mode 100644 index 7f7dbfb782..0000000000 --- a/files/ru/web/api/node/baseuriobject/index.html +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Node.baseURIObject -slug: Web/API/Node/baseURIObject -translation_of: Web/API/Node -translation_of_original: Web/API/Node/baseURIObject ---- -
{{APIRef("DOM")}} {{Non-standard_header}}
- -

Свойство Node.baseURIObject возвращает {{Interface("nsIURI")}} представляющий базовый URL узла (обычно документ или элемент). Это похоже на {{domxref("Node.baseURI")}}, за исключением того, что возвращает nsIURI вместо строки.

- -

Это свойство существует на всех узлах (HTML, XUL, SVG, MathML, и т.д.), но только если скрипт пытается использовать его имея привилегии UniversalXPConnect.

- -

Смотрите {{domxref("Node.baseURI")}} для уточнения деталей что такое базовый URL.

- -

Синтаксис

- -
uriObj = node.baseURIObject
-
- -

Примечания

- -

Это свойство только для чтения; попытка записать информацию в него, будет сбрасывать исключения. Кроме того, это свойство может быть доступно только для привилегированного кода.

- -

Спецификация

- -

Нет какой-либо спецификации.

diff --git a/files/ru/web/api/node/innertext/index.html b/files/ru/web/api/node/innertext/index.html deleted file mode 100644 index ef23b48d59..0000000000 --- a/files/ru/web/api/node/innertext/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Node.innerText -slug: Web/API/Node/innerText -translation_of: Web/API/HTMLElement/innerText ---- -
{{APIRef("DOM")}}
- -

Node.innerText - это свойство, позволяющее задавать или получать текстовое содержимое элемента и его потомков. В качестве геттера, свойство приближается к тексту, который пользователь получит, если он выделит содержимое элемента курсором, затем копирует его в буфер обмена.

- -

Изначально, данное поведение было представленно Internet Explorer, и было формально специализированно в стандарте HTML в 2016 после того, как было адаптированно всеми ведущими браузерами.

- -

{{domxref("Node.textContent")}} - это альтернативное свойство, которое имеет ряд отличий:

- - - -

Спецификация

- - - - - - - - - - - - - - -
СпецификацияСтатусКомментарий
{{SpecName('HTML WHATWG', 'dom.html#the-innertext-idl-attribute', 'innerText')}}{{Spec2('HTML WHATWG')}}Представлено, основываясь на черновике спецификации innerText. См. whatwg/html#465 и whatwg/compat#5.
- -

Поддержка браузерами

- -

{{Compat("api.Node.innerText")}}

- -

Смотрите также

- - diff --git a/files/ru/web/api/node/nodeprincipal/index.html b/files/ru/web/api/node/nodeprincipal/index.html deleted file mode 100644 index 11b342e6c3..0000000000 --- a/files/ru/web/api/node/nodeprincipal/index.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Node.nodePrincipal -slug: Web/API/Node/nodePrincipal -translation_of: Web/API/Node -translation_of_original: Web/API/Node/nodePrincipal ---- -
-
{{APIRef("DOM")}}
-{{Non-standard_header}} - -

Свойство Node.nodePrincipal только для чтения, возвращающее объект {{Interface("nsIPrincipal")}}, представляющий текущий контекст безопасности узла.

- -

{{Note("Это свойство существует во всех узлах (HTML, XUL, SVG, MathML, и т.д.), но только если скрипт пытается использовать chrome привилегии.")}}

- -

Синтаксис

- -
principalObj = element.nodePrincipal
-
- -

Примечания

- -

Это свойство только для чтения; пытаясь вводить информацию в него, будет сбрасывать исключение.Кроме того, это свойство может быть доступно только для привилегированного кода.

- -

Спецификация

- -

Нет никакой спецификации.

-
- -

 

diff --git a/files/ru/web/api/node/replacechild/index.html b/files/ru/web/api/node/replacechild/index.html new file mode 100644 index 0000000000..6d69392c57 --- /dev/null +++ b/files/ru/web/api/node/replacechild/index.html @@ -0,0 +1,64 @@ +--- +title: Node.replaceChild +slug: Web/API/Node.replaceChild +tags: + - API + - DOM + - DOM Elements Method + - Gecko + - Method + - Node +translation_of: Web/API/Node/replaceChild +--- +
+ {{ApiRef}}
+

Аннотация

+

Заменяет дочерний элемент на выбранный. Возвращает замененный элемент.

+

Синтаксис

+
replacedNode = parentNode.replaceChild(newChild, oldChild);
+
+ +

Пример

+
// <div>
+//  <span id="childSpan">foo bar</span>
+// </div>
+
+// Создаем новый пустой элемент
+// without an ID, any attributes, or any content
+var sp1 = document.createElement("span");
+
+// Присваиваем ему id 'newSpan'
+sp1.setAttribute("id", "newSpan");
+
+// Создаем строку.
+var sp1_content = document.createTextNode("new replacement span element.");
+
+// Добавляем контент в созданный нами узел
+sp1.appendChild(sp1_content);
+
+// создаем ссылку на существующий элемент который будем заменять
+var sp2 = document.getElementById("childSpan");
+var parentDiv = sp2.parentNode;
+
+// заменяем существующий элемент sp2 на созданный нами sp1
+parentDiv.replaceChild(sp1, sp2);
+
+// Результат:
+// <div>
+//   <span id="newSpan">new replacement span element.</span>
+// </div>
+
+

Спецификация

+ +

См. также

+ diff --git a/files/ru/web/api/nondocumenttypechildnode/nextelementsibling/index.html b/files/ru/web/api/nondocumenttypechildnode/nextelementsibling/index.html new file mode 100644 index 0000000000..84c40445d8 --- /dev/null +++ b/files/ru/web/api/nondocumenttypechildnode/nextelementsibling/index.html @@ -0,0 +1,173 @@ +--- +title: NonDocumentTypeChildNode.nextElementSibling +slug: Web/API/NonDocumentTypeChildNode/NonDocumentTypeChildNode.nextElementSibling +translation_of: Web/API/NonDocumentTypeChildNode/nextElementSibling +--- +
{{APIRef("DOM")}}
+ +

NonDocumentTypeChildNode.nextElementSibling свойство только для чтения, возвращающее последующий элемент перед текущим, или null, если элемент является последним в своём родительском узле.

+ +

Синтаксис

+ +
var nextNode = elementNodeReference.nextElementSibling; 
+ +

Пример

+ +
<div id="div-01">Это div-01</div>
+<div id="div-02">Это div-02</div>
+
+<script type="text/javascript">
+  var el = document.getElementById('div-01').nextElementSibling;
+  console.log('Сосед div-01:');
+  while (el) {
+    console.log(el.nodeName);
+    el = el.nextElementSibling;
+  }
+</script>
+
+ +

Этот пример выведет в консоль следующее:

+ +
Сосед div-01:
+DIV
+SCRIPT
+ +

Полифилл для IE8

+ +

Данное свойство не пожддерживается до IE9. Используйте следующий полифилл, чтобы обойти этот недостаток:

+ +
// Источник: https://github.com/Alhadis/Snippets/blob/master/js/polyfills/IE8-child-elements.js
+if (!('nextElementSibling' in document.documentElement)) {
+    Object.defineProperty(Element.prototype, 'nextElementSibling', {
+        get: function() {
+            var e = this.nextSibling;
+            while (e && 1 !== e.nodeType) {
+                e = e.nextSibling;
+            }
+            return e;
+        }
+    });
+}
+ +

Полифилл для IE9+ и Safari

+ +
// Источник: https://github.com/jserz/js_piece/blob/master/DOM/NonDocumentTypeChildNode/nextElementSibling/nextElementSibling.md
+(function(arr) {
+    arr.forEach(function(item) {
+        if (item.hasOwnProperty('nextElementSibling')) {
+            return;
+        }
+        Object.defineProperty(item, 'nextElementSibling', {
+            configurable: true,
+            enumerable: true,
+            get: function() {
+                var el = this;
+                while (el = el.nextSibling) {
+                    if (el.nodeType === 1) {
+                        return el;
+                    }
+                }
+                return null;
+            },
+            set: undefined
+        });
+    });
+})([Element.prototype, CharacterData.prototype]);
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('DOM WHATWG', '#dom-nondocumenttypechildnode-nextelementsibling', 'ChildNodenextElementSibling')}}{{Spec2('DOM WHATWG')}}Split the ElementTraversal interface in {{domxref("ChildNode")}}, {{domxref("ParentNode")}}, and {{domxref("NonDocumentTypeChildNode")}}. This method is now defined on the former.
+ The {{domxref("Element")}} and {{domxref("CharacterData")}} interfaces implemented the new interface.
{{SpecName('Element Traversal', '#attribute-nextElementSibling', 'ElementTraversal.nextElementSibling')}}{{Spec2('Element Traversal')}}Added its initial definition to the ElementTraversal pure interface and use it on {{domxref("Element")}}.
+ +

Совместимость с браузерами

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
БраузерыChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка ({{domxref("Element")}})4{{CompatGeckoDesktop("1.9.1")}}99.84
Поддержка {{domxref("CharacterData")}}29.0{{CompatGeckoDesktop("25")}} [1]{{CompatNo}}16.0{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
БраузерыAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка ( {{domxref("Element")}}){{CompatVersionUnknown}}{{CompatGeckoMobile("1.9.1")}}{{CompatVersionUnknown}}9.8{{CompatVersionUnknown}}
Поддержка {{domxref("CharacterData")}}{{CompatVersionUnknown}}{{CompatGeckoMobile("25")}}{{CompatNo}}16.0{{CompatNo}}
+
+ +

[1] Firefox 25 также добавил это свойство в {{domxref("DocumentType")}}, но оно было удалено в Firefox 28, из-за проблем совместимости.

+ +

См. также

+ + diff --git a/files/ru/web/api/nondocumenttypechildnode/nondocumenttypechildnode.nextelementsibling/index.html b/files/ru/web/api/nondocumenttypechildnode/nondocumenttypechildnode.nextelementsibling/index.html deleted file mode 100644 index 84c40445d8..0000000000 --- a/files/ru/web/api/nondocumenttypechildnode/nondocumenttypechildnode.nextelementsibling/index.html +++ /dev/null @@ -1,173 +0,0 @@ ---- -title: NonDocumentTypeChildNode.nextElementSibling -slug: Web/API/NonDocumentTypeChildNode/NonDocumentTypeChildNode.nextElementSibling -translation_of: Web/API/NonDocumentTypeChildNode/nextElementSibling ---- -
{{APIRef("DOM")}}
- -

NonDocumentTypeChildNode.nextElementSibling свойство только для чтения, возвращающее последующий элемент перед текущим, или null, если элемент является последним в своём родительском узле.

- -

Синтаксис

- -
var nextNode = elementNodeReference.nextElementSibling; 
- -

Пример

- -
<div id="div-01">Это div-01</div>
-<div id="div-02">Это div-02</div>
-
-<script type="text/javascript">
-  var el = document.getElementById('div-01').nextElementSibling;
-  console.log('Сосед div-01:');
-  while (el) {
-    console.log(el.nodeName);
-    el = el.nextElementSibling;
-  }
-</script>
-
- -

Этот пример выведет в консоль следующее:

- -
Сосед div-01:
-DIV
-SCRIPT
- -

Полифилл для IE8

- -

Данное свойство не пожддерживается до IE9. Используйте следующий полифилл, чтобы обойти этот недостаток:

- -
// Источник: https://github.com/Alhadis/Snippets/blob/master/js/polyfills/IE8-child-elements.js
-if (!('nextElementSibling' in document.documentElement)) {
-    Object.defineProperty(Element.prototype, 'nextElementSibling', {
-        get: function() {
-            var e = this.nextSibling;
-            while (e && 1 !== e.nodeType) {
-                e = e.nextSibling;
-            }
-            return e;
-        }
-    });
-}
- -

Полифилл для IE9+ и Safari

- -
// Источник: https://github.com/jserz/js_piece/blob/master/DOM/NonDocumentTypeChildNode/nextElementSibling/nextElementSibling.md
-(function(arr) {
-    arr.forEach(function(item) {
-        if (item.hasOwnProperty('nextElementSibling')) {
-            return;
-        }
-        Object.defineProperty(item, 'nextElementSibling', {
-            configurable: true,
-            enumerable: true,
-            get: function() {
-                var el = this;
-                while (el = el.nextSibling) {
-                    if (el.nodeType === 1) {
-                        return el;
-                    }
-                }
-                return null;
-            },
-            set: undefined
-        });
-    });
-})([Element.prototype, CharacterData.prototype]);
- -

Спецификации

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('DOM WHATWG', '#dom-nondocumenttypechildnode-nextelementsibling', 'ChildNodenextElementSibling')}}{{Spec2('DOM WHATWG')}}Split the ElementTraversal interface in {{domxref("ChildNode")}}, {{domxref("ParentNode")}}, and {{domxref("NonDocumentTypeChildNode")}}. This method is now defined on the former.
- The {{domxref("Element")}} and {{domxref("CharacterData")}} interfaces implemented the new interface.
{{SpecName('Element Traversal', '#attribute-nextElementSibling', 'ElementTraversal.nextElementSibling')}}{{Spec2('Element Traversal')}}Added its initial definition to the ElementTraversal pure interface and use it on {{domxref("Element")}}.
- -

Совместимость с браузерами

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
БраузерыChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка ({{domxref("Element")}})4{{CompatGeckoDesktop("1.9.1")}}99.84
Поддержка {{domxref("CharacterData")}}29.0{{CompatGeckoDesktop("25")}} [1]{{CompatNo}}16.0{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
БраузерыAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка ( {{domxref("Element")}}){{CompatVersionUnknown}}{{CompatGeckoMobile("1.9.1")}}{{CompatVersionUnknown}}9.8{{CompatVersionUnknown}}
Поддержка {{domxref("CharacterData")}}{{CompatVersionUnknown}}{{CompatGeckoMobile("25")}}{{CompatNo}}16.0{{CompatNo}}
-
- -

[1] Firefox 25 также добавил это свойство в {{domxref("DocumentType")}}, но оно было удалено в Firefox 28, из-за проблем совместимости.

- -

См. также

- - diff --git a/files/ru/web/api/notation/index.html b/files/ru/web/api/notation/index.html new file mode 100644 index 0000000000..a1f468a55d --- /dev/null +++ b/files/ru/web/api/notation/index.html @@ -0,0 +1,52 @@ +--- +title: Нотация +slug: Web/API/Нотация +tags: + - Нотация +translation_of: Web/API/Notation +--- +
{{APIRef("DOM")}}{{draft}}{{obsolete_header}}
+ +

Представляет нотацию DTD (только для чтения). Может объявлять формат неразобранного объекта или формально объявлять цели инструкции по обработке документа. Наследует методы и свойства от Node. Его nodeName - это имя нотации. Не имеет родителя.

+ +

Свойства

+ +
+
{{domxref("Notation.publicId")}} {{ReadOnlyInline}}
+
Это {{domxref("DOMString")}}.
+
{{domxref("Notation.systemId")}} {{ReadOnlyInline}}
+
Это {{domxref("DOMString")}}.
+
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
{{SpecName("DOM3 Core", "core.html#ID-5431D1B9", "Notation")}}{{Spec2("DOM3 Core")}}Без изменений
{{SpecName("DOM2 Core", "core.html#ID-5431D1B9", "Notation")}}{{Spec2("DOM2 Core")}}Без изменений
{{SpecName('DOM1', 'level-one-core.html#ID-5431D1B9', 'Notation')}}{{Spec2('DOM1')}}Первое определение
+ +

Поддержка браузерами

+ + + +

{{Compat("api.Notation")}}

diff --git a/files/ru/web/api/page_visibility_api/index.html b/files/ru/web/api/page_visibility_api/index.html new file mode 100644 index 0000000000..9b181e92d1 --- /dev/null +++ b/files/ru/web/api/page_visibility_api/index.html @@ -0,0 +1,195 @@ +--- +title: Видимость страницы API +slug: Web/API/Видимость_страницы_API +tags: + - API + - DOM + - Документ + - Показать страницу + - Скрыть страницу +translation_of: Web/API/Page_Visibility_API +--- +
{{DefaultAPISidebar("Page Visibility API")}}
+ +

При переключении между вкладками, web страница переходит в фоновый режим и поэтому не видна пользователю. Page Visibility API предоставляет события, которые вы можете отслеживать, чтобы узнать, когда страница станет видимой или скрытой, а так же возможность наблюдать текущее состояние видимости страницы.

+ +
+

Notes: The Page Visibility API особенно полезно для сбережения ресурсов и улучшения производительности, позволяя странице остановить выполнение не нужных задач, когда она не видна.

+
+ +

Когда пользователь сворачивает окно или переключается на другую вкладку, API отправляет {{event("visibilitychange")}} событие обработчикам, что состояние страницы изменилось. Вы можете отследить это событие и выполнить какие-то действия. Например, если ваше app проигрывает видео, его можно поставить на паузу, когда пользователь переключил вкладку (страница ушла в фон), а затем возобновить видео, когда пользователь вернулся на вкладку. Пользователь не теряет место на котором остановил просмотр, звук от видео не конфликтует с аудио новой вкладки, пользователь комфортно просмотрить оба видео.

+ +

Состояния видимости для {{HTMLElement("iframe")}} такие же как и для родительской страницы. Скрытие <iframe> используя CSS стили (такие как {{cssxref("display", "display: none;")}}) не вызывают события видимости и не изменяют состояние документа, содержащегося во фрейме.

+ +

Использование

+ +

Давайте рассмотрим несколько способов использования Page Visibility API.

+ + + +

Раньше у разработчиков были не удобные способы. Например, обработка {{event("blur")}} и {{event("focus")}} событий на объекте window - помогала узнать когда страница становилась не активной, но это не давало возможность понять когда страница действительно скрыта от пользователя. Page Visibility API решает эту проблему.

+ +
+

Note: Когда {{domxref("GlobalEventHandlers.onblur", "onblur")}} и {{domxref("GlobalEventHandlers.onfocus", "onfocus")}} уведомляют, что пользователь переключил окна, это не означает, что оно действительно скрыто. Страница действительно скрыта, когда пользователь переключил вкладки или свернул окно браузера с этой вкладкой.

+
+ +

Policies in place to aid background page performance

+ +

Separately from the Page Visibility API, user agents typically have a number of policies in place to mitigate the performance impact of background or hidden tabs. These may include:

+ + + +

Some processes are exempt from this throttling behavior. In these cases, you can use the Page Visibility API to reduce the tabs' performance impact while they're hidden.

+ + + +

Example

+ +

View live example (video with sound).

+ +

The example, which pauses the video when you switch to another tab and plays again when you return to its tab, was created with the following code:

+ +
// Set the name of the hidden property and the change event for visibility
+var hidden, visibilityChange;
+if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
+  hidden = "hidden";
+  visibilityChange = "visibilitychange";
+} else if (typeof document.msHidden !== "undefined") {
+  hidden = "msHidden";
+  visibilityChange = "msvisibilitychange";
+} else if (typeof document.webkitHidden !== "undefined") {
+  hidden = "webkitHidden";
+  visibilityChange = "webkitvisibilitychange";
+}
+
+var videoElement = document.getElementById("videoElement");
+
+// If the page is hidden, pause the video;
+// if the page is shown, play the video
+function handleVisibilityChange() {
+  if (document[hidden]) {
+    videoElement.pause();
+  } else {
+    videoElement.play();
+  }
+}
+
+// Warn if the browser doesn't support addEventListener or the Page Visibility API
+if (typeof document.addEventListener === "undefined" || hidden === undefined) {
+  console.log("This demo requires a browser, such as Google Chrome or Firefox, that supports the Page Visibility API.");
+} else {
+  // Handle page visibility change
+  document.addEventListener(visibilityChange, handleVisibilityChange, false);
+
+  // When the video pauses, set the title.
+  // This shows the paused
+  videoElement.addEventListener("pause", function(){
+    document.title = 'Paused';
+  }, false);
+
+  // When the video plays, set the title.
+  videoElement.addEventListener("play", function(){
+    document.title = 'Playing';
+  }, false);
+
+}
+
+ +

Properties added to the Document interface

+ +

The Page Visibility API adds the following properties to the {{domxref("Document")}} interface:

+ +
+
{{domxref("Document.hidden")}} {{ReadOnlyInline}}
+
Returns true if the page is in a state considered to be hidden to the user, and false otherwise.
+
{{domxref("Document.visibilityState")}} {{ReadOnlyInline}}
+
A {{domxref("DOMString")}} indicating the document's current visibility state. Possible values are: +
+
visible
+
The page content may be at least partially visible. In practice this means that the page is the foreground tab of a non-minimized window.
+
hidden
+
The page's content is not visible to the user, either due to the document's tab being in the background or part of a window that is minimized, or because the device's screen is off.
+
prerender
+
The page's content is being prerendered and is not visible to the user. A document may start in the prerender state, but will never switch to this state from any other state, since a document can only prerender once. +
Note: Not all browsers support prerendering.
+
+
unloaded
+
The page is in the process of being unloaded from memory. +
Note: Not all browsers support the unloaded value.
+
+
+
+
{{domxref("Document.onvisibilitychange")}}
+
An {{domxref("EventListener")}} providing the code to be called when the {{event("visibilitychange")}} event is fired.
+
+ +
//startSimulation and pauseSimulation defined elsewhere
+function handleVisibilityChange() {
+  if (document.hidden) {
+    pauseSimulation();
+  } else  {
+    startSimulation();
+  }
+}
+
+document.addEventListener("visibilitychange", handleVisibilityChange, false);
+
+ +

Specifications

+ + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Page Visibility API')}}{{Spec2('Page Visibility API')}}Initial definition.
+ +

Browser compatibility

+ +
+

Document.visibilityState

+ +
+ + +

{{Compat("api.Document.visibilityState")}}

+
+
+ +

See also

+ + diff --git a/files/ru/web/api/push_api/using_the_push_api/index.html b/files/ru/web/api/push_api/using_the_push_api/index.html deleted file mode 100644 index 40086e4e91..0000000000 --- a/files/ru/web/api/push_api/using_the_push_api/index.html +++ /dev/null @@ -1,420 +0,0 @@ ---- -title: Использование Push API -slug: Web/API/Push_API/Using_the_Push_API -translation_of: Web/API/Push_API -translation_of_original: Web/API/Push_API/Using_the_Push_API ---- -

W3C Push API предоставляет некоторый захватывающий новый функционал для разработчиков для использования в web-приложениях: эта статья предлагает вводную информацию о том, как настроить Push-уведомления и управлять ими, с помощью простого демо.

- -

Возможность посылать сообщения или уведомления от сервера клиенту в любое время — независимо от того, активно приложение или нет — было прерогативой нативных приложений некоторое время, и наконец пришло в Web! Поддерживается большинства возможностей Push сейчас возможна в браузерах Firefox 43+ и Chrome 42+ на настольных компьютерах, мобильные платформы, возможно, скоро присоединятся. {{domxref("PushMessageData")}} на данный момент экспериментально поддерживаются только в Firefox Nightly (44+), и реализация может меняться.

- -
-

Примечание: Ранние версии Firefox OS использовали проприетарную версию этого API вызывая Simple Push. Считается устаревшим по стандартам Push API.

-
- -

Демо: основы простого сервера чат-приложения

- -

Демо, котрые мы создали, представляет начальное описание простого чат-приложения. Оно представляет собой форму, в которую вводятся данные, и кнопку для подписки на push-сообщения . Как только кнопка будет нажата, вы подпишитесь на push-сообщения, ваши данные будут записаны на сервере, а отправленное push-сообщение сообщит всем текущим подписчикам, что кто-то подписался.

- -

На данном этапе, имя нового подписчика появится в списке подписчиков, вместе с текстовым полем и кнопкой рассылки, чтобы позволить подписчику отправить сообщение.

- -

- -

Чтобы запустить демо, следуйте инструкциям на странице push-api-demo README. Заметте, что серверная компонента все еще нуждается в небольшой доработке для запуска в Chrome и в общем запусается более разумным путем. Но аспекты Push все еще могут быть полностью понятны; мы углубимся в это после того, как просмотрим технологии в процессе.

- -

Обзор технологии

- -

Эта секция предоставляет описание того, какие технологии учавствуют в примере.

- -

Web Push-сообщения это часть семейства технологий сервис воркеров; в первую очередь, для получения push-сообщений сервис воркер должен быть активирован на странице. Сервис воркер получает push-сообщения, и затем вы сами решаете, как уведомить об этом страницу. Вы можете:

- - - -

Обычно необходима комбинация этих двух решений; демо внизу включает пример обоих.

- -
-

Примечание: Вам необходим некоторый код, запущенный на сервере, для управления конечной точкой/шифроманием данных и отправки запросов push-сообщений. В нашем демо мы собрали на скорую руку сервер, используя NodeJS.

-
- -

Сервис воркер так же должен подписаться на сервис push-сообщений. Каждой сессии предоставляется собственная уникальная конечная точка, когда она подписывается на сервис push-сообщений. Эта конечная точка получается из свойства  ({{domxref("PushSubscription.endpoint")}}) объекта подписчика. Она может быть отправлена серверу и использоваться для пересылки сообщений активному сервис воркеру сессии. Каждый браузер имеет свой собсвтенный сервер push-сообщений для  управления отправкой push-сообщений.

- -

Шифрование

- -
-

Примечание: Для интерактивного краткого обзора, попробуйте JR Conlin's Web Push Data Encryption Test Page.

-
- -

Для отправки данных с помошью push-сообщений необходимо шифрование. Для этого необходим публичный ключ, созданный с использованием метода  {{domxref("PushSubscription.getKey()")}}, который основывается на некотором комплексе механизмов шифрования, которые выполняются на стороне сервера; читайте Message Encryption for Web Push. Со временем появятся библиотеки для управления генерацией ключей и шифроманием/дешифрованием push-сообщений; для этого демо мы используем Marco Castelluccio's NodeJS web-push library.

- -
-

Примечание: Есть так же другая библиотека для управления шифрованием с помошью Node и Python, смотри encrypted-content-encoding.

-
- -

Обобщение рабочего процесса Push

- -

Общие сведения ниже это то, что необходимо для реализации push-сообщений. Вы можете найти больше информации о некоторых частях демо в последующих частях.

- -
    -
  1. Запрос на разрешение web-уведомлений или что-то другое, что вы используете и для чего необходимо разрешение.
  2. -
  3. Регистрация сервис воркера для контроля над страницей с помошью вызова {{domxref("ServiceWorkerContainer.register()")}}.
  4. -
  5. Подписка на сервис push-уведомлений с помошью {{domxref("PushManager.subscribe()")}}.
  6. -
  7. Запрашивание конечной точки, соответствующей подписчику, и генерация публичного ключа клиента ({{domxref("PushSubscription.endpoint")}} и {{domxref("PushSubscription.getKey()")}}. Заметте, что getKey() на данный момент эксперементальная технологий и доступна только в Firefox.)
  8. -
  9. Отправка данных на сервер, чтобы тот мог присылать push-сообщения, когда необходимо. Это демо использует {{domxref("XMLHttpRequest")}}, но вы можете использовать Fetch.
  10. -
  11. Если вы используете Channel Messaging API для связи с сервис воркером, установите новый канал связи ({{domxref("MessageChannel.MessageChannel()")}}) и отправте port2 сервис воркеру с помошью вызова {{domxref("Worker.postMessage()")}} для того, чтобы открыть канал связи. Вы так же должны настроить слушателя для ответов на сообщения, которые будут отправляться обратно с сервис воркера.
  12. -
  13. На стороне сервера сохраните конечную точку и все остальные необходимые данные, чтобы они были доступны, когда будет необходимо отправить push-сообщение добавленному подписчику (мы используем простой текстовый файл, но вы можете использовать базу данных или все что угодно на ваш вкус). В приложении на продакшене убедитесь, что скрываете эти данные, так что злоумышленники не смогут украсть конечную точку и разослать спам подписчикам в push-сообщениях.
  14. -
  15. Для отправки push-сообщений необходимо отослать HTTP POST конечному URL. Запрос должен включать TTL заголовок, который ограничивает время пребывания сообщения в очереди, если пользователь не в сети. Для добавления полезной информации в запросе, необходимо зашифровать ее (что включает публичнй ключ клиента). В нашем примере мы используем web-push модуль, который управляет всей тяжелой работой.
  16. -
  17. Поверх в сервис воркере настройте обработчик событий push для ответов на полученные push-сообщения. -
      -
    1. Если вы хотите отвечать отправкой сообщения канала обратно основному контексту (смотри шаг 6), необходимо сначала получить ссылку на port2, который был отправлен контексту сервис воркера ({{domxref("MessagePort")}}). Это доступно в объекте  {{domxref("MessageEvent")}}, передаваемого обработчику onmessage ({{domxref("ServiceWorkerGlobalScope.onmessage")}}). Конкретнее, он находится в свойстве ports, индекс 0. Когда это сделано, вы можете отправить сообщение обратно port1, используя {{domxref("MessagePort.postMessage()")}}.
    2. -
    3. Если вы хотитет ответить запуском системного уведомления, вы можете сделать это, вызвав {{domxref("ServiceWorkerRegistration.showNotification()")}}. Заметте, что в нашем коде мы вызываем его внутри метода {{domxref("ExtendableEvent.waitUntil()")}} — это растягивает время жизни события, пока уведомление не будет запущено, так что мы можем убедиться, что все, что мы хотели, чтобы произошло, действительно произошло.
    4. -
    -
  18. -
- -

Сборка демо

- -

Давайте пройдемся по коду для демо, чтобы понять, как все работает.

- -

HTML и CSS

- -

Нет ничего примечательного в HTML и CSS демо; HTML содержит простую форму для ввода данных для фхода в чат, кнопку для подписки на push-уведомления и двух списков, в которых перечислены подписчики и сообщения чата. После подписки появляются дополнительные средства для того, чтобы пользователь мог ввести сообщение в чат.

- -

CSS был оставлен очень минимальным, чтобы не отвлекать от объяснения того, как функционируют Push API.

- -

Основной файл JavaScript

- -

 JavaScript очевидно намного более существенный. Давайте взглянем на основной файл JavaScript.

- -

Переменные и начальные настройки

- -

Для начала определим некоторые переменные, которые будем использовать в нашем приложении:

- -
var isPushEnabled = false;
-var useNotifications = false;
-
-var subBtn = document.querySelector('.subscribe');
-var sendBtn;
-var sendInput;
-
-var controlsBlock = document.querySelector('.controls');
-var subscribersList = document.querySelector('.subscribers ul');
-var messagesList = document.querySelector('.messages ul');
-
-var nameForm = document.querySelector('#form');
-var nameInput = document.querySelector('#name-input');
-nameForm.onsubmit = function(e) {
-  e.preventDefault()
-};
-nameInput.value = 'Bob';
- -

Сначала нам необходимо создать две булевы переменные, для того чтобы отслеживать подписку на push-сообщения и подтверждение разрешения на рассылку уведомлений.

- -

Далее, мы перехватываем ссылку на {{htmlelement("button")}} подписки/отписки и задаем переменные для сохранения ссылок на наши кнопку отправки сообщения/ввода (который создастся только после успешной подписки).
-
- Следующие переменные перехватывают ссылки на три основные {{htmlelement("div")}} элемента, так что мы можем включить в них элементы (к примеру, когда появится кнопка Отправки Сообщения Чата или сообщение появится с писке Сообщений).

- -

Finally we grab references to our name selection form and {{htmlelement("input")}} element, give the input a default value, and use preventDefault() to stop the form submitting when the form is submitted by pressing return.

- -

Next, we request permission to send web notifications, using {{domxref("Notification.requestPermission","requestPermission()")}}:

- -
Notification.requestPermission();
- -

Now we run a section of code when onload is fired, to start up the process of inialising the app when it is first loaded. First of all we add a click event listener to the subscribe/unsubscribe button that runs our unsubscribe() function if we are already subscribed (isPushEnabled is true), and subscribe() otherwise:

- -
window.addEventListener('load', function() {
-  subBtn.addEventListener('click', function() {
-    if (isPushEnabled) {
-      unsubscribe();
-    } else {
-      subscribe();
-    }
-  });
- -

Next we check to see if service workers are supported. If so, we register a service worker using {{domxref("ServiceWorkerContainer.register()")}}, and run our initialiseState() function. If not, we deliver an error message to the console.

- -
  // Check that service workers are supported, if so, progressively
-  // enhance and add push messaging support, otherwise continue without it.
-  if ('serviceWorker' in navigator) {
-    navigator.serviceWorker.register('sw.js').then(function(reg) {
-      if(reg.installing) {
-        console.log('Service worker installing');
-      } else if(reg.waiting) {
-        console.log('Service worker installed');
-      } else if(reg.active) {
-        console.log('Service worker active');
-      }
-
-      initialiseState(reg);
-    });
-  } else {
-    console.log('Service workers aren\'t supported in this browser.');
-  }
-});
-
- -

The next thing in the source code is the initialiseState() function — for the full commented code, look at the initialiseState() source on Github (we are not repeating it here for brevity's sake.)

- -

initialiseState() first checks whether notifications are supported on service workers, then sets the useNotifications variable to true if so. Next, it checks whether said notifications are permitted by the user, and if push messages are supported, and reacts accordingly to each.

- -

Finally, it uses {{domxref("ServiceWorkerContainer.ready()")}} to wait until the service worker is active and ready to start doing things. Once its promise resolves, we retrieve our subscription to push messaging using the {{domxref("ServiceWorkerRegistration.pushManager")}} property, which returns a {{domxref("PushManager")}} object that we then call {{domxref("PushManager.getSubscription()")}} on. Once this second inner promise resolves, we enable the subscribe/unsubscribe button (subBtn.disabled = false;), and check that we have a subscription object to work with.

- -

If we do, then we are already subscribed. This is possible when the app is not open in the browser; the service worker can still be active in the background. If we're subscribed, we update the UI to show that we are subscribed by updating the button label, then we set isPushEnabled to true, grab the subscription endpoint from {{domxref("PushSubscription.endpoint")}}, generate a public key using {{domxref("PushSubscription.getKey()")}}, and run our updateStatus() function, which as you'll see later communicates with the server.

- -

As an added bonus, we set up a new {{domxref("MessageChannel")}} using the {{domxref("MessageChannel.MessageChannel()")}} constructor, grab a reference to the active service worker using {{domxref("ServiceworkerRegistration.active")}}, then set up a channel betweeen the main browser context and the service worker context using {{domxref("Worker.postMessage()")}}. The browser context receives messages on {{domxref("MessageChannel.port1")}}; whenever that happens, we run the handleChannelMessage() function to decide what to do with that data (see the {{anch("Handling channel messages sent from the service worker")}} section).

- -

Subscribing and unsubscribing

- -

Let's now turn our attention to the subscribe() and unsubscribe() functions used to subscribe/unsubscribe to the push notification service.

- -

In the case of subscription, we again check that our service worker is active and ready by calling {{domxref("ServiceWorkerContainer.ready()")}}. When the promise resolves, we subscribe to the service using {{domxref("PushManager.subscribe()")}}. If the subscription is successful, we get a {{domxref("PushSubscription")}} object, extract the subscription endpoint from this and generate a public key (again, {{domxref("PushSubscription.endpoint")}} and {{domxref("PushSubscription.getKey()")}}), and pass them to our updateStatus() function along with the update type (subscribe) to send the necessary details to the server.

- -

We also make the necessary updates to the app state (set isPushEnabled to true) and UI (enable the subscribe/unsubscribe button and set its label text to show that the next time it is pressed it will unsubscribe.)

- -

The unsubscribe() function is pretty similar in structure, but it basically does the opposite; the most notable difference is that it gets the current subscription using {{domxref("PushManager.getSubscription()")}}, and when that promise resolves it unsubscribes using {{domxref("PushSubscription.unsubscribe()")}}.

- -

Appropriate error handling is also provided in both functions.  

- -

We only show the subscribe() code below, for brevity; see the full subscribe/unsubscribe code on Github.

- -
function subscribe() {
-  // Disable the button so it can't be changed while
-  // we process the permission request
-
-  subBtn.disabled = true;
-
-  navigator.serviceWorker.ready.then(function(reg) {
-    reg.pushManager.subscribe({userVisibleOnly: true})
-      .then(function(subscription) {
-        // The subscription was successful
-        isPushEnabled = true;
-        subBtn.textContent = 'Unsubscribe from Push Messaging';
-        subBtn.disabled = false;
-
-        // Update status to subscribe current user on server, and to let
-        // other users know this user has subscribed
-        var endpoint = subscription.endpoint;
-        var key = subscription.getKey('p256dh');
-        updateStatus(endpoint,key,'subscribe');
-      })
-      .catch(function(e) {
-        if (Notification.permission === 'denied') {
-          // The user denied the notification permission which
-          // means we failed to subscribe and the user will need
-          // to manually change the notification permission to
-          // subscribe to push messages
-          console.log('Permission for Notifications was denied');
-
-        } else {
-          // A problem occurred with the subscription, this can
-          // often be down to an issue or lack of the gcm_sender_id
-          // and / or gcm_user_visible_only
-          console.log('Unable to subscribe to push.', e);
-          subBtn.disabled = false;
-          subBtn.textContent = 'Subscribe to Push Messaging';
-        }
-      });
-  });
-}
- -

Updating the status in the app and server

- -

The next function in our main JavaScript is updateStatus(), which updates the UI for sending chat messages when subscribing/unsubscribing and sends a request to update this information on the server.

- -

The function does one of three different things, depending on the value of the statusType parameter passed into it:

- - - -

Again, we have not included the entire function listing for brevity. Examine the full updateStatus() code on Github.

- -

Handling channel messages sent from the service worker

- -

As mentioned earlier, when a channel message is received from the service worker, our handleChannelMessage() function is called to handle it. This is done by our handler for the {{event("message")}} event, {{domxref("channel.port1.onmessage")}}:

- -
channel.port1.onmessage = function(e) {
-  handleChannelMessage(e.data);
-}
- -

This occurs when the service worker sends a channel message over.

- -

The handleChannelMessage() function looks like this:

- -
function handleChannelMessage(data) {
-  if(data.action === 'subscribe' || data.action === 'init') {
-    var listItem = document.createElement('li');
-    listItem.textContent = data.name;
-    subscribersList.appendChild(listItem);
-  } else if(data.action === 'unsubscribe') {
-    for(i = 0; i < subscribersList.children.length; i++) {
-      if(subscribersList.children[i].textContent === data.name) {
-        subscribersList.children[i].parentNode.removeChild(subscribersList.children[i]);
-      }
-    }
-    nameInput.disabled = false;
-  } else if(data.action === 'chatMsg') {
-    var listItem = document.createElement('li');
-    listItem.textContent = data.name + ": " + data.msg;
-    messagesList.appendChild(listItem);
-    sendInput.value = '';
-  }
-}
- -

What happens here depends on what the action property on the data object is set to:

- - - -
-

Note: We have to pass the data back to the main context before we do DOM updates because service workers don't have access to the DOM. You should be aware of the limitations of service workers before attemping to ue them. Read Using Service Workers for more details.

-
- -

Sending chat messages

- -

When the Send Chat Message button is clicked, the content of the associated text field is sent as a chat message. This is handled by the sendChatMessage() function (again, not shown in full for brevity). This works in a similar way to the different parts of the updateStatus() function (see {{anch("Updating the status in the app and server")}}) — we retrieve an endpoint and public key via a {{domxref("PushSubscription")}} object, which is itself retrieved via {{domxref("ServiceWorkerContainer.ready()")}} and {{domxref("PushManager.subscribe()")}}. These are sent to the server via {{domxref("XMLHttpRequest")}} in a message object, along with the name of the subscribed user, the chat message to send, and a statusType of chatMsg.

- -

The server

- -

As mentioned above, we need a server-side component in our app, to handle storing subscription details, and send out push messages when updates occur. We've hacked together a quick-and-dirty server using NodeJS (server.js), which handles the XHR requests sent by our client-side JavaScript code.

- -

It uses a text file (endpoint.txt) to store subscription details; this file starts out empty. There are four different types of request, marked by the statusType property of the object sent over in the request; these are the same as those understood client-side, and perform the required server actions for that same situation. Here's what each means in the context of the server:

- - - -

A couple more things to note:

- - - -

The service worker

- -

Now let's have a look at the service worker code (sw.js), which responds to the push messages, represented by {{Event("push")}} events. These are handled on the service worker's scope by the ({{domxref("ServiceWorkerGlobalScope.onpush")}}) event handler; its job is to work out what to do in response to each received message. We first convert the received message back into an object by calling {{domxref("PushMessageData.json()")}}. Next, we check what type of push message it is, by looking at the object's action property:

- - - -
self.addEventListener('push', function(event) {
-  var obj = event.data.json();
-
-  if(obj.action === 'subscribe' || obj.action === 'unsubscribe') {
-    fireNotification(obj, event);
-    port.postMessage(obj);
-  } else if(obj.action === 'init' || obj.action === 'chatMsg') {
-    port.postMessage(obj);
-  }
-});
- -

Next, let's look at the fireNotification() function (which is blissfully pretty simple).

- -
function fireNotification(obj, event) {
-  var title = 'Subscription change';
-  var body = obj.name + ' has ' + obj.action + 'd.';
-  var icon = 'push-icon.png';
-  var tag = 'push';
-
-  event.waitUntil(self.registration.showNotification(title, {
-    body: body,
-    icon: icon,
-    tag: tag
-  }));
-}
- -

Here we assemble the assets needed by the notification box: the title, body, and icon. Then we send a notification via the {{domxref("ServiceWorkerRegistration.showNotification()")}} method, providing that information as well as the tag "push", which we can use to identify this notification among any other notifications we might be using. When the notification is successfully sent, it manifests as a system notification dialog on the users computers/devices in whatever style system notifications look like on those systems (the following image shows a Mac OSX system notification.)

- -

- -

Note that we do this from inside an {{domxref("ExtendableEvent.waitUntil()")}} method; this is to make sure the service worker remains active until the notification has been sent. waitUntil() will extend the life cycle of the service worker until everything inside this method has completed.

- -
-

Note: Web notifications from service workers were introduced around Firefox version 42, but are likely to be removed again while the surrounding functionality (such as Clients.openWindow()) is properly implemented (see {{bug(1203324)}} for more details.)

-
- -

Handling premature subscription expiration

- -

Sometimes push subscriptions expire prematurely, without {{domxref("PushSubscription.unsubscribe()")}} being called. This can happen when the server gets overloaded, or if you are offline for a long time, for example.  This is highly server-dependent, so the exact behavior is difficult to predict. In any case, you can handle this problem by watching for the {{Event("pushsubscriptionchange")}} event, which you can listen for by providing a {{domxref("ServiceWorkerGlobalScope.onpushsubscriptionchange")}} event handler; this event is fired only in this specific case.

- -
self.addEventListener('pushsubscriptionchange', function() {
-  // do something, usually resubscribe to push and
-  // send the new subscription details back to the
-  // server via XHR or Fetch
-});
- -

Note that we don't cover this case in our demo, as a subscription ending is not a big deal for a simple chat server. But for a more complex example you'd probably want to resubscribe the user.

- -

Extra steps for Chrome support

- -

To get the app working on Chrome, we need a few extra steps, as Chrome currently relies on Google's Cloud Messaging service to work.

- -

Setting up Google Cloud Messaging

- -

To get this set up, follow these steps:

- -
    -
  1. Navigate to the Google Developers Console  and set up a new project.
  2. -
  3. Go to your project's homepage (ours is at https://console.developers.google.com/project/push-project-978, for example), then -
      -
    1. Select the Enable Google APIs for use in your apps option.
    2. -
    3. In the next screen, click Cloud Messaging for Android under the Mobile APIs section.
    4. -
    5. Click the Enable API button.
    6. -
    -
  4. -
  5. Now you need to make a note of your project number and API key because you'll need them later. To find them: -
      -
    1. Project number: click Home on the left; the project number is clearly marked at the top of your project's home page.
    2. -
    3. API key: click Credentials on the left hand menu; the API key can be found on that screen.
    4. -
    -
  6. -
- -

manifest.json

- -

You need to include a Google app-style manifest.json file in your app, which references the project number you made a note of earlier in the gcm_sender_id parameter. Here is our simple example manifest.json:

- -
{
-  "name": "Push Demo",
-  "short_name": "Push Demo",
-  "icons": [{
-        "src": "push-icon.png",
-        "sizes": "111x111",
-        "type": "image/png"
-      }],
-  "start_url": "/index.html",
-  "display": "standalone",
-  "gcm_sender_id": "224273183921"
-}
- -

You also need to reference your manifest using a {{HTMLElement("link")}} element in your HTML:

- -
<link rel="manifest" href="manifest.json">
- -

userVisibleOnly

- -

Chrome requires you to set the userVisibleOnly parameter to true when subscribing to the push service, which indicates that we are promising to show a notification whenever a push is received. This can be seen in action in our subscribe() function.

- -

See also

- - - -
-

Note: Some of the client-side code in our Push demo is heavily influenced by Matt Gaunt's excellent examples in Push Notifications on the Open Web. Thanks for the awesome work, Matt!

-
diff --git a/files/ru/web/api/randomsource/getrandomvalues/index.html b/files/ru/web/api/randomsource/getrandomvalues/index.html deleted file mode 100644 index c59f5dde54..0000000000 --- a/files/ru/web/api/randomsource/getrandomvalues/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: RandomSource.getRandomValues() -slug: Web/API/RandomSource/getRandomValues -tags: - - АПИ - - Криптография - - Справка - - метод -translation_of: Web/API/Crypto/getRandomValues ---- -

{{APIRef("Web Crypto API")}}

- -

Метод RandomSource.getRandomValues() позволяет вам получать криптографически стойкие числа. Массив, переданный как параметр, заполняется случайными числами (случайными в криптографическом смысле).

- -

Для того, чтобы гарантировать достаточную производительность, реализации используют не настоящий генератор случайных чисел (RNG, en - Random Number Generator), а генератор псевдо-случайных чисел, которому предоставлено начальное зерно (wiki - https://en.wikipedia.org/wiki/Random_seed) с достаточной энтропией (http://cryptography.ru/ref/энтропия). Реализация генератора псевдо-случайных чисел (PRNG, en - PseudoRandom Number Generator) отличается от других реализаций RNG, но она больше подходит для использования в криптографии. Реализации также требуют использование начального зерна с достаточной энтропией, как источник системно-уровневой энтропии.

- -

Синтаксис

- -
cryptoObj.getRandomValues(typedArray);
- -

Параметры

- -
-
typedArray
-
Целочисленный массив {{jsxref("TypedArray")}}, например {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, или {{jsxref("Uint32Array")}}. Все элементы массива замещаются случайными числами.
-
- -

Исключения

- - - -

Пример

- -
/* Предполагается что функция window.crypto.getRandomValues доступна */
-
-var array = new Uint32Array(10);
-window.crypto.getRandomValues(array);
-
-console.log("Ваше счастливое число:");
-for (var i = 0; i < array.length; i++) {
-    console.log(array[i]);
-}
-
- -

Спецификация

- - - - - - - - - - - - - - -
СпецификацияСтатусКомментарий
{{SpecName('Web Crypto API', '#RandomSource-method-getRandomValues')}}{{Spec2('Web Crypto API')}}Изначальное определение
- -

Совместимость с браузерами

- -

{{Compat("api.Crypto.getRandomValues")}}

- -

Смотрите также

- - diff --git a/files/ru/web/api/randomsource/index.html b/files/ru/web/api/randomsource/index.html deleted file mode 100644 index d56506a90a..0000000000 --- a/files/ru/web/api/randomsource/index.html +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: RandomSource -slug: Web/API/RandomSource -tags: - - API - - Interface - - NeedsTranslation - - RandomSource - - Reference - - TopicStub - - Web Crypto API -translation_of: Web/API/Crypto/getRandomValues -translation_of_original: Web/API/RandomSource ---- -

{{APIRef("Web Crypto API")}}

- -

RandomSource представляет собой источник криптографически безопасных случайных чисел. Он доступен через {{domxref("Crypto")}} объект глобального объекта: {{domxref("Window.crypto")}} на веб страницах, {{domxref("WorkerGlobalScope.crypto")}} для воркеров.

- -

RandomSource не является интерфейсом и объект этого типа не может быть создан.

- -

Свойства

- -

RandomSource не объявляет и не наследует никаких свойств.

- -
-
- -

Методы

- -
-
{{ domxref("RandomSource.getRandomValues()") }}
-
Наполняет {{ domxref("ArrayBufferView") }} криптографически безопасными случайными числовыми значениями.
-
- -

Спецификации

- - - - - - - - - - - - - - -
СпецификацияСтатусКоммент
{{SpecName('Web Crypto API', '#dfn-RandomSource')}}{{Spec2('Web Crypto API')}}Изначальное определение
- -

Совместимость с браузерами

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
ВозможностьChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка11.0 {{ webkitbug("22049") }}{{CompatGeckoDesktop(21)}} [1]11.015.03.1
-
- -
- - - - - - - - - - - - - - - - - - - - - -
ВозможностьAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка{{ CompatNo() }}23{{CompatGeckoMobile(21)}}{{ CompatNo() }}{{ CompatNo() }}6
-
- -

[1] Although the transparent RandomSource is only available since Firefox 26, the feature was available in Firefox 21.

- -

Смотрите также

- - diff --git a/files/ru/web/api/slotable/index.html b/files/ru/web/api/slotable/index.html deleted file mode 100644 index af6ec4765c..0000000000 --- a/files/ru/web/api/slotable/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Slotable -slug: Web/API/Slotable -tags: - - миксины -translation_of: Web/API/Slottable -translation_of_original: Web/API/Slotable ---- -

{{APIRef("Shadow DOM")}}

- -

Миксин Slotable определяет возможности, которые позволяют нодам становиться контентом элемента {{htmlelement("slot")}} — следующие возможности включены в  {{domxref("Element")}} и {{domxref("Text")}}.

- -

Свойства

- -
-
{{domxref("Slotable.assignedSlot")}} {{readonlyInline}}
-
Возвращает {{htmlelement("slot")}}, в который вставлена нода.
-
- -

Методы

- -

Нет.

- -

Спецификации

- - - - - - - - - - - - - - -
СпецификацияСтатусКомментарии
{{SpecName('DOM WHATWG','#slotable','Slotable')}}{{Spec2('DOM WHATWG')}}Первое определение.
- -

Поддержка браузерами

- - - -

{{Compat("api.Slotable")}}

diff --git a/files/ru/web/api/storage/localstorage/index.html b/files/ru/web/api/storage/localstorage/index.html deleted file mode 100644 index f0fab82609..0000000000 --- a/files/ru/web/api/storage/localstorage/index.html +++ /dev/null @@ -1,146 +0,0 @@ ---- -title: LocalStorage -slug: Web/API/Storage/LocalStorage -translation_of: Web/API/Window/localStorage -translation_of_original: Web/API/Web_Storage_API/Local_storage ---- -

localStorage это аналог sessionStorage, с некоторыми same-origin правилами, но значения хранятся постоянно (в отличии от sessions). localStorage появился в Firefox 3.5.

- -
Примечание: Когда браузер переходит в режим приватного просмотра, создается новое временное хранилище. Изначально оно пустое. После выхода из режима приватного просмотра временное хранилище очищается.
- -
// Сохраняет данные в текущий local store
-localStorage.setItem("username", "John");
-
-// Извлекает ранее сохраненные данные
-alert( "username = " + localStorage.getItem("username"));
- -

localStorage's позволяет постоянно хранить некоторую полезную информацию, включая счетчики посещения страницы, как показано в примере this tutorial on Codepen.

- -

Совместимость

- -

Storage objects недавно добавлен в стандарт. Он может отсутствовать в некоторых браузерах. Вы можете работать с этой технологией добавив в страницу один из двух скриптов, которые представлены ниже. localStorage object реализуется програмно, если нет встроенной реализации.

- -

Этот алгоритм является точной имитацией localStorage object, но для хранения использует cookies.

- -
if (!window.localStorage) {
-  Object.defineProperty(window, "localStorage", new (function () {
-    var aKeys = [], oStorage = {};
-    Object.defineProperty(oStorage, "getItem", {
-      value: function (sKey) { return sKey ? this[sKey] : null; },
-      writable: false,
-      configurable: false,
-      enumerable: false
-    });
-    Object.defineProperty(oStorage, "key", {
-      value: function (nKeyId) { return aKeys[nKeyId]; },
-      writable: false,
-      configurable: false,
-      enumerable: false
-    });
-    Object.defineProperty(oStorage, "setItem", {
-      value: function (sKey, sValue) {
-        if(!sKey) { return; }
-        document.cookie = escape(sKey) + "=" + escape(sValue) + "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/";
-      },
-      writable: false,
-      configurable: false,
-      enumerable: false
-    });
-    Object.defineProperty(oStorage, "length", {
-      get: function () { return aKeys.length; },
-      configurable: false,
-      enumerable: false
-    });
-    Object.defineProperty(oStorage, "removeItem", {
-      value: function (sKey) {
-        if(!sKey) { return; }
-        document.cookie = escape(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
-      },
-      writable: false,
-      configurable: false,
-      enumerable: false
-    });
-    Object.defineProperty(oStorage, "clear", {
-      value: function () {
-        if(!aKeys.length) { return; }
-        for (var sKey in aKeys) {
-          document.cookie = escape(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
-        }
-      },
-      writable: false,
-      configurable: false,
-      enumerable: false
-    });
-    this.get = function () {
-      var iThisIndx;
-      for (var sKey in oStorage) {
-        iThisIndx = aKeys.indexOf(sKey);
-        if (iThisIndx === -1) { oStorage.setItem(sKey, oStorage[sKey]); }
-        else { aKeys.splice(iThisIndx, 1); }
-        delete oStorage[sKey];
-      }
-      for (aKeys; aKeys.length > 0; aKeys.splice(0, 1)) { oStorage.removeItem(aKeys[0]); }
-      for (var aCouple, iKey, nIdx = 0, aCouples = document.cookie.split(/\s*;\s*/); nIdx < aCouples.length; nIdx++) {
-        aCouple = aCouples[nIdx].split(/\s*=\s*/);
-        if (aCouple.length > 1) {
-          oStorage[iKey = unescape(aCouple[0])] = unescape(aCouple[1]);
-          aKeys.push(iKey);
-        }
-      }
-      return oStorage;
-    };
-    this.configurable = false;
-    this.enumerable = true;
-  })());
-}
-
- -
Примечание: Максимальныйe размер данных, которые могут быть сохранены, ограничен возможностями cookies. Используйте functions localStorage.setItem() и localStorage.removeItem() для добавления, изменения, или удаления ключа. Использование прямого присвоения localStorage.yourKey = yourValue; и delete localStorage.yourKey; для установки и удаления ключа не безопасно с этим кодом. Вы также можете изменить это имя (вместо window.localStorage прописать другое имя) и использовать объект для управления document's cookies, не обращая внимания на localStorage object.
- -
Примечание: Если изменить строку "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/" на: "; path=/" (и изменить имя объекта), он превратится в sessionStorage polyfill больше, чем в localStorage polyfill. Однако эта реализация будет хранить общие значения для всех вкладок и окон браузера (and will only be cleared when all browser windows have been closed), в то время как полностью совместимая sessionStorage реализация хранит значения to the current browsing context only.
- -

Here is another, less exact, imitation of the localStorage object. It is simpler than the previous one, but it is compatible with old browsers, like Internet Explorer < 8 (tested and working even in Internet Explorer 6). It also makes use of cookies.

- -
if (!window.localStorage) {
-  window.localStorage = {
-    getItem: function (sKey) {
-      if (!sKey || !this.hasOwnProperty(sKey)) { return null; }
-      return unescape(document.cookie.replace(new RegExp("(?:^|.*;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"), "$1"));
-    },
-    key: function (nKeyId) {
-      return unescape(document.cookie.replace(/\s*\=(?:.(?!;))*$/, "").split(/\s*\=(?:[^;](?!;))*[^;]?;\s*/)[nKeyId]);
-    },
-    setItem: function (sKey, sValue) {
-      if(!sKey) { return; }
-      document.cookie = escape(sKey) + "=" + escape(sValue) + "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/";
-      this.length = document.cookie.match(/\=/g).length;
-    },
-    length: 0,
-    removeItem: function (sKey) {
-      if (!sKey || !this.hasOwnProperty(sKey)) { return; }
-      document.cookie = escape(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
-      this.length--;
-    },
-    hasOwnProperty: function (sKey) {
-      return (new RegExp("(?:^|;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
-    }
-  };
-  window.localStorage.length = (document.cookie.match(/\=/g) || window.localStorage).length;
-}
-
- -
Note: The maximum size of data that can be saved is severely restricted by the use of cookies. With this algorithm, use the functions localStorage.getItem()localStorage.setItem(), and localStorage.removeItem() to get, add, change, or remove a key. The use of method localStorage.yourKey in order to get, set, or delete a key is not permitted with this code. You can also change its name and use it only to manage a document's cookies regardless of the localStorage object.
- -
Note: By changing the string "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/" to: "; path=/" (and changing the object's name), this will become a sessionStorage polyfill rather than a localStorage polyfill. However, this implementation will share stored values across browser tabs and windows (and will only be cleared when all browser windows have been closed), while a fully-compliant sessionStorage implementation restricts stored values to the current browsing context only.
- -

Compatibility and relation with globalStorage

- -

localStorage is also the same as globalStorage[location.hostname], with the exception of being scoped to an HTML5 origin (scheme + hostname + non-standard port) and localStorage being an instance of Storage as opposed to globalStorage[location.hostname] being an instance of StorageObsolete which is covered below. For example, http://example.com is not able to access the same localStorage object as https://example.com but they can access the same globalStorage item. localStorage is a standard interface while globalStorage is non-standard so you shouldn't rely on these.

- -

Please note that setting a property on globalStorage[location.hostname] does not set it on localStorage and extending Storage.prototype does not affect globalStorage items; only extending StorageObsolete.prototype does.

- -

Storage format

- -

Storage keys and values are both stored in the UTF-16 DOMString format, which uses 2 bytes per character.

- -

 

diff --git a/files/ru/web/api/svgaelement/svgalement.target/index.html b/files/ru/web/api/svgaelement/svgalement.target/index.html deleted file mode 100644 index dcd76310d4..0000000000 --- a/files/ru/web/api/svgaelement/svgalement.target/index.html +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: SVGAElement.target -slug: Web/API/SVGAElement/SVGAlement.target -translation_of: Web/API/SVGAElement/target -translation_of_original: Web/API/SVGAElement/SVGAlement.target ---- -

{{APIRef("SVGAElement")}}

- -

 

- -

Свойство SVGAElement.target для чтения только {{domxref ("SVGAElement")}} возвращает объект {{domxref ("SVGAnimatedString")}}, который указывает часть целевого окна, фрейма, панель, в которую открывается при активации ссылки.

- -

Это свойство используется, когда существует множество возможных целей для конечного ресурса, например, когда родительский документ является документом HTML или HTML-документом mlti-frame.

- -

 

- -

Синтаксис

- -
myLink.target = 'value';
- -

Стоимость

- -

{{Domxref ("SVGAnimatedString")}}, указывающий конечную цель ресурса, которая открывает документ при активации ссылки.

- -

Значения для {{domxref ("target")}} можно увидеть here

- -

Пример

- -

Код  взят из "SVGAElement example code"

- -
...
-var linkRef = document.querySelector('a');
-linkRef.target ='_blank';
-...
- -

Характеристики

- - - - - - - - - - - - - - -
СпецификацияСтатусКомментарий
{{SpecName('SVG1.1', 'text.html#InterfaceSVGAElement', 'target')}}{{Spec2('SVG1.1')}} 
- -

Совместимость с браузером

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}9.0{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{ CompatUnknown() }}{{ CompatVersionUnknown() }}{{ CompatUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
-
- -

Смотрите также

- - diff --git a/files/ru/web/api/web_crypto_api/checking_authenticity_with_password/index.html b/files/ru/web/api/web_crypto_api/checking_authenticity_with_password/index.html deleted file mode 100644 index ea8ec86586..0000000000 --- a/files/ru/web/api/web_crypto_api/checking_authenticity_with_password/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Проверка подлинности данных с паролем -slug: Web/API/Web_Crypto_API/Checking_authenticity_with_password -tags: - - HMAC - - Web Crypto -translation_of: Web/API/Web_Crypto_API/Checking_authenticity_with_password ---- -

{{APIRef("Web Crypto API")}}{{draft}}

- -

Проверка подлинности данных может быть выполнена с помощью Web Crypto API. В этой статье мы покажем как создавать и управлять подписями, используя хэш-функцию и пароль.

- -

HMAC алгоритм генерирует хэш на основе передаваемых ключа и данных, которые нужно подписать. Позже, идентичный хэш может быть вычислен заного любым пользователем, у которого имеется ключ. Необходимость ключа позволяет хранить данные и хэш вместе: злоумышленник не сможет создать хэш для измененных данных, не имея ключа.

- -

Стоит заметить, что алгоритм никак не связан с какой-либо другой информацией о владельце: знание ключа – необходимое и достаточное условие для изменения данных.

- -

Предположим, данные хранятся на компьютере. Чтобы получить доступ к записи или чтению, мы будем использовать localforage.js – библиотека-обертка над хранилищами браузера. Эта библиотека необязательна и используется в качестве примера для удобства, чтобы сосредоточиться на криптографии.

- -

Данные, доступ к которым мы хотим получить, имеют следующую форму:

- -

 

- -

где data – данные для подписания и signature – подпись, информация для проверки подлинности.

- -

Криптографические ключи невозможно выучить наизусть, а обычные пароли недостаточно безопасны. Чтобы решить эту проблему, криптографы создали алгоритмы для создания криптографических ключей из паролей. Знание пароля позволяет воссоздать ключ и использовать его.

- -

Запрашиваем пароль у пользователя для генерации ключа:

- -
 
- -

С этим ключом мы можем вычислить хэш данных.

- -
 
diff --git a/files/ru/web/api/web_workers_api/using_web_workers/index.html b/files/ru/web/api/web_workers_api/using_web_workers/index.html new file mode 100644 index 0000000000..7503eccacb --- /dev/null +++ b/files/ru/web/api/web_workers_api/using_web_workers/index.html @@ -0,0 +1,871 @@ +--- +title: Использование Web Workers +slug: DOM/Using_web_workers +tags: + - воркер + - поток +translation_of: Web/API/Web_Workers_API/Using_web_workers +--- +
{{DefaultAPISidebar("Web Workers API")}}
+ +

Web Worker-ы предоставляют простое средство для запуска скриптов в фоновом потоке. Поток Worker'а может выполнять задачи без вмешательства в пользовательский интерфейс. К тому же, они могут осуществлять ввод/вывод, используя XMLHttpRequest (хотя атрибуты responseXML и channel всегда будут равны null). Существующий Worker может отсылать сообщения JavaScript коду-создателю через обработчик событий, указанный этим кодом (и наоборот). Эта статья дает детальную инструкцию по использованию Web Workers.

+ +

Web Workers API

+ +

Worker - это объект, создаваемый конструктором (например, {{domxref("Worker.Worker", "Worker()")}}) и запускающий именной JavaScript файл — этот файл содержит код, который будет выполнен в потоке Worker'а; объекты же Workers запускаются в другом глобальном контексте, отличающемся от текущего, - {{domxref("window")}}. Поэтому использование переменной {{domxref("window")}} для получения текущего глобального контекста (вместо {{domxref("window.self","self")}}) внутри {{domxref("Worker")}} вернет ошибку.

+ +

Контекст Worker'а представлен объектом {{domxref("DedicatedWorkerGlobalScope")}} в случае выделенных Workers (обычные Workers используются одним скриптом; совместные Workers используют объект {{domxref("SharedWorkerGlobalScope")}}). Выделенный Worker доступен только из скрипта-родителя, в то время как совместные Workers могут быть доступны из нескольких сценариев.

+ +
+

Заметка: Смотрите страницу Web Workers API для справки по Workers и прочие руководства.

+
+ +

Вы можете запускать любой код внутри потока worker-а, за некоторыми исключениями. Например, вы не можете прямо манипулировать DOM внутри worker-а, или использовать некоторые методы по умолчанию и свойства объекта {{domxref("window")}}. Но вы можете использовать большой набор опций, доступный под Window, включая WebSockets, и механизмы хранения данных, таких как IndexedDB и относящихся только к Firefox OS Data Store API. Для дополнительной информации смотрите Functions and classes available to workers.

+ +

Данные передаются между worker-ами и главным потоком через систему сообщений — обе стороны передают свои сообщения, используя метод postMessage() и отвечают на сообщения при помощи обработчика событий onmessage (сообщение хранится в аттрибуте data события {{event("Message")}}). Данные при этом копируются, а не делятся.

+ +

Объекты Workers могут, в свою очередь, создавать новые объекты workers, и так до тех пор, пока всё работает в рамках текущей страницы. Плюс к этому, объекты workers могут использовать XMLHttpRequest для сетевого ввода/вывода, но есть исключение - атрибуты responseXML и channel объекта XMLHttpRequest всегда возвращают null.

+ +

Выделенные Workers

+ +

Как уже упоминалось выше, выделенный Worker доступен только для скрипта, который его вызвал. В этом разделе речь пойдет о JavaScript, который можно найти в нашем основном примере выделенного Worker (запустить скрипт): этот пример позволяет ввести два числа для умножения. Эти числа отправляются в Worker, перемножаются, а результат возвращается на страницу и отображается.

+ +

Этот пример достаточно тривиален, но для ознакомления с базовыми концепциями worker-ов мы решили его упростить. Более продвинутые детали описаны далее в статье.

+ +

Определение поддержки Worker

+ +

Для большего контроля над ошибками и обратной совместимости, рекомендуется обернуть ваш код доступа к worker-у в следующий (main.js):

+ +
if (window.Worker) {
+
+  ...
+
+}
+ +

Создание выделенного worker

+ +

Создание нового worker-а — это легко. Всё что вам нужно это вызвать конструктор {{domxref("Worker.Worker", "Worker()")}}, указав URI скрипта для выполнения в потоке worker-а (main.js):

+ +
+
var myWorker = new Worker("worker.js");
+
+
+ +

Передача сообщений в и из выделенного worker

+ +

Магия worker-ов происходит через {{domxref("Worker.postMessage", "postMessage()")}} метод и обработчик событий {{domxref("Worker.onmessage", "onmessage")}}. Когда вы хотите отправить сообщение в worker, вы доставляете сообщение к нему вот так (main.js):

+ +
first.onchange = function() {
+  myWorker.postMessage([first.value,second.value]);
+  console.log('Message posted to worker');
+}
+
+second.onchange = function() {
+  myWorker.postMessage([first.value,second.value]);
+  console.log('Message posted to worker');
+}
+ +

В приведенном фрагменте кода мы имеем два {{htmlelement("input")}} элемента, представленных переменными first и second; когда значение любой из переменных изменяется, myWorker.postMessage([first.value,second.value]) используется для отправки обоих значений, представленных в виде массива, в worker. Посредством аргумента message возможна передача практически любых данных в worker.

+ +

Внутри worker-a мы можем обрабатывать сообщения и отвечать на них при помощи добавления обработчика события onmessage подобным образом (worker.js):

+ +
onmessage = function(e) {
+  console.log('Message received from main script');
+  var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
+  console.log('Posting message back to main script');
+  postMessage(workerResult);
+}
+ +

Обработчик onmessage позволяет нам запустить некий код всякий раз, когда получен пакет с сообщением, доступным в атрибуте data события message. В примере выше мы просто перемножаем вместе две цифры, после чего используем postMessage() снова, чтобы отправить полученный результат назад в основной поток.

+ +

Возвращаясь в основной поток, мы используем onmessage снова, чтобы отреагировать на сообщение, отправленное нам назад из worker-а:

+ +
myWorker.onmessage = function(e) {
+  result.textContent = e.data;
+  console.log('Message received from worker');
+}
+ +

В примере выше мы берём данные из события сообщения и ставим их как textContent у результирующего абзаца, чтобы показать пользователю результат этой калькуляции.

+ +

Заметка: Обратите внимание, что onmessage()​ и postmessage() должны вызываться из экземпляра Worker в главном потоке, но не в потоке worker-а. Это связано с тем, что внутри потока worker-а, worker выступает в качестве глобального объекта.

+ +

Заметка: При передаче сообщения между основным потоком и потоком worker-а, оно копируется или "передается" (перемещается), не делится между потоками. Читайте {{anch("Transferring data to and from workers: further details")}} для более подробного объяснения.

+ +

Завершение работы worker-а

+ +

Прекращение работы worker-а главного потока достигается методом {{domxref("Worker", "terminate")}}:

+ +
myWorker.terminate();
+ +

Поток worker-а немедленно уничтожается.

+ +

Обработка ошибок

+ +

При ошибке во время выполнения worker-а, вызывается его обработчик событий onerror. Он принимает событие error, которое реализует интерфейс ErrorEvent.

+ +

Событие не всплывает и его можно отменить. Для отмены действия по умолчанию, worker может вызвать метод preventDefault() в обработчике события ошибки.

+ +

У события ошибки есть три поля, которые представляют интерес:

+ +
+
message
+
Сообщение об ошибке в читаемом виде.
+
filename
+
Имя файла со скриптом, в котором ошибка произошла.
+
lineno
+
Номер строки в файле, в котором произошла ошибка.
+
+ +

Создание subworkers

+ +

Worker-ы могут запускать другие worker-ы. Так называемые sub-worker'ы должны быть того же происхождения (same-origin), что и родительский документ. Кроме того, URI для subworker-ов рассчитываются относительно родительского worker'а, а не родительского документа. Это позволяет worker-ам проще следить за тем, где находятся их зависимости.

+ +

Импорт скриптов и библиотек

+ +

Worker потоки имеют доступ к глобальной функции, importScripts(), которая позволяет импортировать скрипты с того же домена в их область видимости. Функция принимает ноль и более URI параметров, как список ссылок на ресурсы для импорта; все нижеприведенные примеры верны:

+ +
importScripts();                        /* imports nothing */
+importScripts('foo.js');                /* imports just "foo.js" */
+importScripts('foo.js', 'bar.js');      /* imports two scripts */
+
+ +

Браузер загружает каждый указанный скрипт и исполняет его. Любые глобальные объекты, создаваемые каждым скриптом могут быть использованы в worker'е. Если скрипт не удалось загрузить, будет брошена ошибка NETWORK_ERROR, и последующий код не будет исполнен. Тем не менее код, исполненный ранее (включая отложенный при помощи {{domxref("window.setTimeout()")}}) останется функционален. Объявления функций идущие после вызова метода importScripts() также будут доступны, т.к. объявления функций всегда обрабатываются перед остальным кодом.

+ +
Заметка: Скрипты могут быть загружены в произвольном порядке, но их исполнение будет в  том порядке, в котором имена файлов были переданы в importScripts(). Функция выполняется синхронно; importScripts() не вернет исполнение, пока все скрипты не будут загружены и исполнены.
+ +

Разделяемые worker-ы (Shared workers)

+ +

Разделяемый worker доступен нескольким разным скриптам — даже если они находятся в разных окнах, фреймах или даже worker-ах. В этом разделе мы обсудим JavaScript, который можно найти в нашем базовом примере разделяемых worker-ов (запустить разделяемый worker): Он очень похож на базовый пример выделенных worker-ов, за исключением двух функций, которые доступны из разных скриптовых файлов: умножение двух чисел или возведение числа в степень. Оба скрипта используют один и тот же worker для необходимых вычислений.

+ +

Здесь мы сосредоточимся на разнице между выделенными и раздялемыми worker-ами. Обратите внимание, что в данном примере есть две HTML страницы с JavaScript кодом, которые используют один и тот же файл worker-а.

+ +
+

Заметка: Если разделяемый worker может быть доступен из нескольких контекстов просмотра, то все они должны иметь одно и то же происхождение (одни и те же протокол, хост и порт).

+
+ +
+

Заметка: В Firefox разделяемый worker не может быть использован совместно документами в приватном и неприватном окне ({{bug(1177621)}}).

+
+ +

Создание разделяемого worker-а

+ +

Запуск разделяемого worker-а очень похож на запуск выделенного worker-а, но используется другой конструктор (см. index.html и index2.html) — в каждом документе необходимо поднять worker, для этого следует написать такой код:

+ +
var myWorker = new SharedWorker("worker.js");
+ +

Большая разница заключается в том, что с разделяемым worker-ом необходимо взаимодействовать через объект port — явно открыв порт, с помощью которого скрипты могут взаимодействовать с worker-ом (в случае выделенного worker-а это происходит неявно).

+ +

Соединение с портом должно быть осуществлено либо неявно, используя обработчик событие onmessage, либо явно, вызвав метод start() перед тем, как отправлять любые сообщения. Вызов метода start() необходим только тогда, когда подписка на событие реализована через метод addEventListener().

+ +
+

Заметка: Когда используется метод start() чтобы открыть соединение с портом, его необходимо вызывать и в родительском потоке и в потоке worker-а, если необходима двухсторонняя коммуникация.

+
+ +
myWorker.port.start();  // в родительском потоке
+ +
port.start();  // в потоке worker-а, где переменная port является ссылкой на порт
+ +

Передача сообщений в/из разделяемого worker-а

+ +

Теперь сообщения могут быть отправлены worker-у, как и прежде, но метод postMessage() должен вызываться из объекта port (еще раз, вы можете увидеть схожие кострукции в multiply.js и square.js):

+ +
squareNumber.onchange = function() {
+  myWorker.port.postMessage([squareNumber.value,squareNumber.value]);
+  console.log('Message posted to worker');
+}
+ +

Теперь на стороне worker-а. Здесь код немного сложнее (worker.js):

+ +
self.addEventListener('connect', function(e) { // требуется addEventListener()
+  var port = e.ports[0];
+  port.onmessage = function(e) {
+    var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
+    port.postMessage(workerResult);
+  }
+  port.start();  // вызов необязательный, т.к. используется обработчик событий onmessage
+});
+ +

Первый этап состоит из события onconnect. Оно срабатывает, когда произошло подключение (т.е. когда в родительском потоке отработало событие onmessage или когда в нем был вызван метод start()).

+ +

Мы используем атрибут события ports, чтобы получить порт и сохранить его в переменной.

+ +

Второй этап — это обработчик события message на сохраненном порту. Он нужен для подсчета и вывода результата вычисления в основной поток. Установка обработчика message в потоке worker-а также открывает подключение к родительскому потоку, поэтому вызов на port.start() на самом деле не нужен (см. код обработчика onconnect).

+ +

Последний этап — возвращение в основной поток и обработка сообщения от worker‑а (еще раз, вы можете увидеть схожие конструкции в multiply.js и square.js):

+ +
myWorker.port.onmessage = function(e) {
+  result2.textContent = e.data[0];
+  console.log('Message received from worker');
+}
+ +

Когда сообщение приходит через порт от worker-а, мы проверяем тип результата вычислений и затем вставляем его в соответствующий абзац.

+ +

О потоковой безопасности

+ +

Интерфейс {{domxref("Worker")}} создаёт настоящие потоки на уровне операционной системы, что может смутить опытных программистов и навести их на мысли о проблемах, связанных с конфликтом доступа к общим объектам.

+ +

На самом деле создать такие проблемы достаточно сложно, так как worker-ы жёстко контролируются. У них нет доступа к непотокобезопасным объектам DOM, а все данные между потоками передаются в качестве сериализованных объектов. Придётся очень постараться, чтобы вызывать проблемы потокобезопасности в вашем коде.

+ +

Передача данных в и из worker-ов: другие детали

+ +

Передача данных между главной страницей и worker-ом происходит путем копирования, а не передачи по ссылке. Объекты сериализуются при передаче и затем десериализуются на другом конце. Страница и worker не используют совместно одни и те же экземпляры, для каждого создается свой. Большинство браузеров реализуют это структурированным клонированием (structured cloning).

+ +

Для иллюстрации этого мы создадим функцию emulateMessage(), которая будет имитировать поведение значения, которое клонируется, но не используется совместно при переходе от worker-а к главной странице или наоборот.

+ +
function emulateMessage (vVal) {
+    return eval("(" + JSON.stringify(vVal) + ")");
+}
+
+// Tests
+
+// test #1
+var example1 = new Number(3);
+console.log(typeof example1); // object
+console.log(typeof emulateMessage(example1)); // number
+
+// test #2
+var example2 = true;
+console.log(typeof example2); // boolean
+console.log(typeof emulateMessage(example2)); // boolean
+
+// test #3
+var example3 = new String("Hello World");
+console.log(typeof example3); // object
+console.log(typeof emulateMessage(example3)); // string
+
+// test #4
+var example4 = {
+    "name": "John Smith",
+    "age": 43
+};
+console.log(typeof example4); // object
+console.log(typeof emulateMessage(example4)); // object
+
+// test #5
+function Animal (sType, nAge) {
+    this.type = sType;
+    this.age = nAge;
+}
+var example5 = new Animal("Cat", 3);
+alert(example5.constructor); // Animal
+alert(emulateMessage(example5).constructor); // Object
+ +

Значения, которые клонируются и совместно не используются, называются сообщениями. Как вы, возможно, знаете, сообщения могут быть отправлены в главную страницу и из нее, используя postMessage(), и {{domxref("MessageEvent.data", "data")}}, содержа данные, передаваемые из worker-а.

+ +

example.html: (главная страница):

+ +
var myWorker = new Worker("my_task.js");
+
+myWorker.onmessage = function (oEvent) {
+  console.log("Worker said : " + oEvent.data);
+};
+
+myWorker.postMessage("ali");
+ +

my_task.js (worker):

+ +
postMessage("I\'m working before postMessage(\'ali\').");
+
+onmessage = function (oEvent) {
+  postMessage("Hi " + oEvent.data);
+};
+ +

Алгоритм структурированного клонирования может принять JSON и некоторые вещи, которые JSON не может принять, например, циклические ссылки.

+ +

Примеры передачи данных

+ +

Пример #1: Расширенная передача JSON данных и создание системы коммутации

+ +

Если вам нужно передать сложные данные и вызвать множество различных функций как на главной странице, так и в worker-е, вы можете создать следующую систему.

+ +

В первую очередь мы создаем класс QueryableWorker, который принимает url worker-а, стандартный обработчик событий (defaultListener) и обработчик ошибок. Этот класс будет отслеживать всех обработчиков и поможет нам общаться с воркером.

+ +
function QueryableWorker(url, defaultListener, onError) {
+    var instance = this,
+        worker = new Worker(url),
+        listeners = {};
+
+    this.defaultListener = defaultListener || function() {};
+
+    if (onError) {worker.onerror = onError;}
+
+    this.postMessage = function(message) {
+        worker.postMessage(message);
+    }
+
+    this.terminate = function() {
+        worker.terminate();
+    }
+}
+
+ +

Затем мы добавляем методы добавления/удаления обработчиков.

+ +
this.addListeners = function(name, listener) {
+    listeners[name] = listener;
+}
+
+this.removeListeners = function(name) {
+    delete listeners[name];
+}
+
+ +

Здесь мы создадим у worker-а два простых события для примера: получение разницы двух чисел и создание оповещения через три секунды. Но сначала нам нужно реализовать метод sendQuery, который проверит есть ли вообще у worker-а обработчик, который мы собираемся вызвать.

+ +
/*
+  Эта функция принимает по крайней мере один аргумент: имя метода, который мы хотим вызвать.
+  Далее мы можем передать методу необходимые ему аргументы.
+ */
+this.sendQuery = function() {
+    if (arguments.length < 1) {
+         throw new TypeError('QueryableWorker.sendQuery takes at least one argument');
+         return;
+    }
+    worker.postMessage({
+        'queryMethod': arguments[0],
+        'queryArguments': Array.prototype.slice.call(arguments, 1)
+    });
+}
+
+ +

Завершим QueryableWorker методом onmessage.  Если worker имеет соответствующий метод, который мы запросили, он также должен вернуть соответствующий обработчик и аргументы, которые нам нужны. Останется лишь найти его в listeners:

+ +
worker.onmessage = function(event) {
+    if (event.data instanceof Object &&
+        event.data.hasOwnProperty('queryMethodListener') &&
+        event.data.hasOwnProperty('queryMethodArguments')) {
+        listeners[event.data.queryMethodListener].apply(instance, event.data.queryMethodArguments);
+    } else {
+        this.defaultListener.call(instance, event.data);
+    }
+}
+
+ +

Теперь к самому worker-у. Сначала следует определить эти два простых метода:

+ +
var queryableFunctions = {
+    getDifference: function(a, b) {
+        reply('printStuff', a - b);
+    },
+    waitSomeTime: function() {
+        setTimeout(function() {
+            reply('doAlert', 3, 'seconds');
+        }, 3000);
+    }
+}
+
+function reply() {
+    if (arguments.length < 1) {
+        throw new TypeError('reply - takes at least one argument');
+        return;
+    }
+    postMessage({
+        queryMethodListener: arguments[0],
+        queryMethodArguments: Array.prototype.slice.call(arguments, 1)
+    });
+}
+
+/* This method is called when main page calls QueryWorker's postMessage method directly*/
+function defaultReply(message) {
+    // do something
+}
+
+ +

И onmessage:

+ +
onmessage = function(event) {
+    if (event.data instanceof Object &&
+        event.data.hasOwnProperty('queryMethod') &&
+        event.data.hasOwnProperty('queryMethodArguments')) {
+        queryableFunctions[event.data.queryMethod]
+            .apply(self, event.data.queryMethodArguments);
+    } else {
+        defaultReply(event.data);
+    }
+}
+ +

Полный код примера:

+ +

example.html (основная страница):

+ +
<!doctype html>
+  <html>
+    <head>
+      <meta charset="UTF-8"  />
+      <title>MDN Example - Queryable worker</title>
+    <script type="text/javascript">
+    /*
+      QueryableWorker instances methods:
+        * sendQuery(queryable function name, argument to pass 1, argument to pass 2, etc. etc): calls a Worker's queryable function
+        * postMessage(string or JSON Data): see Worker.prototype.postMessage()
+        * terminate(): terminates the Worker
+        * addListener(name, function): adds a listener
+        * removeListener(name): removes a listener
+      QueryableWorker instances properties:
+        * defaultListener: the default listener executed only when the Worker calls the postMessage() function directly
+     */
+    function QueryableWorker(url, defaultListener, onError) {
+      var instance = this,
+      worker = new Worker(url),
+      listeners = {};
+
+      this.defaultListener = defaultListener || function() {};
+
+      if (onError) {worker.onerror = onError;}
+
+      this.postMessage = function(message) {
+        worker.postMessage(message);
+      }
+
+      this.terminate = function() {
+        worker.terminate();
+      }
+
+      this.addListener = function(name, listener) {
+        listeners[name] = listener;
+      }
+
+      this.removeListener = function(name) {
+        delete listeners[name];
+      }
+
+      /*
+        This functions takes at least one argument, the method name we want to query.
+        Then we can pass in the arguments that the method needs.
+      */
+      this.sendQuery = function() {
+        if (arguments.length < 1) {
+          throw new TypeError('QueryableWorker.sendQuery takes at least one argument');
+          return;
+        }
+        worker.postMessage({
+          'queryMethod': arguments[0],
+          'queryMethodArguments': Array.prototype.slice.call(arguments, 1)
+        });
+      }
+
+      worker.onmessage = function(event) {
+        if (event.data instanceof Object &&
+          event.data.hasOwnProperty('queryMethodListener') &&
+          event.data.hasOwnProperty('queryMethodArguments')) {
+          listeners[event.data.queryMethodListener].apply(instance, event.data.queryMethodArguments);
+        } else {
+          this.defaultListener.call(instance, event.data);
+        }
+      }
+    }
+
+    // your custom "queryable" worker
+    var myTask = new QueryableWorker('my_task.js');
+
+    // your custom "listeners"
+    myTask.addListener('printStuff', function (result) {
+      document.getElementById('firstLink').parentNode.appendChild(document.createTextNode('The difference is ' + result + '!'));
+    });
+
+    myTask.addListener('doAlert', function (time, unit) {
+      alert('Worker waited for ' + time + ' ' + unit + ' :-)');
+    });
+</script>
+</head>
+<body>
+  <ul>
+    <li><a id="firstLink" href="javascript:myTask.sendQuery('getDifference', 5, 3);">What is the difference between 5 and 3?</a></li>
+    <li><a href="javascript:myTask.sendQuery('waitSomeTime');">Wait 3 seconds</a></li>
+    <li><a href="javascript:myTask.terminate();">terminate() the Worker</a></li>
+  </ul>
+</body>
+</html>
+ +

my_task.js (код worker-а):

+ +
var queryableFunctions = {
+  // пример #1: получить разницу между двумя числами
+  getDifference: function(nMinuend, nSubtrahend) {
+      reply('printStuff', nMinuend - nSubtrahend);
+  },
+  // пример #2: подождать три секунды
+  waitSomeTime: function() {
+      setTimeout(function() { reply('doAlert', 3, 'seconds'); }, 3000);
+  }
+};
+
+// системные функции
+
+function defaultReply(message) {
+  // your default PUBLIC function executed only when main page calls the queryableWorker.postMessage() method directly
+  // do something
+}
+
+function reply() {
+  if (arguments.length < 1) { throw new TypeError('reply - not enough arguments'); return; }
+  postMessage({ 'queryMethodListener': arguments[0], 'queryMethodArguments': Array.prototype.slice.call(arguments, 1) });
+}
+
+onmessage = function(oEvent) {
+  if (oEvent.data instanceof Object && oEvent.data.hasOwnProperty('queryMethod') && oEvent.data.hasOwnProperty('queryMethodArguments')) {
+    queryableFunctions[oEvent.data.queryMethod].apply(self, oEvent.data.queryMethodArguments);
+  } else {
+    defaultReply(oEvent.data);
+  }
+};
+
+ +

Можно переключать содержимое каждой главной страницы -> worker и worker -> сообщение главной страницы. И имена свойств "queryMethod", "queryMethodListeners", "queryMethodArguments" могут быть любыми пока они согласуются с QueryableWorker и worker.

+ +

Передача данных с помощью передачи владения (передаваемые объекты)

+ +

Google Chrome 17+ and Firefox 18+ имеют дополнительную возможность передачи определенных типов объектов (передаваемые объекты реализующие {{domxref("Transferable")}} интерфейс) к или из worker-а с высокой призводительностью. Эти объекты передаются из одного контекста в другой без операций копирования, что приводит к значительному повышению производительности при отправке больших наборов данных. Думайте об этом как о передаче по ссылке в мире C/C++. Однако в отличии от передачи по ссылке, "версия" из вызывающего контекста больше недоступна после передачи. Владельцем становится новый контекст.  Для примера, после передачи {{domxref("ArrayBuffer")}} из главной страницы к worker-у,  исходный {{domxref("ArrayBuffer")}} очищается и более недоступен для использования.  Его содержание (в буквальном смысле) переносится в рабочий контекст.

+ +
// Create a 32MB "file" and fill it.
+var uInt8Array = new Uint8Array(1024*1024*32); // 32MB
+for (var i = 0; i < uInt8Array.length; ++i) {
+  uInt8Array[i] = i;
+}
+
+worker.postMessage(uInt8Array.buffer, [uInt8Array.buffer]);
+
+ +
+

Заметка: Для дополнительной информации о передаваемых объектах, производительности и поддержки для этого метода, читайте  Transferable Objects: Lightning Fast! на HTML5 Rocks.

+
+ +

Встроенные worker-ы

+ +

Не существует утвержденного способа встроить код worker-а в рамках веб-страницы, как элемент {{HTMLElement("script")}} делает для обычных скриптов. Но элемент {{HTMLElement("script")}}, который не имеет аттрибута src и аттрибута  type, которому не назначен выполняемый MIME type, можно считать блоком данных для использования JavaScript. Блок данных "Data blocks" — это более общее свойство HTML5, может содержать любые текстовые данные. Так, worker может быть встроен следующим образом:

+ +
<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8" />
+<title>MDN Example - Embedded worker</title>
+<script type="text/js-worker">
+  // Этот script НЕ БУДЕТ анализироваться JS движками, потому что  его MIME-тип text/js-worker.
+  var myVar = 'Hello World!';
+  // Остальная часть кода вашего воркера идет сюда.
+</script>
+<script type="text/javascript">
+  // Этот script БУДЕТ проанализирован JS движкам, потому что его MIME-тип text/javascript.
+  function pageLog(sMsg) {
+    // Use a fragment: browser will only render/reflow once.
+    var oFragm = document.createDocumentFragment();
+    oFragm.appendChild(document.createTextNode(sMsg));
+    oFragm.appendChild(document.createElement('br'));
+    document.querySelector('#logDisplay').appendChild(oFragm);
+  }
+</script>
+<script type="text/js-worker">
+  // Этот script НЕ БУДЕТ анализироваться JS движками, потому что его MIME-тип text/js-worker.
+  onmessage = function(oEvent) {
+    postMessage(myVar);
+  };
+  // Остальная часть кода вашего воркера идет сюда.
+</script>
+<script type="text/javascript">
+  // Этот script БУДЕТ проанализирован JS движкам, потому что его MIME-тип text/javascript.
+
+  // В прошлом...:
+  // blob builder существовал
+  // ... но теперь мы используем Blob...:
+  var blob = new Blob(Array.prototype.map.call(document.querySelectorAll('script[type=\'text\/js-worker\']'), function (oScript) { return oScript.textContent; }),{type: 'text/javascript'});
+
+  // Создание нового свойства document.worker, содержащего все наши "text/js-worker" скрипты.
+  document.worker = new Worker(window.URL.createObjectURL(blob));
+
+  document.worker.onmessage = function(oEvent) {
+    pageLog('Received: ' + oEvent.data);
+  };
+
+  // Запуск воркера.
+  window.onload = function() { document.worker.postMessage(''); };
+</script>
+</head>
+<body><div id="logDisplay"></div></body>
+</html>
+
+ +
Встраиваемый worker теперь внесен в новое custom свойство document.worker
+ +
+ +
Также стоит отметить, что вы также можете преобразовать функцию в BLOB-объект, а затем сгенерировать URL объекта из этого BLOB-объекта. Например:
+ +
function fn2workerURL(fn) {
+  var blob = new Blob(['('+fn.toString()+')()'], {type: 'application/javascript'})
+  return URL.createObjectURL(blob)
+}
+
+ +

Другие примеры

+ +

В этой секции представлено еще несколько примеров как использовать worker-ы.

+ +

Выполнение вычислений в фоне

+ +

Worker-ы в основном полезны для того, чтобы позволить вашему коду выполнять ресурсоемкие вычисления, не блокируя поток пользовательского интерфейса. В этом примере, worker используется для вычисления числа Фибоначчи.

+ +

Код JavaScript

+ +

Следующий код JavaScript хранится в файле "fibonacci.js", на который ссылается HTML в следующем разделе.

+ +
var results = [];
+
+function resultReceiver(event) {
+  results.push(parseInt(event.data));
+  if (results.length == 2) {
+    postMessage(results[0] + results[1]);
+  }
+}
+
+function errorReceiver(event) {
+  throw event.data;
+}
+
+onmessage = function(event) {
+  var n = parseInt(event.data);
+
+  if (n == 0 || n == 1) {
+    postMessage(n);
+    return;
+  }
+
+  for (var i = 1; i <= 2; i++) {
+    var worker = new Worker("fibonacci.js");
+    worker.onmessage = resultReceiver;
+    worker.onerror = errorReceiver;
+    worker.postMessage(n - i);
+  }
+ };
+ +

Worker устанавливает свойство onmessage для функции,  которая будет получать сообщения, отправленные при вызове postMessage() рабочего объекта (обратите внимание, что это отличается от определения глобальной переменной с таким именем или определения функции с таким именем. var onmessage и function onmessage будет определять глобальные свойства с этими именами , но они не будут регистрировать функцию для получения сообщений, отправленных веб-страницей, которая создала worker). Это запускает рекурсию, порождая новые копии для обработки каждой итерации вычисления.

+ +

HTML код

+ +
<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8"  />
+    <title>Test threads fibonacci</title>
+  </head>
+  <body>
+
+  <div id="result"></div>
+
+  <script language="javascript">
+
+    var worker = new Worker('fibonacci.js');
+
+    worker.onmessage = function(event) {
+      document.getElementById('result').textContent = event.data;
+      dump('Got: ' + event.data + '\n');
+    };
+
+    worker.onerror = function(error) {
+      dump('Worker error: ' + error.message + '\n');
+      throw error;
+    };
+
+    worker.postMessage('5');
+
+  </script>
+  </body>
+</html>
+ +

Веб-страница создает элемент div с ID result , который используется для отображения результата, а затем порождает worker. После порождения worker-а, обработчик onmessage настроен для отображения результатов путем установки содержимого элемента div, и обработчик onerror настроен на выброс сообщения об ошибке.

+ +

Наконец, сообщение отправляется worker-у, чтобы запустить его.

+ +

Попробуйте этот пример.

+ +

Выполнение веб I/O в фоне

+ +

Вы можете найти пример этого в статье Использование worker-ов в расширениях.

+ +

Разделение задач между множественными worker-ами

+ +

Поскольку многоядерные компьютеры становятся все более распространенными, часто бывает полезно разделить вычислительно сложные задачи между несколькими worker-ами, которые затем могут выполнить эти задачи на многопроцессорных ядрах.

+ +

Другие типы worker-ов

+ +

В дополнение к выделенным и совместно используемым web worker-ам доступны другие типы worker-ов:

+ + + +

Функции и интерфейсы доступные в worker-ах

+ +

Внутри web worker-а вы можете использовать большинство стандартных функций JavaScript, включая:

+ + + +

Главное, что вы не можете сделать в Worker это напрямую повлиять на родительскую страницу. Это включает в себя манипулирование DOM и использование объектов этой страницы. Вы должны сделать это косвенно, отправив сообщение обратно основному сценарию через {{domxref("DedicatedWorkerGlobalScope.postMessage")}}, а затем выполнив изменения оттуда.

+ +
+

Заметка: Для знакомства с  полным списком функций,  доступных для worker-ов, смотрите статью Функции и интерфейсы доступные worker-ам.

+
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('HTML WHATWG', '#toc-workers')}}{{Spec2('HTML WHATWG')}}Без изменений {{SpecName("Web Workers")}}.
{{SpecName('Web Workers')}}{{Spec2('Web Workers')}}Начальное определение.
+ +

Браузерная совместимость

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support4[1]{{CompatGeckoDesktop("1.9.1")}}10.010.6[1]4[2]
Shared workers4[1]{{CompatGeckoDesktop(29)}}{{CompatNo}}10.65
+ {{CompatNo}} 6.1[4]
Passing data using structured cloning13{{CompatGeckoDesktop(8)}}10.011.56
Passing data using transferable objects17 {{property_prefix("webkit")}}
+ 21
{{CompatGeckoDesktop(18)}}{{CompatNo}}156
Global {{domxref("window.URL", "URL")}}10[3]
+ 23
{{CompatGeckoDesktop(21)}}11156[3]
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)Firefox OS (Gecko)IE PhoneOpera MobileSafari Mobile
Basic support4.44[1]3.51.0.110.011.5[1]5.1[2]
Shared workers{{CompatNo}}4[1]81.0.1{{CompatNo}}{{CompatNo}}{{CompatNo}}
Passing data using structured cloning{{CompatNo}}481.0.1{{CompatNo}}{{CompatNo}}{{CompatNo}}
Passing data using transferable objects{{CompatNo}}{{CompatNo}}181.0.1{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

[1] Chrome и Opera выдают ошибку "Uncaught SecurityError: Failed to construct 'Worker': Script at 'file:///Path/to/worker.js' cannot be accessed from origin 'null'." когда вы пытаетесь запустить worker локально. Нужно быть на надлежащем домене.

+ +

[2] Начиная с Safari 7.1.2, вы можете вызывать console.log изнутри worker-а, но он ничего не выведет в консоль. Более старые версии Safari не ползволяют вызывать console.log изнутри worker-а

+ +

[3] Эта функция реализована с префиксом как webkitURL.

+ +

[4] Safari удалил поддержку SharedWorker.

+ +

Смотрите также

+ + diff --git a/files/ru/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html b/files/ru/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html new file mode 100644 index 0000000000..b5abccbe14 --- /dev/null +++ b/files/ru/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html @@ -0,0 +1,131 @@ +--- +title: Создание 3D объектов с помощью WebGL +slug: Web/API/WebGL_API/Tutorial/Создание_3D_объектов_с_помощью_WebGL +tags: + - WebGL + - Урок +translation_of: Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL +--- +

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL")}}

+ +

Давайте поместим наш квадрат в трехмерное пространство, добавив еще 5 граней, чтобы получить куб. Чтобы сделать это наиболее продуктивно, вместо рисования вершин непосредственным вызовом метода {{domxref("WebGLRenderingContext.drawArrays()", "gl.drawArrays()")}} , мы будем использовать массив вершин в виде таблицы и ссылаться на каждую вершину в этой таблице, чтобы определить положение каждой вершины грани, вызывая {{domxref("WebGLRenderingContext.drawElements()", "gl.drawElements()")}}.

+ +

Заметим: чтобы определить каждую грань необходимо четыре вершины, но каждая вершина принадлежит трем граням. Мы можем передавать намного меньше данных, построив список всех 24-х вершин, затем ссылаться на каждую из них в этом списке по её индексу, вместо того чтобы передавать все множество вершин. Если вы удивлены, почему нам нужны 24 вершины, а не только 8, так это потому, что каждое ребро принадлежит трем граням разных цветов, и каждая отдельная вершина должна иметь конкретный отдельный цвет - поэтому мы создадим 3 копии каждой вершины трех разных цветов, по одной для каждой грани.

+ +

Определение позиций вершин куба

+ +

Во первых, давайте построим буффер позиций вершин куба, обновив код в initBuffers(). Это в значительной степени то же самое как это было для квадрата, но несколько длиннее, так как здесь 24 вершины (4 с каждой стороны):

+ +
var vertices = [
+  // Передняя грань
+  -1.0, -1.0,  1.0,
+   1.0, -1.0,  1.0,
+   1.0,  1.0,  1.0,
+  -1.0,  1.0,  1.0,
+
+  // Задняя грань
+  -1.0, -1.0, -1.0,
+  -1.0,  1.0, -1.0,
+   1.0,  1.0, -1.0,
+   1.0, -1.0, -1.0,
+
+  // Верхняя грань
+  -1.0,  1.0, -1.0,
+  -1.0,  1.0,  1.0,
+   1.0,  1.0,  1.0,
+   1.0,  1.0, -1.0,
+
+  // Нижняя грань
+  -1.0, -1.0, -1.0,
+   1.0, -1.0, -1.0,
+   1.0, -1.0,  1.0,
+  -1.0, -1.0,  1.0,
+
+  // Правая грань
+   1.0, -1.0, -1.0,
+   1.0,  1.0, -1.0,
+   1.0,  1.0,  1.0,
+   1.0, -1.0,  1.0,
+
+  // Левая грань
+  -1.0, -1.0, -1.0,
+  -1.0, -1.0,  1.0,
+  -1.0,  1.0,  1.0,
+  -1.0,  1.0, -1.0
+];
+
+ +

Определение цветов вершин

+ +

Нам также нужно построить массив цветов для каждой из 24-х вершин. Этот код начинается с определения цветов для каждой грани, затем используется цикл для составления массива все всех цветов для каждой из вершин.

+ +
var colors = [
+  [1.0,  1.0,  1.0,  1.0],    // Front face: white
+  [1.0,  0.0,  0.0,  1.0],    // Back face: red
+  [0.0,  1.0,  0.0,  1.0],    // Top face: green
+  [0.0,  0.0,  1.0,  1.0],    // Bottom face: blue
+  [1.0,  1.0,  0.0,  1.0],    // Right face: yellow
+  [1.0,  0.0,  1.0,  1.0]     // Left face: purple
+];
+
+var generatedColors = [];
+
+for (j=0; j<6; j++) {
+  var c = colors[j];
+
+  for (var i=0; i<4; i++) {
+    generatedColors = generatedColors.concat(c);
+  }
+}
+
+cubeVerticesColorBuffer = gl.createBuffer();
+gl.bindBuffer(gl.ARRAY_BUFFER, cubeVerticesColorBuffer);
+gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(generatedColors), gl.STATIC_DRAW);
+
+ +

Определение массива элементов

+ +

Как только массив вершин сгенерирован, нам нужно построить массив элементов.

+ +
cubeVerticesIndexBuffer = gl.createBuffer();
+gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, cubeVerticesIndexBuffer);
+
+// Этот массив определяет каждую грань как два треугольника,
+// используя индексы в массиве вершин, чтобы определить позицию
+// каждого треугольника.
+
+var cubeVertexIndices = [
+  0,  1,  2,      0,  2,  3,    // front
+  4,  5,  6,      4,  6,  7,    // back
+  8,  9,  10,     8,  10, 11,   // top
+  12, 13, 14,     12, 14, 15,   // bottom
+  16, 17, 18,     16, 18, 19,   // right
+  20, 21, 22,     20, 22, 23    // left
+];
+
+// Теперь отправим массив элементов в GL
+
+gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,
+    new Uint16Array(cubeVertexIndices), gl.STATIC_DRAW);
+
+ +

Массив cubeVertexIndices определяет каждую грань как пару треугольников, сопоставляя каждой вершине треугольника индекс в массиве вершин куба. Таким образом куб можно представить как набор из 12 треугольников.

+ +

Рисование куба

+ +

Далее нам нужно обновить код нашей функции drawScene() , чтобы рисовать, используя буффер индексов куба, добавив новые вызовы {{domxref("WebGLRenderingContext.bindBuffer()", "gl.bindBuffer()")}} и {{domxref("WebGLRenderingContext.drawElements()", "gl.drawElements()")}}:

+ +
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, cubeVerticesIndexBuffer);
+setMatrixUniforms();
+gl.drawElements(gl.TRIANGLES, 36, gl.UNSIGNED_SHORT, 0);
+
+ +

Поскольку каждая грань нашего куба состоит из двух треугольников, где 6 вершин на каждой грани, или всего 36 вершин во всем кубе, даже если многие из них дублируются. Однако, поскольку наш массив индексов состоит из целых чисел, это не чрезмерное количество данных, посылаемых для каждого кадра анимации.

+ +

В данный момент у нас есть анимированный куб с гранями 6 разных цветов, который прыгает и вращается.

+ +

{{EmbedGHLiveSample('webgl-examples/tutorial/sample5/index.html', 670, 510) }}

+ +

View the complete code | Open this demo on a new page

+ +

{{PreviousNext("Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL")}}

diff --git "a/files/ru/web/api/webgl_api/tutorial/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_3d_\320\276\320\261\321\212\320\265\320\272\321\202\320\276\320\262_\321\201_\320\277\320\276\320\274\320\276\321\211\321\214\321\216_webgl/index.html" "b/files/ru/web/api/webgl_api/tutorial/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_3d_\320\276\320\261\321\212\320\265\320\272\321\202\320\276\320\262_\321\201_\320\277\320\276\320\274\320\276\321\211\321\214\321\216_webgl/index.html" deleted file mode 100644 index b5abccbe14..0000000000 --- "a/files/ru/web/api/webgl_api/tutorial/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_3d_\320\276\320\261\321\212\320\265\320\272\321\202\320\276\320\262_\321\201_\320\277\320\276\320\274\320\276\321\211\321\214\321\216_webgl/index.html" +++ /dev/null @@ -1,131 +0,0 @@ ---- -title: Создание 3D объектов с помощью WebGL -slug: Web/API/WebGL_API/Tutorial/Создание_3D_объектов_с_помощью_WebGL -tags: - - WebGL - - Урок -translation_of: Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL ---- -

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL")}}

- -

Давайте поместим наш квадрат в трехмерное пространство, добавив еще 5 граней, чтобы получить куб. Чтобы сделать это наиболее продуктивно, вместо рисования вершин непосредственным вызовом метода {{domxref("WebGLRenderingContext.drawArrays()", "gl.drawArrays()")}} , мы будем использовать массив вершин в виде таблицы и ссылаться на каждую вершину в этой таблице, чтобы определить положение каждой вершины грани, вызывая {{domxref("WebGLRenderingContext.drawElements()", "gl.drawElements()")}}.

- -

Заметим: чтобы определить каждую грань необходимо четыре вершины, но каждая вершина принадлежит трем граням. Мы можем передавать намного меньше данных, построив список всех 24-х вершин, затем ссылаться на каждую из них в этом списке по её индексу, вместо того чтобы передавать все множество вершин. Если вы удивлены, почему нам нужны 24 вершины, а не только 8, так это потому, что каждое ребро принадлежит трем граням разных цветов, и каждая отдельная вершина должна иметь конкретный отдельный цвет - поэтому мы создадим 3 копии каждой вершины трех разных цветов, по одной для каждой грани.

- -

Определение позиций вершин куба

- -

Во первых, давайте построим буффер позиций вершин куба, обновив код в initBuffers(). Это в значительной степени то же самое как это было для квадрата, но несколько длиннее, так как здесь 24 вершины (4 с каждой стороны):

- -
var vertices = [
-  // Передняя грань
-  -1.0, -1.0,  1.0,
-   1.0, -1.0,  1.0,
-   1.0,  1.0,  1.0,
-  -1.0,  1.0,  1.0,
-
-  // Задняя грань
-  -1.0, -1.0, -1.0,
-  -1.0,  1.0, -1.0,
-   1.0,  1.0, -1.0,
-   1.0, -1.0, -1.0,
-
-  // Верхняя грань
-  -1.0,  1.0, -1.0,
-  -1.0,  1.0,  1.0,
-   1.0,  1.0,  1.0,
-   1.0,  1.0, -1.0,
-
-  // Нижняя грань
-  -1.0, -1.0, -1.0,
-   1.0, -1.0, -1.0,
-   1.0, -1.0,  1.0,
-  -1.0, -1.0,  1.0,
-
-  // Правая грань
-   1.0, -1.0, -1.0,
-   1.0,  1.0, -1.0,
-   1.0,  1.0,  1.0,
-   1.0, -1.0,  1.0,
-
-  // Левая грань
-  -1.0, -1.0, -1.0,
-  -1.0, -1.0,  1.0,
-  -1.0,  1.0,  1.0,
-  -1.0,  1.0, -1.0
-];
-
- -

Определение цветов вершин

- -

Нам также нужно построить массив цветов для каждой из 24-х вершин. Этот код начинается с определения цветов для каждой грани, затем используется цикл для составления массива все всех цветов для каждой из вершин.

- -
var colors = [
-  [1.0,  1.0,  1.0,  1.0],    // Front face: white
-  [1.0,  0.0,  0.0,  1.0],    // Back face: red
-  [0.0,  1.0,  0.0,  1.0],    // Top face: green
-  [0.0,  0.0,  1.0,  1.0],    // Bottom face: blue
-  [1.0,  1.0,  0.0,  1.0],    // Right face: yellow
-  [1.0,  0.0,  1.0,  1.0]     // Left face: purple
-];
-
-var generatedColors = [];
-
-for (j=0; j<6; j++) {
-  var c = colors[j];
-
-  for (var i=0; i<4; i++) {
-    generatedColors = generatedColors.concat(c);
-  }
-}
-
-cubeVerticesColorBuffer = gl.createBuffer();
-gl.bindBuffer(gl.ARRAY_BUFFER, cubeVerticesColorBuffer);
-gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(generatedColors), gl.STATIC_DRAW);
-
- -

Определение массива элементов

- -

Как только массив вершин сгенерирован, нам нужно построить массив элементов.

- -
cubeVerticesIndexBuffer = gl.createBuffer();
-gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, cubeVerticesIndexBuffer);
-
-// Этот массив определяет каждую грань как два треугольника,
-// используя индексы в массиве вершин, чтобы определить позицию
-// каждого треугольника.
-
-var cubeVertexIndices = [
-  0,  1,  2,      0,  2,  3,    // front
-  4,  5,  6,      4,  6,  7,    // back
-  8,  9,  10,     8,  10, 11,   // top
-  12, 13, 14,     12, 14, 15,   // bottom
-  16, 17, 18,     16, 18, 19,   // right
-  20, 21, 22,     20, 22, 23    // left
-];
-
-// Теперь отправим массив элементов в GL
-
-gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,
-    new Uint16Array(cubeVertexIndices), gl.STATIC_DRAW);
-
- -

Массив cubeVertexIndices определяет каждую грань как пару треугольников, сопоставляя каждой вершине треугольника индекс в массиве вершин куба. Таким образом куб можно представить как набор из 12 треугольников.

- -

Рисование куба

- -

Далее нам нужно обновить код нашей функции drawScene() , чтобы рисовать, используя буффер индексов куба, добавив новые вызовы {{domxref("WebGLRenderingContext.bindBuffer()", "gl.bindBuffer()")}} и {{domxref("WebGLRenderingContext.drawElements()", "gl.drawElements()")}}:

- -
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, cubeVerticesIndexBuffer);
-setMatrixUniforms();
-gl.drawElements(gl.TRIANGLES, 36, gl.UNSIGNED_SHORT, 0);
-
- -

Поскольку каждая грань нашего куба состоит из двух треугольников, где 6 вершин на каждой грани, или всего 36 вершин во всем кубе, даже если многие из них дублируются. Однако, поскольку наш массив индексов состоит из целых чисел, это не чрезмерное количество данных, посылаемых для каждого кадра анимации.

- -

В данный момент у нас есть анимированный куб с гранями 6 разных цветов, который прыгает и вращается.

- -

{{EmbedGHLiveSample('webgl-examples/tutorial/sample5/index.html', 670, 510) }}

- -

View the complete code | Open this demo on a new page

- -

{{PreviousNext("Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL")}}

diff --git a/files/ru/web/api/webrtc_api/connectivity/index.html b/files/ru/web/api/webrtc_api/connectivity/index.html new file mode 100644 index 0000000000..7c4f173c05 --- /dev/null +++ b/files/ru/web/api/webrtc_api/connectivity/index.html @@ -0,0 +1,70 @@ +--- +title: WebRTC подключение +slug: Web/API/WebRTC_API/связь +translation_of: Web/API/WebRTC_API/Connectivity +--- +

{{WebRTCSidebar}}{{draft}}

+ +

Теперь, когда мы рассмотрели протоколы по отдельности, мы можем сложить их вместе. Эта статья описывает, как различные связанные с WebRTC протоколы взаимодействуют друг с другом для того, чтобы создать соединение и передать данные и/или медиа между узлами.

+ +
+

Эта страница требует серьёзной переделки для структурной целостности и полноты содержания. Много информации здесь - это хорошо, но организация являет собой путаницу, поскольку сейчас являет собой вид "местности разгрузки"(dumping ground).

+
+ +

Что  такое Предложение/Ответ и Канал сигнализации?

+ +

К сожалению, WebRTC не может создавать соединения без какого-либо сервера посередине. Мы называем его "каналом сигнализации". Это любого рода канал связи для обмена информацией перед установкой соединения, будь то электронная почта, почтовая открытка или почтовый голубь... Зависит от вас.
+  

+ +

Информация, которой мы должны обменяться - это "предложение" и "ответ", которые содержат SDP, упомянутую ниже.

+ +

Узел A, тот кто будет инициатором соединения, создаст "предложение". Затем отправит это "предложение" узлу B, используя выбранный "сигнальный канал". Узел B получит "предложение" от "сигнального канала" и создаст "ответ". Затем отправит его обратно узлу A посредством "сигнального канала".

+ +

Описания сессии

+ +

Конфигурация конечной точки WebRTC-соединения называется "описание сессии"(session description). Описание включает информацию о типе посылаемого медиа, его формате, используемом протоколе передачи, IP-адресе и порте конечной точки, и  другую информацию, необходимую для описания конечной точки передачи медиа. Эта информация обменивается и хранится с помощью "протокола описания сессии". Session Description Protocol({{Glossary("SDP")}}). Если вы хотите подробную информацию о формате данных SDP, вы можете найти её в {{RFC(2327)}}.

+ +

Когда пользователь запускает WebRTC вызов другого пользователя, создаётся специальное описание, называемое "предложение"(offer). Это описание включает всю информацию для соединения, о предлагаемой конфигурации вызывающего абонента. Получатель затем откликается "ответом"(answer), являющимся описанием его конца соединения. Таким образом, оба устройства разделяют друг с другом информацию, необходимую для того, чтобы обмениваться медиа данными. Этот обмен обрабатывается с помощью "интерактивного создания подключения". Interactive Connectivity Establishment{{Glossary("ICE")}}. ICE - протокол, который позволяет двум устройствам использовать посредника для обмена "предложениями"(offers) и "ответами"(answers), даже если эти два устройства разделены механизмом "преобразования сетевых адресов". ({{Glossary("NAT")}}(Network Address Translation).

+ +

Каждый узел, тогда, держит два описания под рукой: локальное описание (local description), описывающее себя и удалённое описание(remote description), описывающее другой конец соединения.

+ +

Процесс "предложение/ответ"(offer/answer) выполняется как, когда соединение впервые устанавливается, так и в любой момент, когда формат соединения или другая конфигурация нуждается в изменении. Независимо от того, является ли это новым соединением, или реконфигурированием существующего, это основные шаги, которые должны произойти для обмена "предложением"(offer) и "ответом"(answer). Пропустим ICE-слой на данный момент:

+ +
    +
  1. Вызывающий вызывает {{domxref("RTCPeerConnection.createOffer()")}} для создания "предложения"(offer)
  2. +
  3. Вызывающий вызывает {{domxref("RTCPeerConnection.setLocalDescription()")}} для установки этого "предложения" как локального описания (то есть описания локального конца соединения).
  4. +
  5. Вызывающий использует сигнальный сервер для передачи "предложения" к требуемому получателю вызова.
  6. +
  7. Получатель получает "предложение" и вызывает {{domxref("RTCPeerConnection.setRemoteDescription()")}} для записи его, как удалённого описания(описания другого конца соединения).
  8. +
  9. Получатель делает всякую настройку, которую должен сделать для его конца соединения, включая добавления исходящих потоков для соединения.
  10. +
  11. Получатель затем создаёт "ответ"(answer) посредством вызова {{domxref("RTCPeerConnection.createAnswer()")}}.
  12. +
  13. Получатель вызывает {{domxref("RTCPeerConnection.setLocalDescription()")}}, чтобы установить "ответ"(answer) в качестве локального описания. Получатель теперь знает конфигурацию обоих концов соединения.
  14. +
  15. Получатель использует сигнальный сервер для отправки "ответа"(answer) вызывающему.
  16. +
  17. Вызывающий получает "ответ"(answer).
  18. +
  19. Вызывающий вызывает {{domxref("RTCPeerConnection.setRemoteDescription()")}} для установки "ответа"(answer) как удалённого описания для его конца соединения. Теперь известна конфигурация обоих узлов. Медиа начинает течь в соответствии с настройками.
  20. +
+ +

Рассматриваемые и текущие описания

+ +

Спускаясь на один шаг глубже в процесс, мы находим, что localDescription и remoteDescription, свойства, возвращаемые эти двумя описаниями, не так просты, как выглядят. Потому что во время повторных переговоров(перезаключения) (renegotiation), "предложение"(offer) может быть отклонено, поскольку оно предлагает несовместимый формат. Необходимо, чтобы каждая конечная точка имела возможность предложить новый формат, но не переключаться на него, пока он не принят другим узлом. По этой причине, WebRTC использует "рассматриваемые" и "текущие" "описания".

+ +

"Текущее описание"(current description) (которое возвращается свойствами {{domxref("RTCPeerConnection.currentLocalDescription")}} и {{domxref("RTCPeerConnection.currentRemoteDescription")}}) представляет собой описание, в данный момент, фактически используемое соединением. Это самое недавнее соединение, которое обе стороны полностью согласились использовать.

+ +

"Рассматриваемое описание"(pending description) (возвращаемое {{domxref("RTCPeerConnection.pendingLocalDescription")}} и {{domxref("RTCPeerConnection.pendingRemoteDescription")}}) указывает на то описание, которое в настоящий момент находится на рассмотрении после вызова setLocalDescription() или setRemoteDescription(), соответственно.

+ +

При чтении описания (возвращаемого {{domxref("RTCPeerConnection.localDescription")}} и {{domxref("RTCPeerConnection.remoteDescription")}}), возвращаемым значением является значение pendingLocalDescription/pendingRemoteDescription, если есть рассматриваемое описание (то есть, рассматриваемое описание не null). В противном случае, возвращается текущее описание (currentLocalDescription/currentRemoteDescription).

+ +

При изменении описания путём вызова setLocalDescription() или setRemoteDescription(), указанное описание устанавливается как "рассматриваемое описание"(pending description), и WebRTC-слой начинает оценивать, действительно ли это приемлемо. После того, как предложенное описание было согласовано, значение currentLocalDescription или currentRemoteDescription изменяется на "рассматриваемое описание"(pending description), и pending description устанавливается снова в null, указывая, что "отложенного описания"(pending description) не существует.

+ +
+

pendingLocalDescription содержит не только "предложение" или "ответ" на стадии рассмотрения, но и каких-либо ICE-кандидатов, которые уже были собраны с тех пор, как "предложение" или "ответ" были созданы. Подобным образом, pendingRemoteDescription включает любых удалённых ICE-кандидатов, которые были предоставлены вызовами {{domxref("RTCPeerConnection.addIceCandidate()")}}.

+
+ +

Смотрите отдельные статьи по этим свойствам и методам для большей конкретики.

+ +

Что такое ICE-кандидат?

+ +

В дополнение к обмену информацией о медиа(обсуждённой выше в offer/answer и SDP), узлы должны обменяться информацией о сетевом соединении. Об этом известно как о ICE-кандидате и деталях доступных методов, которыми узел может общаться (непосредственно или через TURN-сервер).

+ +

Весь обмен в сложной схеме

+ +

A complete architectural diagram showing the whole WebRTC process.

diff --git a/files/ru/web/api/webrtc_api/protocols/index.html b/files/ru/web/api/webrtc_api/protocols/index.html new file mode 100644 index 0000000000..df618ab083 --- /dev/null +++ b/files/ru/web/api/webrtc_api/protocols/index.html @@ -0,0 +1,38 @@ +--- +title: Введение в протоколы WebRTC +slug: Web/API/WebRTC_API/протоколы +translation_of: Web/API/WebRTC_API/Protocols +--- +

{{APIRef("WebRTC")}}{{draft}}

+ +

В этой статье представлены протоколы, поверх которых построен WebRTC API.

+ +

ICE

+ +

Interactive Connectivity Establishment (ICE) "Установка интерактивного подключения" представляет собой каркас, позволяющий вашему веб-браузеру соединяться с узлами. Есть много причин, почему прямое соединение от узла A к узлу B просто не будет работать. Оно должно обойти межсетевые экраны, которые будут препятствовать открытию соединений, дать вам уникальный адрес, если, как в большинстве ситуаций, ваше устройство не имеет публичного IP-адреса, и передавать данные через сервер, если ваш маршрутизатор не позволяет вам напрямую соединяться с узлами. ICE использует некоторые из следующих технических приёмов, описанных ниже, для достижения этой цели:

+ +

STUN

+ +

Session Traversal Utilities for NAT (STUN) (акроним в акрониме) это протокол для нахождения и определения вашего публичного адреса и любых ограничений в вашем маршрутизаторе, которые препятствуют прямому соединению с узлом.

+ +

Клиент отправит запрос к STUN серверу в интернете, который ответит публичным адресом клиента и, доступен ли, или нет, клиент за NAT маршрутизатором.

+ +

An interaction between two users of a WebRTC application involving a STUN server.

+ +

NAT

+ +

Network Address Translation (NAT) используется для того, чтобы дать вашему устройству публичный IP-адрес. Маршрутизатор имеет публичный IP-адрес, а каждое устройство, подключённое к маршрутизатору имеет частный IP-адрес. Запросы будут транслированы от частного IP-адреса устройства к публичному IP-адресу маршрутизатора (с уникальным портом). Таким образом вам не нужен уникальный IP-адрес для каждого устройства, тем не менее, оно может быть обнаружено в интернете.

+ +

Некоторые маршрутизаторы имеют ограничения на то, кто может подключаться к устройствам в сети. Это может означать, что даже если мы имеем публичный IP-адрес, найденный STUN сервером, никто не может создать соединение. В этой ситуации нам нужно обратиться к TURN.

+ +

TURN

+ +

Некоторые маршрутизаторы, использующие NAT применяют ограничение, называемое "Симметричный NAT" (Symmetric NAT). Это означает, что маршрутизатор будет принимать соединения только от узлов, к которым вы ранее подключились.

+ +

Traversal Using Relays around NAT (TURN) предназначен для обхода ограничения "Симметричный NAT" путём открытия соединения с TURN сервером и ретрансляции всей информации через этот сервер. Вы создадите соединение с TURN сервером и сообщите всем узлам слать пакеты этому серверу, которые затем будут переправлены вам. Очевидно, что они приходят с некоторыми накладными расходами, поэтому это используется, только если нет других альтернатив.

+ +

An interaction between two users of a WebRTC application involving STUN and TURN servers.

+ +

SDP

+ +

Session Description Protocol (SDP)  - это стандарт для описания мультимедийного контента соединения,  как например: разрешение, форматы, кодеки, шифрование и т.д. Так, чтобы оба узла могли понять друг друга, после того как данные начнут передаваться. Это, в сущности, метаданные, описывающие содержимое, а не медиа контент сам по себе.

diff --git a/files/ru/web/api/webrtc_api/webrtc_basics/index.html b/files/ru/web/api/webrtc_api/webrtc_basics/index.html deleted file mode 100644 index 863dde7e14..0000000000 --- a/files/ru/web/api/webrtc_api/webrtc_basics/index.html +++ /dev/null @@ -1,351 +0,0 @@ ---- -title: Основы WebRTC -slug: Web/API/WebRTC_API/WebRTC_basics -translation_of: Web/API/WebRTC_API/Signaling_and_video_calling -translation_of_original: Web/API/WebRTC_API/WebRTC_basics ---- -

{{WebRTCSidebar}}

- -

{{Draft}}

- -
-

После того, как вы понимаете WebRTC architecture, вы можете прочитать эту статью, которая сопроводит вас через создание кросс-браузерного RTC приложения. К концу этой документации, вы должны иметь рабочие каналы соединения равноправных узлов ЛВС и передачи данных средств массовой информации.

-
- -

Полу-старое содержание, из

- -

RTCPeerConnection

- -

Материал здесь происходит от RTCPeerConnection; она может остаться здесь, или же  может переместится в другое место.

- -

Основы использования
- Базовое использование RTCPeerConnection предполагает переговоры связь между локальной машиной и удаленной машиной один генерируя Session Description Protocol для обмена между ними. Вызывающая программа начинает процесс, отправив предложение на удаленное устройство, которое реагирует либо принять или отклонить запрос на соединение.

- -

Обе стороны (вызывающий и вызываемый абонент) необходимо настроить свои собственные экземпляры RTCPeerConnection, чтобы представить их конец соединения равноправных узлов ЛВС:

- -
var pc = new RTCPeerConnection();
-pc.onaddstream = function(obj) {
-  var vid = document.createElement("video");
-  document.appendChild(vid);
-  vid.srcObject = obj.stream;
-}
-
-// функция помощник
-function endCall() {
-  var videos = document.getElementsByTagName("video");
-  for (var i = 0; i < videos.length; i++) {
-    videos[i].pause();
-  }
-
-  pc.close();
-
-
-function error(err) {
-  endCall();
-}
-
- -

При инициализации вызова

- -

Если вы один инициирующий вызов, вы будете использовать navigator.getUserMedia(), чтобы получить видеопоток, а затем добавить поток в RTCPeerConnection. Как только это было сделано, вызов RTCPeerConnection, чтобы создать предложение, настроить предложение, а затем отправить его на сервер, через  соединение которое было создано.

- -
// Получить список людей с сервера
-// Пользователь выбирает список людей, чтобы установить соединение с нужным человеком
-navigator.getUserMedia({video: true}, function(stream) {
-  // Добавление локального потока не вызовет onaddstream обратного вызова,
-  // так называют его вручную.
-  pc.onaddstream = e => video.src = URL.createObjectURL(e.stream);
-  pc.addStream(stream);
-
-  pc.createOffer(function(offer) {
-    pc.setLocalDescription(offer, function() {
-      // send the offer to a server to be forwarded to the friend you're calling.
-    }, error);
-  }, error);
-});
-
- -

Ответ на вызов

- -

На противоположном конце, друг получит предложение от сервера, используя любой протокол используется для того чтобы сделать это. После того, как предложение прибывает, {{domxref ("navigator.getUserMedia ()")}} вновь используется для создания потока, который добавляется к RTCPeerConnection. {{Domxref ("RTCSessionDescription")}} объект создается и установить в качестве удаленного описания с помощью вызова {{domxref ("RTCPeerConnection.setRemoteDescription ()")}}.

- -

Тогда ответ создается с помощью RTCPeerConnection.createAnswer () и отправляется обратно на сервер, который направляет его к вызывающему абоненту.

- -
var offer = getOfferFromFriend();
-navigator.getUserMedia({video: true}, function(stream) {
-  pc.onaddstream = e => video.src = URL.createObjectURL(e.stream);
-  pc.addStream(stream);
-
-  pc.setRemoteDescription(new RTCSessionDescription(offer), function() {
-    pc.createAnswer(function(answer) {
-      pc.setLocalDescription(answer, function() {
-        // send the answer to a server to be forwarded back to the caller (you)
-      }, error);
-    }, error);
-  }, error);
-});
-
- -

Ответ на вызов

- -

На противоположном конце, человек получит предложение от сервера, используя любой протокол используется для того чтобы сделать это. После того, как предложение принято, navigator.getUserMedia () вновь используется для создания потока, который добавляется к RTCPeerConnection.  объект создается и установить в качестве удаленного описания с помощью вызова {{domxref ("RTCPeerConnection.setRemoteDescription ()")}}.

- -

Тогда ответ создается с помощью RTCPeerConnection.createAnswer () и отправляется обратно на сервер, который направляет его к вызывающему абоненту.

- -
// ПК был создан раньше, когда мы сделали первоначальное предложение
-var offer = getResponseFromFriend();
-pc.setRemoteDescription(new RTCSessionDescription(offer), function() { }, error);
- -

Old content follows!

- -

Все, что находится ниже этого пункта,  потенциально устарело. Это по-прежнему находится в стадии рассмотрения  и возможного включения в другие части документации, если они все еще актуальны.

- -
-

Не используйте примеры на этой странице. Смотрите статью Signaling and video calling для работы, актуальный пример с использованием WebRTC media.

-
- -

Note

- -

Due to recent changes in the API there are many old examples that require fixing:

- - - -

The currently working example is:

- - - -

Implementation may be inferred from the specification.

- -

This remainder of this page contains outdated information as noted on bugzilla.

- -

Shims

- -

As you can imagine, with such an early API, you must use the browser prefixes and shim it to a common variable.

- -
var RTCPeerConnection = window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
-var IceCandidate = window.mozRTCIceCandidate || window.RTCIceCandidate;
-var SessionDescription = window.mozRTCSessionDescription || window.RTCSessionDescription;
-navigator.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia || navigator.webkitGetUserMedia;
- -

RTCPeerConnection

- -

This is the starting point to creating a connection with a peer. It accepts configuration options about ICE servers to use to establish a connection.

- -
var pc = new RTCPeerConnection(configuration);
- -

RTCConfiguration

- -

The {{domxref("RTCConfiguration")}} object contains information about which TURN and/or STUN servers to use for ICE. This is required to ensure most users can actually create a connection by avoiding restrictions in NAT and firewalls.

- -
var configuration = {
-    iceServers: [
-        {urls: "stun:23.21.150.121"},
-        {urls: "stun:stun.l.google.com:19302"},
-        {urls: "turn:numb.viagenie.ca", credential: "webrtcdemo", username: "louis%40mozilla.com"}
-    ]
-}
- -

Google runs a public STUN server that we can use. I also created an account at http://numb.viagenie.ca/ for a free TURN server to access. You may want to do the same and replace with your own credentials.

- -

ICECandidate

- - - -

After creating the PeerConnection and passing in the available STUN and TURN servers, an event will be fired once the ICE framework has found some “candidates” that will allow you to connect with a peer. This is known as an ICE Candidate and will execute a callback function on PeerConnection#onicecandidate.

- -
pc.onicecandidate = function (e) {
-    // candidate exists in e.candidate
-    if (!e.candidate) return;
-    send("icecandidate", JSON.stringify(e.candidate));
-};
- -

When the callback is executed, we must use the signal channel to send the Candidate to the peer. On Chrome, multiple ICE candidates are usually found, we only need one so I typically send the first one then remove the handler. Firefox includes the Candidate in the Offer SDP.

- -

Signal Channel

- -

Now that we have an ICE candidate, we need to send that to our peer so they know how to connect with us. However this leaves us with a chicken and egg situation; we want PeerConnection to send data to a peer but before that we need to send them metadata…

- -

This is where the signal channel comes in. It’s any method of data transport that allows two peers to exchange information. In this article, we’re going to use FireBase because it’s incredibly easy to setup and doesn't require any hosting or server-code.

- -

For now just imagine two methods exist: send() will take a key and assign data to it and recv() will call a handler when a key has a value.

- -

The structure of the database will look like this:

- -
{
-    "": {
-        "candidate:": …
-        "offer": …
-        "answer": …
-    }
-}
- -

Connections are divided by a roomId and will store 4 pieces of information, the ICE candidate from the offerer, the ICE candidate from the answerer, the offer SDP and the answer SDP.

- -

Offer

- -

An Offer SDP (Session Description Protocol) is metadata that describes to the other peer the format to expect (video, formats, codecs, encryption, resolution, size, etc etc).

- -

An exchange requires an offer from a peer, then the other peer must receive the offer and provide back an answer.

- -
pc.createOffer(function (offer) {
-    pc.setLocalDescription(offer, function() {
-        send("offer", JSON.stringify(pc.localDescription);
-    }, errorHandler);
-}, errorHandler, options);
- -

errorHandler

- -

If there was an issue generating an offer, this method will be executed with error details as the first argument.

- -
var errorHandler = function (err) {
-    console.error(err);
-};
- -
options
- -

Options for the offer SDP.

- -
var options = {
-    offerToReceiveAudio: true,
-    offerToReceiveVideo: true
-};
- -

offerToReceiveAudio/Video tells the other peer that you would like to receive video or audio from them. This is not needed for DataChannels.

- -

Once the offer has been generated we must set the local SDP to the new offer and send it through the signal channel to the other peer and await their Answer SDP.

- -

Answer

- -

An Answer SDP is just like an offer but a response; sort of like answering the phone. We can only generate an answer once we have received an offer.

- -
recv("offer", function (offer) {
-    offer = new SessionDescription(JSON.parse(offer))
-    pc.setRemoteDescription(offer);
-
-    pc.createAnswer(function (answer) {
-        pc.setLocalDescription(answer, function() {
-            send("answer", JSON.stringify(pc.localDescription));
-        }, errorHandler);
-    }, errorHandler);
-});
- -

DataChannel

- -

I will first explain how to use PeerConnection for the DataChannels API and transferring arbitrary data between peers.

- -

Note: At the time of this article, interoperability between Chrome and Firefox is not possible with DataChannels. Chrome supports a similar but private protocol and will be supporting the standard protocol soon.

- -
var channel = pc.createDataChannel(channelName, channelOptions);
- -

The offerer should be the peer who creates the channel. The answerer will receive the channel in the callback ondatachannel on PeerConnection. You must call createDataChannel() once before creating the offer.

- -

channelName

- -

This is a string that acts as a label for your channel name. Warning: Make sure your channel name has no spaces or Chrome will fail on createAnswer().

- -

channelOptions

- -
var channelOptions = {};
- -

Currently these options are not well supported on Chrome so you can leave this empty for now. Check the RFC for more information about the options.

- -

Channel Events and Methods

- -
onopen
- -

Executed when the connection is established.

- -
onerror
- -

Executed if there is an error creating the connection. First argument is an error object.

- -
channel.onerror = function (err) {
-    console.error("Channel Error:", err);
-};
- -
onmessage
- -
channel.onmessage = function (e) {
-    console.log("Got message:", e.data);
-}
- -

The heart of the connection. When you receive a message, this method will execute. The first argument is an event object which contains the data, time received and other information.

- -
onclose
- -

Executed if the other peer closes the connection.

- -

Binding the Events

- -

If you were the creator of the channel (meaning the offerer), you can bind events directly to the DataChannel you created with createChannel. If you are the answerer, you must use the ondatachannel callback on PeerConnection to access the same channel.

- -
pc.ondatachannel = function (e) {
-    e.channel.onmessage = function () { … };
-};
- -

The channel is available in the event object passed into the handler as e.channel.

- -
send()
- -
channel.send("Hi Peer!");
- -

This method allows you to send data directly to the peer! Amazing. You must send either String, Blob, ArrayBuffer or ArrayBufferView, so be sure to stringify objects.

- -
close()
- -

Close the channel once the connection should end. It is recommended to do this on page unload.

- -

Media

- -

Now we will cover transmitting media such as audio and video. To display the video and audio you must include a <video> tag on the document with the attribute autoplay.

- -

Get User Media

- -
<video id="preview" autoplay></video>
-
-var video = document.getElementById("preview");
-navigator.getUserMedia(constraints, function (stream) {
-    video.src = URL.createObjectURL(stream);
-}, errorHandler);
- -

constraints

- -

Constraints on what media types you want to return from the user.

- -
var constraints = {
-    video: true,
-    audio: true
-};
- -

If you just want an audio chat, remove the video member.

- -
errorHandler
- -

Executed if there is an error returning the requested media.

- -

Media Events and Methods

- -
addStream
- -

Add the stream from getUserMedia to the PeerConnection.

- -
pc.addStream(stream);
- -
onaddstream
- -
<video id="otherPeer" autoplay></video>
-
-var otherPeer = document.getElementById("otherPeer");
-pc.onaddstream = function (e) {
-    otherPeer.src = URL.createObjectURL(e.stream);
-};
- -

Executed when the connection has been setup and the other peer has added the stream to the peer connection with addStream. You need another <video> tag to display the other peer's media.

- -

The first argument is an event object with the other peer's media stream.

diff --git "a/files/ru/web/api/webrtc_api/\320\277\321\200\320\276\321\202\320\276\320\272\320\276\320\273\321\213/index.html" "b/files/ru/web/api/webrtc_api/\320\277\321\200\320\276\321\202\320\276\320\272\320\276\320\273\321\213/index.html" deleted file mode 100644 index df618ab083..0000000000 --- "a/files/ru/web/api/webrtc_api/\320\277\321\200\320\276\321\202\320\276\320\272\320\276\320\273\321\213/index.html" +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Введение в протоколы WebRTC -slug: Web/API/WebRTC_API/протоколы -translation_of: Web/API/WebRTC_API/Protocols ---- -

{{APIRef("WebRTC")}}{{draft}}

- -

В этой статье представлены протоколы, поверх которых построен WebRTC API.

- -

ICE

- -

Interactive Connectivity Establishment (ICE) "Установка интерактивного подключения" представляет собой каркас, позволяющий вашему веб-браузеру соединяться с узлами. Есть много причин, почему прямое соединение от узла A к узлу B просто не будет работать. Оно должно обойти межсетевые экраны, которые будут препятствовать открытию соединений, дать вам уникальный адрес, если, как в большинстве ситуаций, ваше устройство не имеет публичного IP-адреса, и передавать данные через сервер, если ваш маршрутизатор не позволяет вам напрямую соединяться с узлами. ICE использует некоторые из следующих технических приёмов, описанных ниже, для достижения этой цели:

- -

STUN

- -

Session Traversal Utilities for NAT (STUN) (акроним в акрониме) это протокол для нахождения и определения вашего публичного адреса и любых ограничений в вашем маршрутизаторе, которые препятствуют прямому соединению с узлом.

- -

Клиент отправит запрос к STUN серверу в интернете, который ответит публичным адресом клиента и, доступен ли, или нет, клиент за NAT маршрутизатором.

- -

An interaction between two users of a WebRTC application involving a STUN server.

- -

NAT

- -

Network Address Translation (NAT) используется для того, чтобы дать вашему устройству публичный IP-адрес. Маршрутизатор имеет публичный IP-адрес, а каждое устройство, подключённое к маршрутизатору имеет частный IP-адрес. Запросы будут транслированы от частного IP-адреса устройства к публичному IP-адресу маршрутизатора (с уникальным портом). Таким образом вам не нужен уникальный IP-адрес для каждого устройства, тем не менее, оно может быть обнаружено в интернете.

- -

Некоторые маршрутизаторы имеют ограничения на то, кто может подключаться к устройствам в сети. Это может означать, что даже если мы имеем публичный IP-адрес, найденный STUN сервером, никто не может создать соединение. В этой ситуации нам нужно обратиться к TURN.

- -

TURN

- -

Некоторые маршрутизаторы, использующие NAT применяют ограничение, называемое "Симметричный NAT" (Symmetric NAT). Это означает, что маршрутизатор будет принимать соединения только от узлов, к которым вы ранее подключились.

- -

Traversal Using Relays around NAT (TURN) предназначен для обхода ограничения "Симметричный NAT" путём открытия соединения с TURN сервером и ретрансляции всей информации через этот сервер. Вы создадите соединение с TURN сервером и сообщите всем узлам слать пакеты этому серверу, которые затем будут переправлены вам. Очевидно, что они приходят с некоторыми накладными расходами, поэтому это используется, только если нет других альтернатив.

- -

An interaction between two users of a WebRTC application involving STUN and TURN servers.

- -

SDP

- -

Session Description Protocol (SDP)  - это стандарт для описания мультимедийного контента соединения,  как например: разрешение, форматы, кодеки, шифрование и т.д. Так, чтобы оба узла могли понять друг друга, после того как данные начнут передаваться. Это, в сущности, метаданные, описывающие содержимое, а не медиа контент сам по себе.

diff --git "a/files/ru/web/api/webrtc_api/\321\201\320\262\321\217\320\267\321\214/index.html" "b/files/ru/web/api/webrtc_api/\321\201\320\262\321\217\320\267\321\214/index.html" deleted file mode 100644 index 7c4f173c05..0000000000 --- "a/files/ru/web/api/webrtc_api/\321\201\320\262\321\217\320\267\321\214/index.html" +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: WebRTC подключение -slug: Web/API/WebRTC_API/связь -translation_of: Web/API/WebRTC_API/Connectivity ---- -

{{WebRTCSidebar}}{{draft}}

- -

Теперь, когда мы рассмотрели протоколы по отдельности, мы можем сложить их вместе. Эта статья описывает, как различные связанные с WebRTC протоколы взаимодействуют друг с другом для того, чтобы создать соединение и передать данные и/или медиа между узлами.

- -
-

Эта страница требует серьёзной переделки для структурной целостности и полноты содержания. Много информации здесь - это хорошо, но организация являет собой путаницу, поскольку сейчас являет собой вид "местности разгрузки"(dumping ground).

-
- -

Что  такое Предложение/Ответ и Канал сигнализации?

- -

К сожалению, WebRTC не может создавать соединения без какого-либо сервера посередине. Мы называем его "каналом сигнализации". Это любого рода канал связи для обмена информацией перед установкой соединения, будь то электронная почта, почтовая открытка или почтовый голубь... Зависит от вас.
-  

- -

Информация, которой мы должны обменяться - это "предложение" и "ответ", которые содержат SDP, упомянутую ниже.

- -

Узел A, тот кто будет инициатором соединения, создаст "предложение". Затем отправит это "предложение" узлу B, используя выбранный "сигнальный канал". Узел B получит "предложение" от "сигнального канала" и создаст "ответ". Затем отправит его обратно узлу A посредством "сигнального канала".

- -

Описания сессии

- -

Конфигурация конечной точки WebRTC-соединения называется "описание сессии"(session description). Описание включает информацию о типе посылаемого медиа, его формате, используемом протоколе передачи, IP-адресе и порте конечной точки, и  другую информацию, необходимую для описания конечной точки передачи медиа. Эта информация обменивается и хранится с помощью "протокола описания сессии". Session Description Protocol({{Glossary("SDP")}}). Если вы хотите подробную информацию о формате данных SDP, вы можете найти её в {{RFC(2327)}}.

- -

Когда пользователь запускает WebRTC вызов другого пользователя, создаётся специальное описание, называемое "предложение"(offer). Это описание включает всю информацию для соединения, о предлагаемой конфигурации вызывающего абонента. Получатель затем откликается "ответом"(answer), являющимся описанием его конца соединения. Таким образом, оба устройства разделяют друг с другом информацию, необходимую для того, чтобы обмениваться медиа данными. Этот обмен обрабатывается с помощью "интерактивного создания подключения". Interactive Connectivity Establishment{{Glossary("ICE")}}. ICE - протокол, который позволяет двум устройствам использовать посредника для обмена "предложениями"(offers) и "ответами"(answers), даже если эти два устройства разделены механизмом "преобразования сетевых адресов". ({{Glossary("NAT")}}(Network Address Translation).

- -

Каждый узел, тогда, держит два описания под рукой: локальное описание (local description), описывающее себя и удалённое описание(remote description), описывающее другой конец соединения.

- -

Процесс "предложение/ответ"(offer/answer) выполняется как, когда соединение впервые устанавливается, так и в любой момент, когда формат соединения или другая конфигурация нуждается в изменении. Независимо от того, является ли это новым соединением, или реконфигурированием существующего, это основные шаги, которые должны произойти для обмена "предложением"(offer) и "ответом"(answer). Пропустим ICE-слой на данный момент:

- -
    -
  1. Вызывающий вызывает {{domxref("RTCPeerConnection.createOffer()")}} для создания "предложения"(offer)
  2. -
  3. Вызывающий вызывает {{domxref("RTCPeerConnection.setLocalDescription()")}} для установки этого "предложения" как локального описания (то есть описания локального конца соединения).
  4. -
  5. Вызывающий использует сигнальный сервер для передачи "предложения" к требуемому получателю вызова.
  6. -
  7. Получатель получает "предложение" и вызывает {{domxref("RTCPeerConnection.setRemoteDescription()")}} для записи его, как удалённого описания(описания другого конца соединения).
  8. -
  9. Получатель делает всякую настройку, которую должен сделать для его конца соединения, включая добавления исходящих потоков для соединения.
  10. -
  11. Получатель затем создаёт "ответ"(answer) посредством вызова {{domxref("RTCPeerConnection.createAnswer()")}}.
  12. -
  13. Получатель вызывает {{domxref("RTCPeerConnection.setLocalDescription()")}}, чтобы установить "ответ"(answer) в качестве локального описания. Получатель теперь знает конфигурацию обоих концов соединения.
  14. -
  15. Получатель использует сигнальный сервер для отправки "ответа"(answer) вызывающему.
  16. -
  17. Вызывающий получает "ответ"(answer).
  18. -
  19. Вызывающий вызывает {{domxref("RTCPeerConnection.setRemoteDescription()")}} для установки "ответа"(answer) как удалённого описания для его конца соединения. Теперь известна конфигурация обоих узлов. Медиа начинает течь в соответствии с настройками.
  20. -
- -

Рассматриваемые и текущие описания

- -

Спускаясь на один шаг глубже в процесс, мы находим, что localDescription и remoteDescription, свойства, возвращаемые эти двумя описаниями, не так просты, как выглядят. Потому что во время повторных переговоров(перезаключения) (renegotiation), "предложение"(offer) может быть отклонено, поскольку оно предлагает несовместимый формат. Необходимо, чтобы каждая конечная точка имела возможность предложить новый формат, но не переключаться на него, пока он не принят другим узлом. По этой причине, WebRTC использует "рассматриваемые" и "текущие" "описания".

- -

"Текущее описание"(current description) (которое возвращается свойствами {{domxref("RTCPeerConnection.currentLocalDescription")}} и {{domxref("RTCPeerConnection.currentRemoteDescription")}}) представляет собой описание, в данный момент, фактически используемое соединением. Это самое недавнее соединение, которое обе стороны полностью согласились использовать.

- -

"Рассматриваемое описание"(pending description) (возвращаемое {{domxref("RTCPeerConnection.pendingLocalDescription")}} и {{domxref("RTCPeerConnection.pendingRemoteDescription")}}) указывает на то описание, которое в настоящий момент находится на рассмотрении после вызова setLocalDescription() или setRemoteDescription(), соответственно.

- -

При чтении описания (возвращаемого {{domxref("RTCPeerConnection.localDescription")}} и {{domxref("RTCPeerConnection.remoteDescription")}}), возвращаемым значением является значение pendingLocalDescription/pendingRemoteDescription, если есть рассматриваемое описание (то есть, рассматриваемое описание не null). В противном случае, возвращается текущее описание (currentLocalDescription/currentRemoteDescription).

- -

При изменении описания путём вызова setLocalDescription() или setRemoteDescription(), указанное описание устанавливается как "рассматриваемое описание"(pending description), и WebRTC-слой начинает оценивать, действительно ли это приемлемо. После того, как предложенное описание было согласовано, значение currentLocalDescription или currentRemoteDescription изменяется на "рассматриваемое описание"(pending description), и pending description устанавливается снова в null, указывая, что "отложенного описания"(pending description) не существует.

- -
-

pendingLocalDescription содержит не только "предложение" или "ответ" на стадии рассмотрения, но и каких-либо ICE-кандидатов, которые уже были собраны с тех пор, как "предложение" или "ответ" были созданы. Подобным образом, pendingRemoteDescription включает любых удалённых ICE-кандидатов, которые были предоставлены вызовами {{domxref("RTCPeerConnection.addIceCandidate()")}}.

-
- -

Смотрите отдельные статьи по этим свойствам и методам для большей конкретики.

- -

Что такое ICE-кандидат?

- -

В дополнение к обмену информацией о медиа(обсуждённой выше в offer/answer и SDP), узлы должны обменяться информацией о сетевом соединении. Об этом известно как о ICE-кандидате и деталях доступных методов, которыми узел может общаться (непосредственно или через TURN-сервер).

- -

Весь обмен в сложной схеме

- -

A complete architectural diagram showing the whole WebRTC process.

diff --git a/files/ru/web/api/websockets_api/index.html b/files/ru/web/api/websockets_api/index.html new file mode 100644 index 0000000000..8e6c614a0b --- /dev/null +++ b/files/ru/web/api/websockets_api/index.html @@ -0,0 +1,58 @@ +--- +title: WebSockets +slug: WebSockets +tags: + - NeedsBrowserCompatibility + - NeedsTranslation + - References + - TopicStub + - WebSockets +translation_of: Web/API/WebSockets_API +--- +

Вебсокеты это продвинутая технология, позволяющая открыть постоянное двунаправленное сетевое соединение между браузером пользователя и сервером. С помощью его API вы можете отправить сообщение на сервер и получить ответ без выполнения http запроса, причем этот процесс будет событийно-управляемым.

+ +
+
+

Документация

+ +
+
Writing WebSocket client applications
+
Учебник описывающий как написать WebSocket клиента работающего в браузере.
+
Справочник по WebSocket
+
A reference to the client-side WebSocket API.
+
(TBD) Writing WebSocket servers
+
A guide to writing server-side code to handle the WebSocket protocol.
+
+ +

View All...

+
+ +
+

Tools

+ + + + + + +
+
+ +

Совместимость с браузерами

+ +

{{Compat("api.WebSocket")}}

+ +

Смотрите также

+ + diff --git a/files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html b/files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html new file mode 100644 index 0000000000..5eaca515c2 --- /dev/null +++ b/files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html @@ -0,0 +1,195 @@ +--- +title: Написание клиентских приложений с помощью вебсокетов +slug: WebSockets/Writing_WebSocket_client_applications +translation_of: Web/API/WebSockets_API/Writing_WebSocket_client_applications +--- +

{{ draft() }}

+ +

Вебсокеты - технология, которя позволяет открыть интерактивную сессию общения между браузером пользователя и сервером. Соединяясь через вебсокеты, веб-приложения могут осуществлять взаимодействие в реальном времени вместо того, чтобы делать запросы к клиенту о входящих/исходящих изменениях.

+ +
Замечание: У нас есть работающий пример чата, части кода из которого используются в статье. Пример будет доступен, когда инфраструктура сайта сможет должным образом поддерживать хостинг примеров с использованием вебсокетов.
+ +

Доступность вебсокетов

+ +

API вебсокетов доступно в Javascript коде, область видимости которого включает объект DOM {{ domxref("Window") }} или любой объект, реализующий {{ domxref("WorkerUtils") }}; это означает, что вы можете использовать Web Workers.

+ +
Замечание: API вебсокетов (как и протокол лежащий в его основе) всё ещё проходят этап активной разработки; в настоящее время существует много проблем совместимости с разными браузерами (и даже с разными релизами одного и того же браузера).
+ +

Создание объекта WebSocket

+ +

Чтобы общаться через протокол вебсокетов необходимо создать объект WebSocket; при его создании автоматически происходит попытка открыть соединение с сервером.

+ +

Конструктор WebSocket принимает один обязательный и один необязательный параметр:

+ +
WebSocket WebSocket(
+  in DOMString url,
+  in optional DOMString protocols
+);
+
+WebSocket WebSocket(
+  in DOMString url,
+  in optional DOMString[] protocols
+);
+
+ +
+
url
+
URL, с которым происходит соединение; это должен быть URL вебсокет-сервера.
+
protocols {{ optional_inline() }}
+
Может быть одной строкой протокола или массивом таких строк. Эти строки используют для индикации под-протоколов; таким образом, один сервер может реализовывать несколько под-протоколов вебсокетов (к примеру, вам может потребоваться, чтобы сервер мог обрабатывать разные типы взаимодействий в зависимости от определённого под-протокола). Если вы не укажете строку протокола, то будет передана пустая строка.
+
+ +

В конструкторе могут возникать следующие исключения:

+ +
+
SECURITY_ERR
+
Порт, к которому проводится подключение, заблокирован.
+
+ +
+
+ +

Ошибки подключения

+ +

Если ошибка случается во время попытки подключения, то в объект WebSocket сначала посылается простое событие с именем «error» (таким образом, задействуя обработчик onerror), потом - событие CloseEvent  (таким образом, задействуя обработчик onclose) чтобы обозначить причину закрытия соединения.

+ +

Однако, начиная с версии Firefox 11, типичным является получение в консоль от платформы Mozilla расширенного сообщения об обшибке и кода завершения, как то определено в RFC 6455, Section 7.4 посредством CloseEvent.

+ +

Примеры

+ +

Этот простой пример создает новый WebSocket, подключаемый к серверу ws://www.example.com/socketserver. В данном примере в конструктор сокета в качестве дополнительного параметра передается пользовательский протокол "protocolOne", хотя эта часть может быть опущена.

+ +
var exampleSocket = new WebSocket("ws://www.example.com/socketserver", "protocolOne");
+
+ +

После выполнения функции, exampleSocket.readyState будет иметь значение CONNECTING. readyState изменится на OPEN как только соединение станет готовым к передаче данных.

+ +

Если нужно открыть соединение, поддерживающее несколько протоколов, можно передать массив протоколов:

+ +
var exampleSocket = new WebSocket("ws://www.example.com/socketserver", ["protocolOne", "protocolTwo"]);
+
+ +

Когда соединение установлено (что соответствует, readyState OPEN), exampleSocket.protocol сообщит, какой протокол выбрал сервер.

+ +

In the above examples ws has replaced http, similarly wss replaces https. Establishing a WebSocket relies on the HTTP Upgrade mechanism, so the request for the protocol upgrade is implicit when we address the HTTP server as ws://www.example.com or wss://www.example.com.

+ +

Отправка данных на сервер

+ +

Однажды открыв соединение, вы можете передавать данные на сервер. Для осуществления этого, вызовите метод send() объекта WebSocket  для каждого сообщение, которое желаете отправить:

+ +
exampleSocket.send("Here's some text that the server is urgently awaiting!");
+
+ +

Вы можете пересылать данные в виде строки, {{ domxref("Blob") }}, так и ArrayBuffer.

+ +
Note: Prior to version 11, Firefox only supported sending data as a string.
+ +

As establishing a connection is asynchronous and prone to failure there is no guarantee that calling the send() method immediately after creating a WebSocket object will be successful. We can at least be sure that attempting to send data only takes place once a connection is established by defining an onopen handler to do the work:

+ +
exampleSocket.onopen = function (event) {
+  exampleSocket.send("Here's some text that the server is urgently awaiting!");
+};
+
+ +

Using JSON to transmit objects

+ +

One handy thing you can do is use JSON to send reasonably complex data to the server. For example, a chat program can interact with a server using a protocol implemented using packets of JSON-encapsulated data:

+ +
// Send text to all users through the server
+function sendText() {
+  // Construct a msg object containing the data the server needs to process the message from the chat client.
+  var msg = {
+    type: "message",
+    text: document.getElementById("text").value,
+    id:   clientID,
+    date: Date.now()
+  };
+
+  // Send the msg object as a JSON-formatted string.
+  exampleSocket.send(JSON.stringify(msg));
+
+  // Blank the text input element, ready to receive the next line of text from the user.
+  document.getElementById("text").value = "";
+}
+
+ +

Receiving messages from the server

+ +

WebSockets is an event-driven API; when messages are received, a "message" event is delivered to the onmessage function. To begin listening for incoming data, you can do something like this:

+ +
exampleSocket.onmessage = function (event) {
+  console.log(event.data);
+}
+
+ +

Receiving and interpreting JSON objects

+ +

Let's consider the chat client application first alluded to in {{ anch("Using JSON to transmit objects") }}. There are assorted types of data packets the client might receive, such as:

+ + + +

The code that interprets these incoming messages might look like this:

+ +
exampleSocket.onmessage = function(event) {
+  var f = document.getElementById("chatbox").contentDocument;
+  var text = "";
+  var msg = JSON.parse(event.data);
+  var time = new Date(msg.date);
+  var timeStr = time.toLocaleTimeString();
+
+  switch(msg.type) {
+    case "id":
+      clientID = msg.id;
+      setUsername();
+      break;
+    case "username":
+      text = "<b>User <em>" + msg.name + "</em> signed in at " + timeStr + "</b><br>";
+      break;
+    case "message":
+      text = "(" + timeStr + ") <b>" + msg.name + "</b>: " + msg.text + "<br>";
+      break;
+    case "rejectusername":
+      text = "<b>Your username has been set to <em>" + msg.name + "</em> because the name you chose is in use.</b><br>"
+      break;
+    case "userlist":
+      var ul = "";
+      for (i=0; i < msg.users.length; i++) {
+        ul += msg.users[i] + "<br>";
+      }
+      document.getElementById("userlistbox").innerHTML = ul;
+      break;
+  }
+
+  if (text.length) {
+    f.write(text);
+    document.getElementById("chatbox").contentWindow.scrollByPages(1);
+  }
+};
+
+ +

Here we use JSON.parse() to convert the JSON object back into the original object, then examine and act upon its contents.

+ +

Text data format

+ +

Text received over a WebSocket connection is in UTF-8 format.

+ +

Prior to Gecko 9.0 {{ geckoRelease("9.0") }}, certain non-characters in otherwise valid UTF-8 text would cause the connection to be terminated. Now Gecko permits these values.

+ +

Closing the connection

+ +

When you've finished using the WebSocket connection, call the WebSocket method close():

+ +
exampleSocket.close();
+
+ +

It may be helpful to examine the socket's bufferedAmount attribute before attempting to close the connection to determine if any data has yet to be transmitted on the network.

+ +

Security considerations

+ +

WebSockets should not be used in a mixed content environment; that is, you shouldn't open a non-secure WebSocket connection from a page loaded using HTTPS or vice-versa. In fact, some browsers explicitly forbid this, including Firefox 8 and later.

+ +

{{ languages ( {"zh-tw": "zh_tw/WebSockets/Writing_WebSocket_client_applications"} ) }}

diff --git a/files/ru/web/api/window/domcontentloaded_event/index.html b/files/ru/web/api/window/domcontentloaded_event/index.html new file mode 100644 index 0000000000..7702dcfd24 --- /dev/null +++ b/files/ru/web/api/window/domcontentloaded_event/index.html @@ -0,0 +1,146 @@ +--- +title: DOMContentLoaded +slug: Web/Events/DOMContentLoaded +tags: + - события +translation_of: Web/API/Window/DOMContentLoaded_event +--- +

Событие DOMContentLoaded происходит когда весь HTML был полностью загружен и пройден парсером, не дожидаясь окончания загрузки таблиц стилей, изображений и фреймов. Значительно отличающееся от него событие load используется для отслеживания только полностью загруженной страницы. Широко распространённой ошибкой является использование load в ситуации когда DOMContentLoaded является более подходящим, будьте внимательны.

+ +

{{Note("Синхронный JavaScript останавливает парсинг DOM.")}}

+ +

{{Note("Существуют различные библиотеки, как общего назначения так и специализированные, предлагающие кросс-браузерные методы, позволяющие определить, что DOM готов к использованию.")}}

+ +

Ускорение работы

+ +

Если вы хотите чтобы DOM был пройден парсером насколько возможно быстро, сразу после запроса пользователем страницы, вы можете попробовать выполнять JavaScript асинхронно и оптимизировать загрузку таблиц стилей которые обычно замедляют загрузку документа поскольку загружаясь одновременно "крадут" трафик у основного документа.

+ +

Основная информация

+ +
+
Спецификация
+
HTML5
+
Интерфейс 
+
Event
+
Всплывает
+
Да
+
Отменяемое
+
Да (несмотря на то, что в спецификации указано как простое событие, которое не является отменяемым)
+
Цель 
+
Document
+
Default Action
+
Нет.
+
+ +

Свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СвойствоТипОписание
target {{readonlyInline}}{{domxref("EventTarget")}}The event target (the topmost target in the DOM tree).
type {{readonlyInline}}{{domxref("DOMString")}}Тип события.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Возможно ли отменить событие.
+ +

Пример

+ +
<script>
+  document.addEventListener("DOMContentLoaded", function(event) {
+    console.log("DOM fully loaded and parsed");
+  });
+</script>
+
+ +
<script>
+  document.addEventListener("DOMContentLoaded", function(event) {
+    console.log("DOM fully loaded and parsed");
+  });
+
+for(var i=0; i<1000000000; i++)
+{} // this synchronous script is going to delay parsing of the DOM. So the DOMContentLoaded event is going to launch later.
+</script>
+
+ +

Поддержка браузерами

+ +

{{CompatibilityTable}}

+ + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка1.0[1]{{CompatGeckoDesktop("1")}}[1]9.0[2]9.03.1[1]
+ + + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка{{CompatVersionUnknown}}[1]{{CompatGeckoMobile("1")}}[1]{{CompatUnknown}}[2]{{CompatVersionUnknown}}{{CompatVersionUnknown}}[1]
+ +

[1] Всплытие для этого события поддерживается как минимум с версий Gecko 1.9.2, Chrome 6, и Safari 4.

+ +

[2] Internet Explorer 8 поддерживает событие readystatechange, которое можно использовать для определения готовности DOM. В более ранних версиях Internet Explorer,это событие можно определить циклическим выполнением document.documentElement.doScroll("left");, это событие будет выбрасывать ошибку если DOM не готов.

+ +

Связанные события

+ + diff --git a/files/ru/web/api/window/load_event/index.html b/files/ru/web/api/window/load_event/index.html new file mode 100644 index 0000000000..a8d456806d --- /dev/null +++ b/files/ru/web/api/window/load_event/index.html @@ -0,0 +1,88 @@ +--- +title: load +slug: Web/Events/load +translation_of: Web/API/Window/load_event +--- +

Событие load происходит когда ресурс и его зависимые ресурсы закончили загружаться.

+ +

General info

+ +
+
Спецификация
+
DOM L3
+
Интерфейс
+
UIEvent
+
Всплывает
+
Да
+
Отменяемое
+
Нет
+
Цель
+
Window
+
Default Action
+
Нет.
+
+ +

Свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}EventTargetThe event target (the topmost target in the DOM tree).
type {{readonlyInline}}DOMStringThe type of event.
bubbles {{readonlyInline}}BooleanWhether the event normally bubbles or not.
cancelable {{readonlyInline}}BooleanWhether the event is cancellable or not.
view {{readonlyInline}}WindowProxydocument.defaultView (window of the document)
detail {{readonlyInline}}long (float)0.
+ +

Пример

+ +
<script>
+  window.addEventListener("load", function(event) {
+    console.log("All resources finished loading!");
+  });
+</script>
+
+ +

 

+ +

Связанные события

+ + diff --git a/files/ru/web/api/window/requestanimationframe/index.html b/files/ru/web/api/window/requestanimationframe/index.html new file mode 100644 index 0000000000..d451cae62f --- /dev/null +++ b/files/ru/web/api/window/requestanimationframe/index.html @@ -0,0 +1,92 @@ +--- +title: window.requestAnimationFrame() +slug: DOM/window.requestAnimationFrame +tags: + - Анимация +translation_of: Web/API/window/requestAnimationFrame +--- +
{{APIRef}}
+ +

window.requestAnimationFrame указывает браузеру на то, что вы хотите произвести анимацию, и просит его запланировать перерисовку на следующем кадре анимации. В качестве параметра метод получает функцию, которая будет вызвана перед перерисовкой.

+ +
Заметка: Ваш callback метод сам должен вызвать requestAnimationFrame() иначе анимация остановится.
+ +

Вы должны вызывать этот метод всякий раз, когда готовы обновить анимацию на экране, чтобы запросить планирование анимации. Обычно запросы происходят 60 раз в секунду, но чаще всего совпадают с частотой обновления экрана. В большинстве браузеров в фоновых вкладках или скрытых <iframe>, вызовы requestAnimationFrame() приостанавливаются, для того, чтобы повысить производительность и время работы батареи.

+ +

Callback методу передаётся один аргумент, {{domxref("DOMHighResTimeStamp")}}, который содержит текущее время (количество миллисекунд, прошедших с момента time origin). Когда callback-и, отправленные в очередь с помощью requestAnimationFrame() начинают вызывать несколько callback-ов в одном кадре, каждый получает одинаковый timestamp, хотя для вычисления каждого callback было затрачено время. Этот timestamp - десятичное число в миллисекундах, но с минимальной точностью в 1ms (1000 µs).

+ +

Синтаксис

+ +
window.requestAnimationFrame(callback);
+ +

Параметры

+ +
+
callback
+
Функция, которая будет вызвана, когда придёт время обновить вашу анимацию на следующей перерисовке.
+
element {{ optional_inline() }}
+
Необязательный параметр (не используется в Firefox или IE), определяющий элемент, который визуально содержит всю анимацию. Для canvas'а и WebGL'a им должен быть {{ HTMLElement("canvas") }}. Для других элементов вы можете опустить этот параметр для чуть лучшего пользовательского опыта.
+
+ +

Возвращаемое значение

+ +

requestID — длинное целое, являющееся уникальным идентификатором для записи, содержащей callback. Оно не равно нулю, но других предположений о его значении делать не следует. Вы можете передать его в {{ domxref("window.cancelAnimationFrame()") }} для отмены вызова.

+ +

Пример

+ +
var start = null;
+var element = document.getElementById('SomeElementYouWantToAnimate');
+
+function step(timestamp) {
+  if (!start) start = timestamp;
+  var progress = timestamp - start;
+  element.style.transform = 'translateX(' + Math.min(progress / 10, 200) + 'px)';
+  if (progress < 2000) {
+    window.requestAnimationFrame(step);
+  }
+}
+
+window.requestAnimationFrame(step);
+ +

Примечание

+ +

В Edge версиях младше 17 и в Internet Explorer не надежно запускать requestAnimationFrame перед циклом рисования.

+ +

Спецификация

+ + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('HTML WHATWG', '#animation-frames', 'requestAnimationFrame')}}{{Spec2('HTML WHATWG')}}Без изменений, заменяет предыдущую.
{{SpecName('RequestAnimationFrame', '#dom-windowanimationtiming-requestanimationframe', 'requestAnimationFrame')}}{{Spec2('RequestAnimationFrame')}}Первоначальное описание.
+ +

Браузерная совместимость

+ +

{{Compat("api.Window.requestAnimationFrame")}}

+ +

Смотрите также

+ + diff --git a/files/ru/web/api/window/unhandledrejection_event/index.html b/files/ru/web/api/window/unhandledrejection_event/index.html new file mode 100644 index 0000000000..5248e75748 --- /dev/null +++ b/files/ru/web/api/window/unhandledrejection_event/index.html @@ -0,0 +1,49 @@ +--- +title: unhandledrejection +slug: Web/Events/unhandledrejection +translation_of: Web/API/Window/unhandledrejection_event +--- +

Событие unhandledrejection происходит, когда {{jsxref("Promise")}} завершен с ошибкой, но на данную ошибку не установлен обработчик.

+ + + + + + + + + + + + + + + + + + + + +
ВсплытиеНет
Возможность отменыНет
Target objectsdefaultView
Интерфейс{{domxref("PromiseRejectionEvent")}}
+ +

Пример

+ +
window.addEventListener("unhandledrejection", function (event) {
+  console.warn("Внимание: Необработанная ошибка Promise. Позор вам! Причина: "
+               + event.reason);
+});
+
+ +

Inheritance

+ +

Событие unhandledrejection реализует {{domxref("PromiseRejectionEvent")}} интерфейс, который наследуется от {{domxref("Event")}}. Вы можете использовать свойства и методы, определенные в данных интерфейсах.

+ +

{{InheritanceDiagram('','','', 'PromiseRejectionEvent')}}

+ +

Смотрите также

+ + diff --git a/files/ru/web/api/windowbase64/base64_encoding_and_decoding/index.html b/files/ru/web/api/windowbase64/base64_encoding_and_decoding/index.html deleted file mode 100644 index b85f3671ef..0000000000 --- a/files/ru/web/api/windowbase64/base64_encoding_and_decoding/index.html +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Кодирование и декодирование в формате Base64 -slug: Web/API/WindowBase64/Base64_encoding_and_decoding -translation_of: Glossary/Base64 ---- -

Base64 - это группа cхожих binary-to-text encoding схем, которые представляют двоичные данные в ASCII-формате методом перевода в radix-64 представление. Термин Base64 происходит от a specific MIME content transfer encoding.

- -

Кодирование Base64 широко используется в случаях, когда требуется перекодировать двоичные данные для передачи по каналу приспособленному для передачи текстовых данных. Это делается с целью защиты двоичных данных от любых возможных повреждений при передаче. Base64 широко используется во многих приложениях, включая электронную почту (MIME), и при сохранении больших объёмов данных в XML.

- -

В языке JavaScript существуют две функции, для кодирования и декодирования данных в/из формат Base64 соответственно:

- - - -

Функция atob() декодирует Base64-кодированную строку. В противоположность ей, функция btoa() создаёт Base64 кодированную ASCII строку из "строки" бинарных данных.

- -

Обе функции atob() и btoa() работают со строками. Если вам необходимо работать с ArrayBuffers, обратитесь к этому параграфу.

- - - - - - - - -
-

Документация

- -
-
data URIs
-
data URIs, описанные в RFC 2397, позволяют создателям контента встроить в документ маленькие файлы в виде строки (инлайном).
-
Base64
-
Wikipedia article about Base64 encoding.
-
{{domxref("WindowBase64.atob","atob()")}}
-
Decodes a string of data which has been encoded using base-64 encoding.
-
{{domxref("WindowBase64.btoa","btoa()")}}
-
Creates a base-64 encoded ASCII string from a "string" of binary data.
-
The "Unicode Problem"
-
In most browsers, calling btoa() on a Unicode string will cause a Character Out Of Range exception. This paragraph shows some solutions.
-
URIScheme
-
List of Mozilla supported URI schemes
-
StringView
-
In this article is published a library of ours whose aims are: -
    -
  • creating a C-like interface for strings (i.e. array of characters codes — ArrayBufferView in JavaScript) based upon the JavaScript ArrayBuffer interface,
  • -
  • creating a collection of methods for such string-like objects (since now: stringViews) which work strictly on array of numbers rather than on immutable JavaScript strings,
  • -
  • working with other Unicode encodings, different from default JavaScript's UTF-16 DOMStrings,
  • -
-
-
- -

View All...

-
-

Tools

- - - -

View All...

- - - - -
- -

The "Unicode Problem"

- -

Since DOMStrings are 16-bit-encoded strings, in most browsers calling window.btoa on a Unicode string will cause a Character Out Of Range exception if a character exceeds the range of a 8-bit byte (0x00~0xFF). There are two possible methods to solve this problem:

- - - -

Here are the two possible methods.

- -

Solution #1 – escaping the string before encoding it

- -
function b64EncodeUnicode(str) {
-    // first we use encodeURIComponent to get percent-encoded UTF-8,
-    // then we convert the percent encodings into raw bytes which
-    // can be fed into btoa.
-    return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,
-        function toSolidBytes(match, p1) {
-            return String.fromCharCode('0x' + p1);
-    }));
-}
-
-b64EncodeUnicode('✓ à la mode'); // "4pyTIMOgIGxhIG1vZGU="
-b64EncodeUnicode('\n'); // "Cg=="
-
- -

To decode the Base64-encoded value back into a String:

- -
function b64DecodeUnicode(str) {
-    // Going backwards: from bytestream, to percent-encoding, to original string.
-    return decodeURIComponent(atob(str).split('').map(function(c) {
-        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
-    }).join(''));
-}
-
-b64DecodeUnicode('4pyTIMOgIGxhIG1vZGU='); // "✓ à la mode"
-b64DecodeUnicode('Cg=='); // "\n"
-
- -

Unibabel implements common conversions using this strategy.

- -

Solution #2 – rewrite the DOMs atob() and btoa() using JavaScript's TypedArrays and UTF-8

- -

Use a TextEncoder polyfill such as TextEncoding (also includes legacy windows, mac, and ISO encodings), TextEncoderLite, combined with a Buffer and a Base64 implementation such as base64-js.

- -

When a native TextEncoder implementation is not available, the most light-weight solution would be to use TextEncoderLite with base64-js. Use the browser implementation when you can.

- -

The following function implements such a strategy. It assumes base64-js imported as <script type="text/javascript" src="base64js.min.js"/>. Note that TextEncoderLite only works with UTF-8.

- -
function Base64Encode(str, encoding = 'utf-8') {
-    var bytes = new (TextEncoder || TextEncoderLite)(encoding).encode(str);
-    return base64js.fromByteArray(bytes);
-}
-
-function Base64Decode(str, encoding = 'utf-8') {
-    var bytes = base64js.toByteArray(str);
-    return new (TextDecoder || TextDecoderLite)(encoding).decode(bytes);
-}
-
diff --git a/files/ru/web/api/windowbase64/btoa/index.html b/files/ru/web/api/windowbase64/btoa/index.html deleted file mode 100644 index 06b76a6304..0000000000 --- a/files/ru/web/api/windowbase64/btoa/index.html +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: WindowBase64.btoa() -slug: Web/API/WindowBase64/btoa -translation_of: Web/API/WindowOrWorkerGlobalScope/btoa ---- -
{{APIRef("HTML DOM")}}
- -

Создает ASCII строку закодированную в base-64 из "строки" бинарных данных.

- -

Будьте внимательней этот способ не подходит для Unicode строк! Описание работы с Unicode в секции ниже.

- -

Синтаксис

- -
var encodedData = window.btoa(stringToEncode);
- -

Пример

- -
var encodedData = window.btoa("Hello, world"); // encode a string
-var decodedData = window.atob(encodedData); // decode the string
-
- -

Замечания

- -

Вы можете воспользоваться этим способом, чтобы избежать проблем при передаче данных через сетевое соединение. Для этого нужно перекодировать данные в base64 и отправить их, и на другой стороне с помощью метода {{domxref("WindowBase64.atob","window.atob()")}} декодировать полученные данные в исходный вид. Например, вы можете перекодировать управляющие символы ASCII с 0 до 31.

- -

btoa() также доступна для XPCOM компонентов реализованных в JavaScript, даже если window не является глобальным объектом в компонентах.

- -

Строки Юникод

- -

В большинстве браузеров, вызов window.btoa() на Unicode строке выбросит исключение Character Out Of Range (Символ вне допустимого диапазона).

- -

Чтобы избежать этого, воспользуйтесь патерном, предложеным Johan Sundström:

- -
function utf8_to_b64(str) {
-    return window.btoa(unescape(encodeURIComponent(str)));
-}
-
-function b64_to_utf8(str) {
-    return decodeURIComponent(escape(window.atob(str)));
-}
-
-// Usage:
-utf8_to_b64('✓ à la mode'); // JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ==
-b64_to_utf8('JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ=='); // "✓ à la mode"
-
-utf8_to_b64('I \u2661 Unicode!'); // SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ==
-b64_to_utf8('SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ=='); // "I ♡ Unicode!"
-
-
- -

Более правильный и производительный способ - это конвертировать DOMString в UTF-8 строку передав typed arrays. Как это сделать узнать можно здесь в этом параграфе.

- -

Спецификации

- - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('HTML WHATWG', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML WHATWG')}}No change since the latest snapshot, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName("HTML WHATWG")}}. No change.
{{SpecName("HTML5 W3C", "#dom-windowbase64-btoa", "WindowBase64.btoa()")}}{{Spec2('HTML5 W3C')}}Snapshot of {{SpecName("HTML WHATWG")}}. Creation of WindowBase64 (properties where on the target before it).
- -

Совместимость браузеров

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatVersionUnknown}}{{CompatGeckoDesktop(1)}}[1]10{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatGeckoMobile(1)}}{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
-
- -

[1] btoa() также доступна для XPCOM компонентов реализованных в JavaScript, даже если window не является глобальным объектом в компонентах.

- -

Смотрите также

- - diff --git a/files/ru/web/api/windowbase64/index.html b/files/ru/web/api/windowbase64/index.html deleted file mode 100644 index f51b72c102..0000000000 --- a/files/ru/web/api/windowbase64/index.html +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: WindowBase64 -slug: Web/API/WindowBase64 -tags: - - API - - HTML-DOM - - Helper - - NeedsTranslation - - TopicStub - - WindowBase64 -translation_of: Web/API/WindowOrWorkerGlobalScope -translation_of_original: Web/API/WindowBase64 ---- -

{{APIRef("HTML DOM")}}

- -

The WindowBase64 helper contains utility methods to convert data to and from base64, a binary-to-text encoding scheme. For example it is used in data URIs.

- -

There is no object of this type, though the context object, either the {{domxref("Window")}} for regular browsing scope, or the {{domxref("WorkerGlobalScope")}}  for workers, implements it.

- -

Properties

- -

This helper neither defines nor inherits any properties.

- -

Methods

- -

This helper does not inherit any methods.

- -
-
{{domxref("WindowBase64.atob()")}}
-
Decodes a string of data which has been encoded using base-64 encoding.
-
{{domxref("WindowBase64.btoa()")}}
-
Creates a base-64 encoded ASCII string from a string of binary data.
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('HTML WHATWG', '#windowbase64', 'WindowBase64')}}{{Spec2('HTML WHATWG')}}No change since the latest snapshot, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#windowbase64', 'WindowBase64')}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName("HTML WHATWG")}}. No change.
{{SpecName("HTML5 W3C", "#windowbase64", "WindowBase64")}}{{Spec2('HTML5 W3C')}}Snapshot of {{SpecName("HTML WHATWG")}}. Creation of WindowBase64 (properties where on the target before it).
- -

Browser compatibility

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureFirefox (Gecko)ChromeInternet ExplorerOperaSafari
Basic support{{CompatGeckoDesktop(1)}} [1]{{CompatVersionUnknown}}10.0{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureFirefox Mobile (Gecko)AndroidIE MobileOpera MobileSafari Mobile
Basic support{{CompatGeckoMobile(1)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

[1]  atob() is also available to XPCOM components implemented in JavaScript, even though {{domxref("Window")}} is not the global object in components.

- -

See also

- - diff --git a/files/ru/web/api/windoworworkerglobalscope/btoa/index.html b/files/ru/web/api/windoworworkerglobalscope/btoa/index.html new file mode 100644 index 0000000000..06b76a6304 --- /dev/null +++ b/files/ru/web/api/windoworworkerglobalscope/btoa/index.html @@ -0,0 +1,141 @@ +--- +title: WindowBase64.btoa() +slug: Web/API/WindowBase64/btoa +translation_of: Web/API/WindowOrWorkerGlobalScope/btoa +--- +
{{APIRef("HTML DOM")}}
+ +

Создает ASCII строку закодированную в base-64 из "строки" бинарных данных.

+ +

Будьте внимательней этот способ не подходит для Unicode строк! Описание работы с Unicode в секции ниже.

+ +

Синтаксис

+ +
var encodedData = window.btoa(stringToEncode);
+ +

Пример

+ +
var encodedData = window.btoa("Hello, world"); // encode a string
+var decodedData = window.atob(encodedData); // decode the string
+
+ +

Замечания

+ +

Вы можете воспользоваться этим способом, чтобы избежать проблем при передаче данных через сетевое соединение. Для этого нужно перекодировать данные в base64 и отправить их, и на другой стороне с помощью метода {{domxref("WindowBase64.atob","window.atob()")}} декодировать полученные данные в исходный вид. Например, вы можете перекодировать управляющие символы ASCII с 0 до 31.

+ +

btoa() также доступна для XPCOM компонентов реализованных в JavaScript, даже если window не является глобальным объектом в компонентах.

+ +

Строки Юникод

+ +

В большинстве браузеров, вызов window.btoa() на Unicode строке выбросит исключение Character Out Of Range (Символ вне допустимого диапазона).

+ +

Чтобы избежать этого, воспользуйтесь патерном, предложеным Johan Sundström:

+ +
function utf8_to_b64(str) {
+    return window.btoa(unescape(encodeURIComponent(str)));
+}
+
+function b64_to_utf8(str) {
+    return decodeURIComponent(escape(window.atob(str)));
+}
+
+// Usage:
+utf8_to_b64('✓ à la mode'); // JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ==
+b64_to_utf8('JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ=='); // "✓ à la mode"
+
+utf8_to_b64('I \u2661 Unicode!'); // SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ==
+b64_to_utf8('SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ=='); // "I ♡ Unicode!"
+
+
+ +

Более правильный и производительный способ - это конвертировать DOMString в UTF-8 строку передав typed arrays. Как это сделать узнать можно здесь в этом параграфе.

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML WHATWG')}}No change since the latest snapshot, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName("HTML WHATWG")}}. No change.
{{SpecName("HTML5 W3C", "#dom-windowbase64-btoa", "WindowBase64.btoa()")}}{{Spec2('HTML5 W3C')}}Snapshot of {{SpecName("HTML WHATWG")}}. Creation of WindowBase64 (properties where on the target before it).
+ +

Совместимость браузеров

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatVersionUnknown}}{{CompatGeckoDesktop(1)}}[1]10{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatGeckoMobile(1)}}{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
+
+ +

[1] btoa() также доступна для XPCOM компонентов реализованных в JavaScript, даже если window не является глобальным объектом в компонентах.

+ +

Смотрите также

+ + diff --git a/files/ru/web/api/windoworworkerglobalscope/settimeout/index.html b/files/ru/web/api/windoworworkerglobalscope/settimeout/index.html new file mode 100644 index 0000000000..9e39020215 --- /dev/null +++ b/files/ru/web/api/windoworworkerglobalscope/settimeout/index.html @@ -0,0 +1,260 @@ +--- +title: WindowTimers.setTimeout() +slug: Web/API/WindowTimers/setTimeout +translation_of: Web/API/WindowOrWorkerGlobalScope/setTimeout +--- +
{{ APIRef() }}
+ +

Краткое изложение

+ +

Вызов функции или выполнение фрагмента кода после указанной задержки.

+ +

Синтаксис

+ +
var timeoutID = window.setTimeout(func, [, delay, param1, param2, ...]);
+var timeoutID = window.setTimeout(code [, delay]);
+
+ +

где

+ + + +

Необходимо принять во внимание, что передача дополнительных параметров функции в первом варианте не работает в Internet Explorer 9 и ниже. Для использования этого функционала в таких браузерах, необходимо использовать код для совместимости (см. раздел Аргументы функции обратного вызова).

+ +
Important: Prior to Gecko 13 {{ geckoRelease("13.0") }}, Gecko passed an extra parameter to the callback routine, indicating the "actual lateness" of the timeout in milliseconds. This non-standard parameter is no longer passed.
+ +

Пример

+ +

В следующем примере на веб странице создаются две простые кнопки, к которым привязываются действия setTimeout и clearTimeout. Нажатие на первую кнопку установит таймаут, который вызовет диалоговое окно через две секунды. Также будет сохранен id для clearTimeout. Таймаут также может быть отменен по нажатию на вторую кнопку.

+ +

HTML Content

+ +
<p>Live Example</p>
+<button onclick="delayedAlert();">Show an alert box after two seconds</button>
+<p></p>
+<button onclick="clearAlert();">Cancel alert before it happens</button>
+
+ +

JavaScript Content

+ +
var timeoutID;
+
+function delayedAlert() {
+  timeoutID = window.setTimeout(slowAlert, 2000);
+}
+
+function slowAlert() {
+  alert("That was really slow!");
+}
+
+function clearAlert() {
+  window.clearTimeout(timeoutID);
+}
+
+ +

{{ EmbedLiveSample('Example') }}

+ +

Смотрите также пример clearTimeout().

+ +

Аргументы функции обратного вызова

+ +

Если вам нужно передать аргумент в вашу callback функцию, но нужно, чтобы это работало в Internet Explorer 9 и ниже, который не поддерживает передачу дополнительных параметров (ни с setTimeout() или setInterval()), то вы можете прописать специальный код для совместимости с IE, вставив этот код в начало ваших скриптов, который включит функцию передачи стандартных параметров HTML5 в Internet Explorer для обоих таймеров.

+ +
/*\
+|*|
+|*|  IE-specific polyfill which enables the passage of arbitrary arguments to the
+|*|  callback functions of JavaScript timers (HTML5 standard syntax).
+|*|
+|*|  https://developer.mozilla.org/en-US/docs/DOM/window.setInterval
+|*|
+|*|  Syntax:
+|*|  var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
+|*|  var timeoutID = window.setTimeout(code, delay);
+|*|  var intervalID = window.setInterval(func, delay[, param1, param2, ...]);
+|*|  var intervalID = window.setInterval(code, delay);
+|*|
+\*/
+
+if (document.all && !window.setTimeout.isPolyfill) {
+  var __nativeST__ = window.setTimeout;
+  window.setTimeout = function (vCallback, nDelay /*, argumentToPass1, argumentToPass2, etc. */) {
+    var aArgs = Array.prototype.slice.call(arguments, 2);
+    return __nativeST__(vCallback instanceof Function ? function () {
+      vCallback.apply(null, aArgs);
+    } : vCallback, nDelay);
+  };
+  window.setTimeout.isPolyfill = true;
+}
+
+if (document.all && !window.setInterval.isPolyfill) {
+  var __nativeSI__ = window.setInterval;
+  window.setInterval = function (vCallback, nDelay /*, argumentToPass1, argumentToPass2, etc. */) {
+    var aArgs = Array.prototype.slice.call(arguments, 2);
+    return __nativeSI__(vCallback instanceof Function ? function () {
+      vCallback.apply(null, aArgs);
+    } : vCallback, nDelay);
+  };
+  window.setInterval.isPolyfill = true;
+}
+
+ +

Правка только для IE

+ +

If you want a completely unobtrusive hack for every other mobile or desktop browser, including IE 9 and below, you can either use JavaScript conditional comments:

+ +
/*@cc_on
+  // conditional IE < 9 only fix
+  @if (@_jscript_version <= 6)
+  (function(f){
+     window.setTimeout =f(window.setTimeout);
+     window.setInterval =f(window.setInterval);
+  })(function(f){return function(c,t){var a=[].slice.call(arguments,2);return f(function(){c.apply(this,a)},t)}});
+  @end
+@*/
+
+ +

Или используйте очень чистый подход, основанный на условном свойстве IE HTML:

+ +
<!--[if lte IE 9]><script>
+(function(f){
+window.setTimeout =f(window.setTimeout);
+window.setInterval =f(window.setInterval);
+})(function(f){return function(c,t){
+var a=[].slice.call(arguments,2);return f(function(){c.apply(this,a)},t)}
+});
+</script><![endif]-->
+
+ +

Another possibility is to use an anonymous function to call your callback, but this solution is a bit more expensive. Example:

+ +
var intervalID = setTimeout(function() { myFunc("one", "two", "three"); }, 1000);
+
+ +

Yet another possibility is to use function's bind. Example:

+ +
setTimeout(function(arg1){}.bind(undefined, 10));
+
+ +

Проблема с "this"

+ +

Когда вы передаете метод в setTimeout() (или в любую другую функцию, если на то пошло), то вызов будет осуществлен с неправильным значением this. Эта проблема разъясняется детально в JavaScript reference.

+ +

Объяснение

+ +

Code executed by setTimeout() is run in a separate execution context to the function from which it was called. As a consequence, the this keyword for the called function will be set to the window (or global) object; it will not be the same as the this value for the function that called setTimeout. See the following example:

+ +
myArray = ["zero", "one", "two"];
+myArray.myMethod = function (sProperty) {
+    alert(arguments.length > 0 ? this[sProperty] : this);
+};
+
+myArray.myMethod(); // prints "zero,one,two"
+myArray.myMethod(1); // prints "one"
+setTimeout(myArray.myMethod, 1000); // prints "[object Window]" after 1 second
+setTimeout(myArray.myMethod, 1500, "1"); // prints "undefined" after 1.5 seconds
+// let's try to pass the 'this' object
+setTimeout.call(myArray, myArray.myMethod, 2000); // error: "NS_ERROR_XPC_BAD_OP_ON_WN_PROTO: Illegal operation on WrappedNative prototype object"
+setTimeout.call(myArray, myArray.myMethod, 2500, 2); // same error
+ +

Как видите, нет способов передать объект this в функцию обратного вызова..

+ +

Возможное решение

+ +

A possible way to solve the "this" problem is to replace the two native setTimeout() or setInterval() global functions with two non-native ones which will enable their invocation through the Function.prototype.call method. The following example shows a possible replacement:

+ +
// Enable the passage of the 'this' object through the JavaScript timers
+
+var __nativeST__ = window.setTimeout, __nativeSI__ = window.setInterval;
+
+window.setTimeout = function (vCallback, nDelay /*, argumentToPass1, argumentToPass2, etc. */) {
+  var oThis = this, aArgs = Array.prototype.slice.call(arguments, 2);
+  return __nativeST__(vCallback instanceof Function ? function () {
+    vCallback.apply(oThis, aArgs);
+  } : vCallback, nDelay);
+};
+
+window.setInterval = function (vCallback, nDelay /*, argumentToPass1, argumentToPass2, etc. */) {
+  var oThis = this, aArgs = Array.prototype.slice.call(arguments, 2);
+  return __nativeSI__(vCallback instanceof Function ? function () {
+    vCallback.apply(oThis, aArgs);
+  } : vCallback, nDelay);
+};
+ +
Note: These two replacements will also enable the HTML5 standard passage of arbitrary arguments to the callback functions of timers in IE. So they can be used as polyfills also. See the Callback arguments paragraph.
+ +

Новая тестируемая особенность:

+ +
myArray = ["zero", "one", "two"];
+myArray.myMethod = function (sProperty) {
+    alert(arguments.length > 0 ? this[sProperty] : this);
+};
+
+setTimeout(alert, 1500, "Hello world!"); // the standard use of setTimeout and setInterval is preserved, but...
+setTimeout.call(myArray, myArray.myMethod, 2000); // prints "zero,one,two" after 2 seconds
+setTimeout.call(myArray, myArray.myMethod, 2500, 2); // prints "two" after 2.5 seconds
+
+ +

Это не нативные решения ad hoc для этой проблемы.

+ +
Note: JavaScript 1.8.5 introduces the Function.prototype.bind() method, which lets you specify the value that should be used as this for all calls to a given function. This lets you easily bypass problems where it's unclear what this will be, depending on the context from which your function was called.
+ +

Замечания

+ +

Отложенное выполнение кода можно отменить, используя window.clearTimeout(). Если функция должна вызываться неоднократно (например, каждые N миллисекунд), необходимо использовать window.setInterval().

+ +

Важно заметить, что функция или код не могут быть выполнены, пока не завершится поток, вызвавший setTimeout().

+ +

Passing string literals

+ +

Передача строки вместо функции в setTimeout() сопряжена с теми же опасностями, что и использование eval.

+ +
// Правильно
+window.setTimeout(function() {
+    alert("Hello World!");
+}, 500);
+
+// Неправильно
+window.setTimeout("alert(\"Hello World!\");", 500);
+
+
+ +

String literals are evaluated in the global context, so local symbols in the context where setTimeout() was called will not be available when the string is evaluated as code.

+ +

Минимальная/ максимальная задержка и вложенность таймаута

+ +

Historically browsers implement setTimeout() "clamping": successive setTimeout() calls with delay smaller than the "minimum delay" limit are forced to use at least the minimum delay. The minimum delay, DOM_MIN_TIMEOUT_VALUE, is 4 ms (stored in a preference in Firefox: dom.min_timeout_value), with a DOM_CLAMP_TIMEOUT_NESTING_LEVEL of 5ms.

+ +

In fact, 4ms is specified by the HTML5 spec and is consistent across browsers released in 2010 and onward. Prior to {{ geckoRelease("5.0") }}, the minimum timeout value for nested timeouts was 10 ms.

+ +

In addition to "clamping", the timeout can also fire later when the page (or the OS/browser itself) is busy with other tasks.

+ +

To implement a 0 ms timeout in a modern browser, you can use {{ domxref("window.postMessage()") }} as described here.

+ +

Browsers including Internet Explorer, Chrome, Safari, and Firefox store the delay as a 32-bit signed Integer internally. This causes an Integer overflow when using delays larger than 2147483647, resulting in the timeout being executed immediately.

+ +

Неактивные вкладки

+ +

In {{ geckoRelease("5.0") }} and Chrome 11, timeouts are clamped to firing no more often than once per second (1000ms) in inactive tabs; see {{ bug(633421) }} for more information about this in Mozilla or crbug.com/66078 for details about this in Chrome.

+ +

Совместимость с браузерами

+ +

{{Compat("api.WindowOrWorkerGlobalScope.setTimeout")}}

+ +

Спецификация

+ +

Part of DOM level 0, as specified in HTML5.

+ +

Также интересно

+ + diff --git a/files/ru/web/api/windowtimers/index.html b/files/ru/web/api/windowtimers/index.html deleted file mode 100644 index ac80f42b5f..0000000000 --- a/files/ru/web/api/windowtimers/index.html +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: WindowTimers -slug: Web/API/WindowTimers -tags: - - API - - HTML DOM -translation_of: Web/API/WindowOrWorkerGlobalScope -translation_of_original: Web/API/WindowTimers ---- -
{{APIRef("HTML DOM")}}
- -

WindowTimers contains utility methods to set and clear timers.

- -

There is no object of this type, though the context object, either the {{domxref("Window")}} for regular browsing scope, or the {{domxref("WorkerGlobalScope")}}  for workers, implements it.

- -

Properties

- -

This interface do not define any property, nor inherit any.

- -

Methods

- -

This interface do not inherit any method.

- -
-
{{domxref("WindowTimers.clearInterval()")}}
-
Cancels the repeated execution set using {{domxref("WindowTimers.setInterval()")}}.
-
{{domxref("WindowTimers.clearTimeout()")}}
-
Cancels the repeated execution set using {{domxref("WindowTimers.setTimeout()")}}.
-
{{domxref("WindowTimers.setInterval()")}}
-
Schedules the execution of a function each X milliseconds.
-
{{domxref("WindowTimers.setTimeout()")}}
-
Sets a delay for executing a function.
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('HTML WHATWG', '#windowtimers', 'WindowTimers')}}{{Spec2('HTML WHATWG')}}No change since the latest snapshot, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#windowtimers', 'WindowTimers')}}{{Spec2('HTML5.1')}}Snapshot of {{SpecName("HTML WHATWG")}}. No change.
{{SpecName("HTML5 W3C", "#windowtimers", "WindowTimers")}}{{Spec2('HTML5 W3C')}}Snapshot of {{SpecName("HTML WHATWG")}}. Creation of WindowBase64 (properties where on the target before it).
- -

Browser compatibility

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureFirefox (Gecko)ChromeInternet ExplorerOperaSafari
Basic support{{CompatGeckoDesktop(1)}}1.04.04.01.0
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureFirefox Mobile (Gecko)AndroidIE MobileOpera MobileSafari Mobile
Basic support{{CompatGeckoMobile(1)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

 

- -

See also

- - diff --git a/files/ru/web/api/windowtimers/settimeout/index.html b/files/ru/web/api/windowtimers/settimeout/index.html deleted file mode 100644 index 9e39020215..0000000000 --- a/files/ru/web/api/windowtimers/settimeout/index.html +++ /dev/null @@ -1,260 +0,0 @@ ---- -title: WindowTimers.setTimeout() -slug: Web/API/WindowTimers/setTimeout -translation_of: Web/API/WindowOrWorkerGlobalScope/setTimeout ---- -
{{ APIRef() }}
- -

Краткое изложение

- -

Вызов функции или выполнение фрагмента кода после указанной задержки.

- -

Синтаксис

- -
var timeoutID = window.setTimeout(func, [, delay, param1, param2, ...]);
-var timeoutID = window.setTimeout(code [, delay]);
-
- -

где

- - - -

Необходимо принять во внимание, что передача дополнительных параметров функции в первом варианте не работает в Internet Explorer 9 и ниже. Для использования этого функционала в таких браузерах, необходимо использовать код для совместимости (см. раздел Аргументы функции обратного вызова).

- -
Important: Prior to Gecko 13 {{ geckoRelease("13.0") }}, Gecko passed an extra parameter to the callback routine, indicating the "actual lateness" of the timeout in milliseconds. This non-standard parameter is no longer passed.
- -

Пример

- -

В следующем примере на веб странице создаются две простые кнопки, к которым привязываются действия setTimeout и clearTimeout. Нажатие на первую кнопку установит таймаут, который вызовет диалоговое окно через две секунды. Также будет сохранен id для clearTimeout. Таймаут также может быть отменен по нажатию на вторую кнопку.

- -

HTML Content

- -
<p>Live Example</p>
-<button onclick="delayedAlert();">Show an alert box after two seconds</button>
-<p></p>
-<button onclick="clearAlert();">Cancel alert before it happens</button>
-
- -

JavaScript Content

- -
var timeoutID;
-
-function delayedAlert() {
-  timeoutID = window.setTimeout(slowAlert, 2000);
-}
-
-function slowAlert() {
-  alert("That was really slow!");
-}
-
-function clearAlert() {
-  window.clearTimeout(timeoutID);
-}
-
- -

{{ EmbedLiveSample('Example') }}

- -

Смотрите также пример clearTimeout().

- -

Аргументы функции обратного вызова

- -

Если вам нужно передать аргумент в вашу callback функцию, но нужно, чтобы это работало в Internet Explorer 9 и ниже, который не поддерживает передачу дополнительных параметров (ни с setTimeout() или setInterval()), то вы можете прописать специальный код для совместимости с IE, вставив этот код в начало ваших скриптов, который включит функцию передачи стандартных параметров HTML5 в Internet Explorer для обоих таймеров.

- -
/*\
-|*|
-|*|  IE-specific polyfill which enables the passage of arbitrary arguments to the
-|*|  callback functions of JavaScript timers (HTML5 standard syntax).
-|*|
-|*|  https://developer.mozilla.org/en-US/docs/DOM/window.setInterval
-|*|
-|*|  Syntax:
-|*|  var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
-|*|  var timeoutID = window.setTimeout(code, delay);
-|*|  var intervalID = window.setInterval(func, delay[, param1, param2, ...]);
-|*|  var intervalID = window.setInterval(code, delay);
-|*|
-\*/
-
-if (document.all && !window.setTimeout.isPolyfill) {
-  var __nativeST__ = window.setTimeout;
-  window.setTimeout = function (vCallback, nDelay /*, argumentToPass1, argumentToPass2, etc. */) {
-    var aArgs = Array.prototype.slice.call(arguments, 2);
-    return __nativeST__(vCallback instanceof Function ? function () {
-      vCallback.apply(null, aArgs);
-    } : vCallback, nDelay);
-  };
-  window.setTimeout.isPolyfill = true;
-}
-
-if (document.all && !window.setInterval.isPolyfill) {
-  var __nativeSI__ = window.setInterval;
-  window.setInterval = function (vCallback, nDelay /*, argumentToPass1, argumentToPass2, etc. */) {
-    var aArgs = Array.prototype.slice.call(arguments, 2);
-    return __nativeSI__(vCallback instanceof Function ? function () {
-      vCallback.apply(null, aArgs);
-    } : vCallback, nDelay);
-  };
-  window.setInterval.isPolyfill = true;
-}
-
- -

Правка только для IE

- -

If you want a completely unobtrusive hack for every other mobile or desktop browser, including IE 9 and below, you can either use JavaScript conditional comments:

- -
/*@cc_on
-  // conditional IE < 9 only fix
-  @if (@_jscript_version <= 6)
-  (function(f){
-     window.setTimeout =f(window.setTimeout);
-     window.setInterval =f(window.setInterval);
-  })(function(f){return function(c,t){var a=[].slice.call(arguments,2);return f(function(){c.apply(this,a)},t)}});
-  @end
-@*/
-
- -

Или используйте очень чистый подход, основанный на условном свойстве IE HTML:

- -
<!--[if lte IE 9]><script>
-(function(f){
-window.setTimeout =f(window.setTimeout);
-window.setInterval =f(window.setInterval);
-})(function(f){return function(c,t){
-var a=[].slice.call(arguments,2);return f(function(){c.apply(this,a)},t)}
-});
-</script><![endif]-->
-
- -

Another possibility is to use an anonymous function to call your callback, but this solution is a bit more expensive. Example:

- -
var intervalID = setTimeout(function() { myFunc("one", "two", "three"); }, 1000);
-
- -

Yet another possibility is to use function's bind. Example:

- -
setTimeout(function(arg1){}.bind(undefined, 10));
-
- -

Проблема с "this"

- -

Когда вы передаете метод в setTimeout() (или в любую другую функцию, если на то пошло), то вызов будет осуществлен с неправильным значением this. Эта проблема разъясняется детально в JavaScript reference.

- -

Объяснение

- -

Code executed by setTimeout() is run in a separate execution context to the function from which it was called. As a consequence, the this keyword for the called function will be set to the window (or global) object; it will not be the same as the this value for the function that called setTimeout. See the following example:

- -
myArray = ["zero", "one", "two"];
-myArray.myMethod = function (sProperty) {
-    alert(arguments.length > 0 ? this[sProperty] : this);
-};
-
-myArray.myMethod(); // prints "zero,one,two"
-myArray.myMethod(1); // prints "one"
-setTimeout(myArray.myMethod, 1000); // prints "[object Window]" after 1 second
-setTimeout(myArray.myMethod, 1500, "1"); // prints "undefined" after 1.5 seconds
-// let's try to pass the 'this' object
-setTimeout.call(myArray, myArray.myMethod, 2000); // error: "NS_ERROR_XPC_BAD_OP_ON_WN_PROTO: Illegal operation on WrappedNative prototype object"
-setTimeout.call(myArray, myArray.myMethod, 2500, 2); // same error
- -

Как видите, нет способов передать объект this в функцию обратного вызова..

- -

Возможное решение

- -

A possible way to solve the "this" problem is to replace the two native setTimeout() or setInterval() global functions with two non-native ones which will enable their invocation through the Function.prototype.call method. The following example shows a possible replacement:

- -
// Enable the passage of the 'this' object through the JavaScript timers
-
-var __nativeST__ = window.setTimeout, __nativeSI__ = window.setInterval;
-
-window.setTimeout = function (vCallback, nDelay /*, argumentToPass1, argumentToPass2, etc. */) {
-  var oThis = this, aArgs = Array.prototype.slice.call(arguments, 2);
-  return __nativeST__(vCallback instanceof Function ? function () {
-    vCallback.apply(oThis, aArgs);
-  } : vCallback, nDelay);
-};
-
-window.setInterval = function (vCallback, nDelay /*, argumentToPass1, argumentToPass2, etc. */) {
-  var oThis = this, aArgs = Array.prototype.slice.call(arguments, 2);
-  return __nativeSI__(vCallback instanceof Function ? function () {
-    vCallback.apply(oThis, aArgs);
-  } : vCallback, nDelay);
-};
- -
Note: These two replacements will also enable the HTML5 standard passage of arbitrary arguments to the callback functions of timers in IE. So they can be used as polyfills also. See the Callback arguments paragraph.
- -

Новая тестируемая особенность:

- -
myArray = ["zero", "one", "two"];
-myArray.myMethod = function (sProperty) {
-    alert(arguments.length > 0 ? this[sProperty] : this);
-};
-
-setTimeout(alert, 1500, "Hello world!"); // the standard use of setTimeout and setInterval is preserved, but...
-setTimeout.call(myArray, myArray.myMethod, 2000); // prints "zero,one,two" after 2 seconds
-setTimeout.call(myArray, myArray.myMethod, 2500, 2); // prints "two" after 2.5 seconds
-
- -

Это не нативные решения ad hoc для этой проблемы.

- -
Note: JavaScript 1.8.5 introduces the Function.prototype.bind() method, which lets you specify the value that should be used as this for all calls to a given function. This lets you easily bypass problems where it's unclear what this will be, depending on the context from which your function was called.
- -

Замечания

- -

Отложенное выполнение кода можно отменить, используя window.clearTimeout(). Если функция должна вызываться неоднократно (например, каждые N миллисекунд), необходимо использовать window.setInterval().

- -

Важно заметить, что функция или код не могут быть выполнены, пока не завершится поток, вызвавший setTimeout().

- -

Passing string literals

- -

Передача строки вместо функции в setTimeout() сопряжена с теми же опасностями, что и использование eval.

- -
// Правильно
-window.setTimeout(function() {
-    alert("Hello World!");
-}, 500);
-
-// Неправильно
-window.setTimeout("alert(\"Hello World!\");", 500);
-
-
- -

String literals are evaluated in the global context, so local symbols in the context where setTimeout() was called will not be available when the string is evaluated as code.

- -

Минимальная/ максимальная задержка и вложенность таймаута

- -

Historically browsers implement setTimeout() "clamping": successive setTimeout() calls with delay smaller than the "minimum delay" limit are forced to use at least the minimum delay. The minimum delay, DOM_MIN_TIMEOUT_VALUE, is 4 ms (stored in a preference in Firefox: dom.min_timeout_value), with a DOM_CLAMP_TIMEOUT_NESTING_LEVEL of 5ms.

- -

In fact, 4ms is specified by the HTML5 spec and is consistent across browsers released in 2010 and onward. Prior to {{ geckoRelease("5.0") }}, the minimum timeout value for nested timeouts was 10 ms.

- -

In addition to "clamping", the timeout can also fire later when the page (or the OS/browser itself) is busy with other tasks.

- -

To implement a 0 ms timeout in a modern browser, you can use {{ domxref("window.postMessage()") }} as described here.

- -

Browsers including Internet Explorer, Chrome, Safari, and Firefox store the delay as a 32-bit signed Integer internally. This causes an Integer overflow when using delays larger than 2147483647, resulting in the timeout being executed immediately.

- -

Неактивные вкладки

- -

In {{ geckoRelease("5.0") }} and Chrome 11, timeouts are clamped to firing no more often than once per second (1000ms) in inactive tabs; see {{ bug(633421) }} for more information about this in Mozilla or crbug.com/66078 for details about this in Chrome.

- -

Совместимость с браузерами

- -

{{Compat("api.WindowOrWorkerGlobalScope.setTimeout")}}

- -

Спецификация

- -

Part of DOM level 0, as specified in HTML5.

- -

Также интересно

- - diff --git a/files/ru/web/api/xmldocument/async/index.html b/files/ru/web/api/xmldocument/async/index.html new file mode 100644 index 0000000000..2ff21f28af --- /dev/null +++ b/files/ru/web/api/xmldocument/async/index.html @@ -0,0 +1,35 @@ +--- +title: Document.async +slug: Web/API/Document/async +translation_of: Web/API/XMLDocument/async +--- +

{{APIRef("DOM")}}{{Deprecated_header}} {{Non-standard_header}}

+ +

document.async может быть установлен, для того, чтобы определить, что вызов {{domxref("document.load")}} должен быть выполнен синхронно или не синхронно. true - стандартное значение, определяющее, асинхронно ли должны быть загружены документы.

+ +

(Загружать документы синхронно стало возможно с версии 1.4 alpha.)

+ +

Пример

+ +
function loadXMLData(e) {
+  alert(new XMLSerializer().serializeToString(e.target)); // Gives querydata.xml contents as string
+}
+
+var xmlDoc = document.implementation.createDocument("", "test", null);
+
+xmlDoc.async = false;
+xmlDoc.onload = loadXMLData;
+xmlDoc.load('querydata.xml');
+ +

Спецификация

+ + + +

Смотрите также

+ + diff --git a/files/ru/web/api/xmlhttprequest/loadstart_event/index.html b/files/ru/web/api/xmlhttprequest/loadstart_event/index.html new file mode 100644 index 0000000000..b725b05b30 --- /dev/null +++ b/files/ru/web/api/xmlhttprequest/loadstart_event/index.html @@ -0,0 +1,89 @@ +--- +title: loadstart +slug: Web/Events/loadstart +translation_of: Web/API/XMLHttpRequest/loadstart_event +--- +

Событие loadstart происходит, когда начинается загрузка.

+ +

Общая информация

+ +
+
Спецификация
+
Progress
+
Интерфейс
+
ProgressEvent
+
Распространяется
+
Нет
+
Отменяемое
+
Нет
+
Цель
+
Element
+
Действие по умолчанию
+
Нет
+
+ +

Свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The event target (the topmost target in the DOM tree).
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
lengthComputable {{readonlyInline}}{{jsxref("Boolean")}}Specifies whether or not the total size of the transfer is known. Read only.
loaded {{readonlyInline}}unsigned long (long)The number of bytes transferred since the beginning of the operation. This doesn't include headers and other overhead, but only the content itself. Read only.
total {{readonlyInline}}unsigned long (long)The total number of bytes of content that will be transferred during the operation. If the total size is unknown, this value is zero. Read only.
+ +

Связанные свойства

+ + + +

См. также

+ + diff --git "a/files/ru/web/api/\320\262\320\270\320\264\320\270\320\274\320\276\321\201\321\202\321\214_\321\201\321\202\321\200\320\260\320\275\320\270\321\206\321\213_api/index.html" "b/files/ru/web/api/\320\262\320\270\320\264\320\270\320\274\320\276\321\201\321\202\321\214_\321\201\321\202\321\200\320\260\320\275\320\270\321\206\321\213_api/index.html" deleted file mode 100644 index 9b181e92d1..0000000000 --- "a/files/ru/web/api/\320\262\320\270\320\264\320\270\320\274\320\276\321\201\321\202\321\214_\321\201\321\202\321\200\320\260\320\275\320\270\321\206\321\213_api/index.html" +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: Видимость страницы API -slug: Web/API/Видимость_страницы_API -tags: - - API - - DOM - - Документ - - Показать страницу - - Скрыть страницу -translation_of: Web/API/Page_Visibility_API ---- -
{{DefaultAPISidebar("Page Visibility API")}}
- -

При переключении между вкладками, web страница переходит в фоновый режим и поэтому не видна пользователю. Page Visibility API предоставляет события, которые вы можете отслеживать, чтобы узнать, когда страница станет видимой или скрытой, а так же возможность наблюдать текущее состояние видимости страницы.

- -
-

Notes: The Page Visibility API особенно полезно для сбережения ресурсов и улучшения производительности, позволяя странице остановить выполнение не нужных задач, когда она не видна.

-
- -

Когда пользователь сворачивает окно или переключается на другую вкладку, API отправляет {{event("visibilitychange")}} событие обработчикам, что состояние страницы изменилось. Вы можете отследить это событие и выполнить какие-то действия. Например, если ваше app проигрывает видео, его можно поставить на паузу, когда пользователь переключил вкладку (страница ушла в фон), а затем возобновить видео, когда пользователь вернулся на вкладку. Пользователь не теряет место на котором остановил просмотр, звук от видео не конфликтует с аудио новой вкладки, пользователь комфортно просмотрить оба видео.

- -

Состояния видимости для {{HTMLElement("iframe")}} такие же как и для родительской страницы. Скрытие <iframe> используя CSS стили (такие как {{cssxref("display", "display: none;")}}) не вызывают события видимости и не изменяют состояние документа, содержащегося во фрейме.

- -

Использование

- -

Давайте рассмотрим несколько способов использования Page Visibility API.

- - - -

Раньше у разработчиков были не удобные способы. Например, обработка {{event("blur")}} и {{event("focus")}} событий на объекте window - помогала узнать когда страница становилась не активной, но это не давало возможность понять когда страница действительно скрыта от пользователя. Page Visibility API решает эту проблему.

- -
-

Note: Когда {{domxref("GlobalEventHandlers.onblur", "onblur")}} и {{domxref("GlobalEventHandlers.onfocus", "onfocus")}} уведомляют, что пользователь переключил окна, это не означает, что оно действительно скрыто. Страница действительно скрыта, когда пользователь переключил вкладки или свернул окно браузера с этой вкладкой.

-
- -

Policies in place to aid background page performance

- -

Separately from the Page Visibility API, user agents typically have a number of policies in place to mitigate the performance impact of background or hidden tabs. These may include:

- - - -

Some processes are exempt from this throttling behavior. In these cases, you can use the Page Visibility API to reduce the tabs' performance impact while they're hidden.

- - - -

Example

- -

View live example (video with sound).

- -

The example, which pauses the video when you switch to another tab and plays again when you return to its tab, was created with the following code:

- -
// Set the name of the hidden property and the change event for visibility
-var hidden, visibilityChange;
-if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
-  hidden = "hidden";
-  visibilityChange = "visibilitychange";
-} else if (typeof document.msHidden !== "undefined") {
-  hidden = "msHidden";
-  visibilityChange = "msvisibilitychange";
-} else if (typeof document.webkitHidden !== "undefined") {
-  hidden = "webkitHidden";
-  visibilityChange = "webkitvisibilitychange";
-}
-
-var videoElement = document.getElementById("videoElement");
-
-// If the page is hidden, pause the video;
-// if the page is shown, play the video
-function handleVisibilityChange() {
-  if (document[hidden]) {
-    videoElement.pause();
-  } else {
-    videoElement.play();
-  }
-}
-
-// Warn if the browser doesn't support addEventListener or the Page Visibility API
-if (typeof document.addEventListener === "undefined" || hidden === undefined) {
-  console.log("This demo requires a browser, such as Google Chrome or Firefox, that supports the Page Visibility API.");
-} else {
-  // Handle page visibility change
-  document.addEventListener(visibilityChange, handleVisibilityChange, false);
-
-  // When the video pauses, set the title.
-  // This shows the paused
-  videoElement.addEventListener("pause", function(){
-    document.title = 'Paused';
-  }, false);
-
-  // When the video plays, set the title.
-  videoElement.addEventListener("play", function(){
-    document.title = 'Playing';
-  }, false);
-
-}
-
- -

Properties added to the Document interface

- -

The Page Visibility API adds the following properties to the {{domxref("Document")}} interface:

- -
-
{{domxref("Document.hidden")}} {{ReadOnlyInline}}
-
Returns true if the page is in a state considered to be hidden to the user, and false otherwise.
-
{{domxref("Document.visibilityState")}} {{ReadOnlyInline}}
-
A {{domxref("DOMString")}} indicating the document's current visibility state. Possible values are: -
-
visible
-
The page content may be at least partially visible. In practice this means that the page is the foreground tab of a non-minimized window.
-
hidden
-
The page's content is not visible to the user, either due to the document's tab being in the background or part of a window that is minimized, or because the device's screen is off.
-
prerender
-
The page's content is being prerendered and is not visible to the user. A document may start in the prerender state, but will never switch to this state from any other state, since a document can only prerender once. -
Note: Not all browsers support prerendering.
-
-
unloaded
-
The page is in the process of being unloaded from memory. -
Note: Not all browsers support the unloaded value.
-
-
-
-
{{domxref("Document.onvisibilitychange")}}
-
An {{domxref("EventListener")}} providing the code to be called when the {{event("visibilitychange")}} event is fired.
-
- -
//startSimulation and pauseSimulation defined elsewhere
-function handleVisibilityChange() {
-  if (document.hidden) {
-    pauseSimulation();
-  } else  {
-    startSimulation();
-  }
-}
-
-document.addEventListener("visibilitychange", handleVisibilityChange, false);
-
- -

Specifications

- - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Page Visibility API')}}{{Spec2('Page Visibility API')}}Initial definition.
- -

Browser compatibility

- -
-

Document.visibilityState

- -
- - -

{{Compat("api.Document.visibilityState")}}

-
-
- -

See also

- - diff --git "a/files/ru/web/api/\320\275\320\276\321\202\320\260\321\206\320\270\321\217/index.html" "b/files/ru/web/api/\320\275\320\276\321\202\320\260\321\206\320\270\321\217/index.html" deleted file mode 100644 index a1f468a55d..0000000000 --- "a/files/ru/web/api/\320\275\320\276\321\202\320\260\321\206\320\270\321\217/index.html" +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Нотация -slug: Web/API/Нотация -tags: - - Нотация -translation_of: Web/API/Notation ---- -
{{APIRef("DOM")}}{{draft}}{{obsolete_header}}
- -

Представляет нотацию DTD (только для чтения). Может объявлять формат неразобранного объекта или формально объявлять цели инструкции по обработке документа. Наследует методы и свойства от Node. Его nodeName - это имя нотации. Не имеет родителя.

- -

Свойства

- -
-
{{domxref("Notation.publicId")}} {{ReadOnlyInline}}
-
Это {{domxref("DOMString")}}.
-
{{domxref("Notation.systemId")}} {{ReadOnlyInline}}
-
Это {{domxref("DOMString")}}.
-
- -

Спецификации

- - - - - - - - - - - - - - - - - - - - - - - - -
СпецификацияСтатусКомментарии
{{SpecName("DOM3 Core", "core.html#ID-5431D1B9", "Notation")}}{{Spec2("DOM3 Core")}}Без изменений
{{SpecName("DOM2 Core", "core.html#ID-5431D1B9", "Notation")}}{{Spec2("DOM2 Core")}}Без изменений
{{SpecName('DOM1', 'level-one-core.html#ID-5431D1B9', 'Notation')}}{{Spec2('DOM1')}}Первое определение
- -

Поддержка браузерами

- - - -

{{Compat("api.Notation")}}

-- cgit v1.2.3-54-g00ecf From 786d51e5e35f25c06fc64083574a435e240b2a54 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:51:06 +0100 Subject: unslug ru: modify --- files/ru/_redirects.txt | 870 +- files/ru/_wikihistory.json | 18886 +++++++++---------- files/ru/conflicting/glossary/chrome/index.html | 3 +- .../cascade_and_inheritance/index.html | 5 +- .../learn/css/building_blocks/selectors/index.html | 3 +- .../index.html | 4 +- .../css/building_blocks/styling_tables/index.html | 3 +- .../building_blocks/values_and_units/index.html | 3 +- .../first_steps/how_css_is_structured/index.html | 3 +- .../learn/css/first_steps/how_css_works/index.html | 3 +- .../index.html | 6 +- .../index.html | 6 +- .../conflicting/learn/css/first_steps/index.html | 5 +- files/ru/conflicting/learn/css/index.html | 3 +- .../learn/css/styling_text/fundamentals/index.html | 3 +- .../learn/javascript/objects/index.html | 3 +- files/ru/conflicting/mdn/contribute/index.html | 3 +- files/ru/conflicting/mdn/tools/index.html | 3 +- files/ru/conflicting/mozilla/add-ons/index.html | 3 +- .../mozilla/firefox/releases/index.html | 3 +- files/ru/conflicting/tools/performance/index.html | 3 +- files/ru/conflicting/web/accessibility/index.html | 3 +- .../api/canvas_api/a_basic_ray-caster/index.html | 3 +- .../web/api/crypto/getrandomvalues/index.html | 3 +- .../web/api/document_object_model/index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- files/ru/conflicting/web/api/element/index.html | 3 +- .../api/eventtarget/addeventlistener/index.html | 3 +- .../api/eventtarget/removeeventlistener/index.html | 3 +- .../ru/conflicting/web/api/geolocation/index.html | 3 +- .../api/htmlmediaelement/abort_event/index.html | 3 +- files/ru/conflicting/web/api/index.html | 3 +- files/ru/conflicting/web/api/node/index.html | 3 +- .../index.html | 3 +- files/ru/conflicting/web/api/push_api/index.html | 3 +- .../web/api/svgaelement/target/index.html | 3 +- .../conflicting/web/api/web_storage_api/index.html | 3 +- files/ru/conflicting/web/api/webrtc_api/index.html | 3 +- .../signaling_and_video_calling/index.html | 3 +- .../web/api/window/localstorage/index.html | 3 +- .../web/api/windoworworkerglobalscope/index.html | 3 +- .../index.html | 3 +- .../conflicting/web/api/xmlhttprequest/index.html | 3 +- files/ru/conflicting/web/css/@viewport/index.html | 3 +- files/ru/conflicting/web/css/_colon_is/index.html | 7 +- .../web/css/css_basic_user_interface/index.html | 3 +- .../basic_concepts_of_flexbox/index.html | 3 +- files/ru/conflicting/web/css/gap/index.html | 3 +- files/ru/conflicting/web/css/url()/index.html | 3 +- .../index.html | 3 +- files/ru/conflicting/web/guide/index.html | 3 +- files/ru/conflicting/web/guide/mobile/index.html | 3 +- files/ru/conflicting/web/http/cors/index.html | 3 +- files/ru/conflicting/web/http/csp/index.html | 3 +- .../ru/conflicting/web/javascript/guide/index.html | 3 +- .../web/javascript/guide/introduction/index.html | 3 +- .../index.html | 3 +- .../reference/global_objects/boolean/index.html | 3 +- .../reference/global_objects/date/index.html | 3 +- .../reference/global_objects/error/index.html | 3 +- .../reference/global_objects/evalerror/index.html | 3 +- .../reference/global_objects/function/index.html | 3 +- .../global_objects/generatorfunction/index.html | 3 +- .../global_objects/internalerror/index.html | 3 +- .../global_objects/intl/collator/index.html | 3 +- .../global_objects/intl/datetimeformat/index.html | 3 +- .../global_objects/intl/numberformat/index.html | 3 +- .../reference/global_objects/map/index.html | 3 +- .../reference/global_objects/number/index.html | 3 +- .../reference/global_objects/object/index.html | 3 +- .../reference/global_objects/promise/index.html | 3 +- .../global_objects/proxy/proxy/index.html | 3 +- .../reference/global_objects/rangeerror/index.html | 3 +- .../global_objects/referenceerror/index.html | 3 +- .../reference/global_objects/regexp/index.html | 3 +- .../reference/global_objects/set/index.html | 3 +- .../reference/global_objects/string/index.html | 3 +- .../reference/global_objects/symbol/index.html | 3 +- .../global_objects/syntaxerror/index.html | 3 +- .../reference/global_objects/typedarray/index.html | 3 +- .../reference/global_objects/typeerror/index.html | 3 +- .../reference/global_objects/urierror/index.html | 3 +- .../reference/global_objects/weakmap/index.html | 3 +- .../reference/global_objects/weakset/index.html | 3 +- .../web/javascript/reference/operators/index.html | 3 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../reference/statements/switch/index.html | 3 +- files/ru/conflicting/web/media/formats/index.html | 3 +- .../web/progressive_web_apps/index.html | 3 +- .../index.html | 3 +- files/ru/games/anatomy/index.html | 3 +- files/ru/games/introduction/index.html | 3 +- files/ru/games/tools/asm.js/index.html | 3 +- files/ru/games/tools/index.html | 3 +- .../bounce_off_the_walls/index.html | 3 +- .../build_the_brick_field/index.html | 3 +- .../collision_detection/index.html | 3 +- .../2d_breakout_game_phaser/extra_lives/index.html | 3 +- .../2d_breakout_game_phaser/game_over/index.html | 3 +- .../tutorials/2d_breakout_game_phaser/index.html | 3 +- .../initialize_the_framework/index.html | 3 +- .../index.html | 4 +- .../move_the_ball/index.html | 3 +- .../2d_breakout_game_phaser/physics/index.html | 3 +- .../player_paddle_and_controls/index.html | 3 +- .../2d_breakout_game_phaser/scaling/index.html | 3 +- .../2d_breakout_game_phaser/the_score/index.html | 3 +- .../win_the_game/index.html | 3 +- .../build_the_brick_field/index.html | 3 +- .../collision_detection/index.html | 3 +- .../create_the_canvas_and_draw_on_it/index.html | 4 +- .../finishing_up/index.html | 3 +- .../mouse_controls/index.html | 3 +- .../move_the_ball/index.html | 3 +- files/ru/glossary/404/index.html | 3 +- files/ru/glossary/502/index.html | 3 +- files/ru/glossary/abstraction/index.html | 3 +- files/ru/glossary/accessibility/index.html | 3 +- files/ru/glossary/adobe_flash/index.html | 3 +- files/ru/glossary/ajax/index.html | 3 +- files/ru/glossary/algorithm/index.html | 3 +- files/ru/glossary/api/index.html | 3 +- files/ru/glossary/apple_safari/index.html | 3 +- files/ru/glossary/application_context/index.html | 3 +- files/ru/glossary/argument/index.html | 3 +- files/ru/glossary/aria/index.html | 3 +- files/ru/glossary/arpa/index.html | 3 +- files/ru/glossary/arpanet/index.html | 3 +- files/ru/glossary/array/index.html | 5 +- files/ru/glossary/ascii/index.html | 3 +- files/ru/glossary/asynchronous/index.html | 3 +- files/ru/glossary/atag/index.html | 3 +- files/ru/glossary/attribute/index.html | 3 +- files/ru/glossary/bandwidth/index.html | 3 +- files/ru/glossary/base64/index.html | 3 +- files/ru/glossary/baseline/index.html | 3 +- files/ru/glossary/bidi/index.html | 3 +- files/ru/glossary/bigint/index.html | 3 +- files/ru/glossary/blink/index.html | 3 +- files/ru/glossary/block/scripting/index.html | 3 +- files/ru/glossary/boolean/index.html | 5 +- files/ru/glossary/bootstrap/index.html | 3 +- files/ru/glossary/browser/index.html | 3 +- files/ru/glossary/browsing_context/index.html | 3 +- files/ru/glossary/buffer/index.html | 3 +- "files/ru/glossary/b\303\251zier_curve/index.html" | 3 +- files/ru/glossary/cache/index.html | 3 +- files/ru/glossary/cacheable/index.html | 3 +- files/ru/glossary/call_stack/index.html | 3 +- files/ru/glossary/callback_function/index.html | 3 +- files/ru/glossary/canvas/index.html | 3 +- files/ru/glossary/card_sorting/index.html | 3 +- files/ru/glossary/cdn/index.html | 3 +- files/ru/glossary/certified/index.html | 3 +- files/ru/glossary/character/index.html | 3 +- files/ru/glossary/character_encoding/index.html | 3 +- files/ru/glossary/chrome/index.html | 3 +- files/ru/glossary/cia/index.html | 3 +- files/ru/glossary/class/index.html | 3 +- files/ru/glossary/cms/index.html | 3 +- files/ru/glossary/codec/index.html | 3 +- files/ru/glossary/compile/index.html | 3 +- files/ru/glossary/computer_programming/index.html | 3 +- files/ru/glossary/conditional/index.html | 3 +- files/ru/glossary/constant/index.html | 3 +- files/ru/glossary/constructor/index.html | 3 +- files/ru/glossary/cookie/index.html | 3 +- files/ru/glossary/copyleft/index.html | 3 +- files/ru/glossary/cors/index.html | 3 +- files/ru/glossary/crawler/index.html | 3 +- files/ru/glossary/crlf/index.html | 3 +- files/ru/glossary/csp/index.html | 3 +- files/ru/glossary/csrf/index.html | 3 +- files/ru/glossary/css/index.html | 3 +- files/ru/glossary/css_preprocessor/index.html | 3 +- files/ru/glossary/css_selector/index.html | 3 +- files/ru/glossary/data_structure/index.html | 3 +- files/ru/glossary/decryption/index.html | 3 +- files/ru/glossary/developer_tools/index.html | 3 +- files/ru/glossary/dns/index.html | 3 +- files/ru/glossary/doctype/index.html | 3 +- files/ru/glossary/dom/index.html | 3 +- files/ru/glossary/domain/index.html | 3 +- files/ru/glossary/domain_name/index.html | 3 +- files/ru/glossary/dos_attack/index.html | 3 +- .../dynamic_programming_language/index.html | 3 +- files/ru/glossary/ecma/index.html | 3 +- files/ru/glossary/ecmascript/index.html | 3 +- files/ru/glossary/element/index.html | 3 +- files/ru/glossary/empty_element/index.html | 3 +- files/ru/glossary/encapsulation/index.html | 3 +- files/ru/glossary/entity/index.html | 3 +- files/ru/glossary/entity_header/index.html | 3 +- files/ru/glossary/event/index.html | 3 +- files/ru/glossary/expando/index.html | 3 +- files/ru/glossary/falsy/index.html | 3 +- files/ru/glossary/first-class_function/index.html | 3 +- .../ru/glossary/first_contentful_paint/index.html | 3 +- files/ru/glossary/first_cpu_idle/index.html | 3 +- files/ru/glossary/first_input_delay/index.html | 3 +- files/ru/glossary/first_interactive/index.html | 3 +- .../ru/glossary/first_meaningful_paint/index.html | 3 +- files/ru/glossary/first_paint/index.html | 3 +- files/ru/glossary/flex_item/index.html | 3 +- files/ru/glossary/flexbox/index.html | 3 +- files/ru/glossary/forbidden_header_name/index.html | 3 +- .../forbidden_response_header_name/index.html | 3 +- files/ru/glossary/fps/index.html | 3 +- files/ru/glossary/ftp/index.html | 3 +- files/ru/glossary/function/index.html | 3 +- files/ru/glossary/gecko/index.html | 3 +- files/ru/glossary/general_header/index.html | 3 +- files/ru/glossary/git/index.html | 3 +- files/ru/glossary/global_object/index.html | 3 +- files/ru/glossary/global_variable/index.html | 3 +- files/ru/glossary/grid/index.html | 3 +- files/ru/glossary/grid_column/index.html | 3 +- files/ru/glossary/hash/index.html | 3 +- files/ru/glossary/head/index.html | 3 +- .../high-level_programming_language/index.html | 3 +- files/ru/glossary/hoisting/index.html | 3 +- files/ru/glossary/host/index.html | 3 +- files/ru/glossary/html/index.html | 3 +- files/ru/glossary/html5/index.html | 3 +- files/ru/glossary/http/index.html | 3 +- files/ru/glossary/http_2/index.html | 3 +- files/ru/glossary/https/index.html | 3 +- files/ru/glossary/hypertext/index.html | 3 +- files/ru/glossary/iana/index.html | 3 +- files/ru/glossary/icann/index.html | 3 +- files/ru/glossary/idempotent/index.html | 3 +- files/ru/glossary/identifier/index.html | 3 +- files/ru/glossary/ietf/index.html | 3 +- files/ru/glossary/iife/index.html | 3 +- files/ru/glossary/index.html | 3 +- files/ru/glossary/indexeddb/index.html | 3 +- .../glossary/information_architecture/index.html | 3 +- files/ru/glossary/internet/index.html | 3 +- files/ru/glossary/ip_address/index.html | 3 +- files/ru/glossary/iso/index.html | 3 +- files/ru/glossary/isp/index.html | 3 +- files/ru/glossary/java/index.html | 3 +- files/ru/glossary/javascript/index.html | 3 +- files/ru/glossary/jpeg/index.html | 3 +- files/ru/glossary/jquery/index.html | 3 +- files/ru/glossary/json/index.html | 3 +- files/ru/glossary/loop/index.html | 3 +- files/ru/glossary/main_axis/index.html | 3 +- files/ru/glossary/mathml/index.html | 3 +- files/ru/glossary/metadata/index.html | 3 +- files/ru/glossary/method/index.html | 3 +- .../microsoft_internet_explorer/index.html | 3 +- files/ru/glossary/mime_type/index.html | 3 +- files/ru/glossary/mixin/index.html | 3 +- files/ru/glossary/node.js/index.html | 3 +- files/ru/glossary/null/index.html | 3 +- files/ru/glossary/number/index.html | 3 +- files/ru/glossary/object/index.html | 3 +- files/ru/glossary/oop/index.html | 3 +- files/ru/glossary/opengl/index.html | 3 +- files/ru/glossary/origin/index.html | 3 +- files/ru/glossary/php/index.html | 3 +- files/ru/glossary/pixel/index.html | 3 +- files/ru/glossary/polymorphism/index.html | 3 +- files/ru/glossary/port/index.html | 3 +- files/ru/glossary/primitive/index.html | 3 +- files/ru/glossary/privileged_code/index.html | 3 +- files/ru/glossary/progressive_web_apps/index.html | 3 +- files/ru/glossary/promise/index.html | 3 +- files/ru/glossary/property/index.html | 3 +- files/ru/glossary/protocol/index.html | 3 +- .../prototype-based_programming/index.html | 3 +- files/ru/glossary/prototype/index.html | 3 +- files/ru/glossary/proxy_server/index.html | 3 +- files/ru/glossary/pseudo-element/index.html | 3 +- files/ru/glossary/pseudocode/index.html | 3 +- files/ru/glossary/reflow/index.html | 3 +- files/ru/glossary/regular_expression/index.html | 3 +- files/ru/glossary/request_header/index.html | 3 +- files/ru/glossary/responsive_web_design/index.html | 3 +- files/ru/glossary/round_trip_time_(rtt)/index.html | 3 +- files/ru/glossary/safe/index.html | 3 +- files/ru/glossary/scroll_container/index.html | 3 +- files/ru/glossary/sdp/index.html | 3 +- .../self-executing_anonymous_function/index.html | 3 +- files/ru/glossary/semantics/index.html | 3 +- files/ru/glossary/seo/index.html | 3 +- files/ru/glossary/server/index.html | 3 +- files/ru/glossary/sgml/index.html | 3 +- files/ru/glossary/simple_header/index.html | 3 +- .../ru/glossary/simple_response_header/index.html | 3 +- files/ru/glossary/sloppy_mode/index.html | 3 +- files/ru/glossary/specification/index.html | 3 +- files/ru/glossary/speculative_parsing/index.html | 3 +- files/ru/glossary/statement/index.html | 3 +- files/ru/glossary/static_typing/index.html | 3 +- files/ru/glossary/string/index.html | 3 +- files/ru/glossary/svg/index.html | 3 +- files/ru/glossary/symbol/index.html | 3 +- files/ru/glossary/synchronous/index.html | 3 +- files/ru/glossary/tag/index.html | 3 +- files/ru/glossary/tcp/index.html | 3 +- files/ru/glossary/time_to_first_byte/index.html | 3 +- files/ru/glossary/time_to_interactive/index.html | 3 +- files/ru/glossary/tls/index.html | 3 +- files/ru/glossary/truthy/index.html | 3 +- files/ru/glossary/type/index.html | 3 +- files/ru/glossary/type_coercion/index.html | 3 +- files/ru/glossary/type_conversion/index.html | 3 +- files/ru/glossary/ui/index.html | 3 +- files/ru/glossary/undefined/index.html | 3 +- files/ru/glossary/url/index.html | 3 +- files/ru/glossary/user_agent/index.html | 3 +- files/ru/glossary/variable/index.html | 3 +- files/ru/glossary/vendor_prefix/index.html | 3 +- files/ru/glossary/viewport/index.html | 3 +- files/ru/glossary/w3c/index.html | 3 +- files/ru/glossary/wai/index.html | 3 +- files/ru/glossary/webkit/index.html | 3 +- files/ru/glossary/websockets/index.html | 3 +- files/ru/glossary/whatwg/index.html | 3 +- files/ru/glossary/whitespace/index.html | 3 +- files/ru/glossary/world_wide_web/index.html | 3 +- files/ru/glossary/wrapper/index.html | 3 +- files/ru/glossary/xhr_(xmlhttprequest)/index.html | 3 +- files/ru/glossary/xhtml/index.html | 3 +- files/ru/glossary/xml/index.html | 3 +- .../accessibility_troubleshooting/index.html | 3 +- .../accessibility/css_and_javascript/index.html | 3 +- files/ru/learn/accessibility/html/index.html | 3 +- files/ru/learn/accessibility/index.html | 3 +- files/ru/learn/accessibility/mobile/index.html | 3 +- files/ru/learn/accessibility/multimedia/index.html | 3 +- .../learn/accessibility/wai-aria_basics/index.html | 3 +- .../accessibility/what_is_accessibility/index.html | 3 +- .../how_does_the_internet_work/index.html | 3 +- .../index.html | 5 +- .../what_are_browser_developer_tools/index.html | 3 +- .../what_are_hyperlinks/index.html | 3 +- .../what_is_a_domain_name/index.html | 3 +- .../common_questions/what_is_a_url/index.html | 3 +- .../what_is_a_web_server/index.html | 3 +- .../css/building_blocks/cascade_tasks/index.html | 3 +- .../fundamental_css_comprehension/index.html | 3 +- .../selectors/attribute_selectors/index.html | 3 +- .../selectors/combinators/index.html | 3 +- .../learn/css/building_blocks/selectors/index.html | 3 +- .../pseudo-classes_and_pseudo-elements/index.html | 5 +- .../selectors/selectors_tasks/index.html | 3 +- .../type_class_and_id_selectors/index.html | 5 +- .../css/css_layout/multicol_skills/index.html | 3 +- .../css_layout/multiple-column_layout/index.html | 3 +- .../ru/learn/css/css_layout/normal_flow/index.html | 3 +- .../css/css_layout/position_skills/index.html | 3 +- .../css/css_layout/responsive_design/index.html | 3 +- .../first_steps/how_css_is_structured/index.html | 3 +- .../learn/css/first_steps/what_is_css/index.html | 3 +- files/ru/learn/css/howto/css_faq/index.html | 3 +- files/ru/learn/css/howto/index.html | 3 +- .../css/styling_text/styling_lists/index.html | 3 +- .../styling_text/typesetting_a_homepage/index.html | 3 +- .../ru/learn/css/styling_text/web_fonts/index.html | 3 +- .../forms/basic_native_form_controls/index.html | 3 +- files/ru/learn/forms/form_validation/index.html | 3 +- .../how_to_build_custom_form_controls/index.html | 3 +- .../forms/how_to_structure_a_web_form/index.html | 3 +- files/ru/learn/forms/index.html | 3 +- .../sending_and_retrieving_form_data/index.html | 3 +- .../sending_forms_through_javascript/index.html | 3 +- files/ru/learn/forms/styling_web_forms/index.html | 3 +- files/ru/learn/forms/your_first_form/index.html | 3 +- files/ru/learn/front-end_web_developer/index.html | 3 +- .../installing_basic_software/index.html | 3 +- .../the_web_and_web_standards/index.html | 3 +- .../author_fast-loading_html_pages/index.html | 3 +- files/ru/learn/html/howto/index.html | 3 +- .../html/howto/use_data_attributes/index.html | 3 +- .../advanced_text_formatting/index.html | 3 +- .../creating_hyperlinks/index.html | 3 +- .../introduction_to_html/debugging_html/index.html | 3 +- .../document_and_website_structure/index.html | 3 +- .../getting_started/index.html | 3 +- .../html_text_fundamentals/index.html | 3 +- .../ru/learn/html/introduction_to_html/index.html | 3 +- .../marking_up_a_letter/index.html | 3 +- .../structuring_a_page_of_content/index.html | 3 +- .../the_head_metadata_in_html/index.html | 3 +- .../adding_vector_graphics_to_the_web/index.html | 3 +- .../images_in_html/index.html | 3 +- .../test_your_skills_colon__html_images/index.html | 4 +- .../mozilla_splash_page/index.html | 3 +- .../asynchronous/timeouts_and_intervals/index.html | 3 +- .../javascript/building_blocks/events/index.html | 3 +- .../first_steps/a_first_splash/index.html | 3 +- .../learn/javascript/first_steps/arrays/index.html | 3 +- files/ru/learn/javascript/first_steps/index.html | 3 +- .../learn/javascript/first_steps/math/index.html | 3 +- .../first_steps/silly_story_generator/index.html | 3 +- .../javascript/first_steps/strings/index.html | 3 +- .../first_steps/useful_string_methods/index.html | 3 +- .../javascript/first_steps/variables/index.html | 3 +- .../first_steps/what_is_javascript/index.html | 3 +- .../first_steps/what_went_wrong/index.html | 3 +- .../adding_bouncing_balls_features/index.html | 3 +- .../ru/learn/javascript/objects/basics/index.html | 3 +- files/ru/learn/javascript/objects/index.html | 3 +- .../javascript/objects/inheritance/index.html | 3 +- files/ru/learn/javascript/objects/json/index.html | 3 +- .../objects/object-oriented_js/index.html | 3 +- .../objects/object_building_practice/index.html | 3 +- .../objects/object_prototypes/index.html | 3 +- .../server-side/django/authentication/index.html | 3 +- .../learn/server-side/django/deployment/index.html | 3 +- .../server-side/django/introduction/index.html | 3 +- .../learn/server-side/django/sessions/index.html | 3 +- .../tutorial_local_library_website/index.html | 3 +- .../first_steps/website_security/index.html | 3 +- .../client-side_javascript_frameworks/index.html | 3 +- .../react_getting_started/index.html | 4 +- files/ru/learn/tools_and_testing/github/index.html | 3 +- files/ru/mdn/at_ten/index.html | 3 +- .../index.html | 3 +- .../index.html | 5 +- .../howto/create_and_edit_pages/index.html | 3 +- files/ru/mdn/contribute/processes/index.html | 3 +- .../tools/kumascript/troubleshooting/index.html | 3 +- files/ru/mdn/tools/search/index.html | 3 +- files/ru/mdn/tools/unsupported_get_api/index.html | 3 +- files/ru/mdn/yari/index.html | 3 +- .../webextensions/internationalization/index.html | 3 +- .../webextensions/modify_a_web_page/index.html | 3 +- .../developer_guide/introduction/index.html | 3 +- .../mozilla/developer_guide/source_code/index.html | 3 +- .../1.5/using_firefox_1.5_caching/index.html | 3 +- files/ru/mozilla/firefox/releases/3.5/index.html | 3 +- files/ru/mozilla/firefox/releases/3/index.html | 3 +- files/ru/orphaned/glossary/polifill/index.html | 3 +- .../ru/orphaned/learn/how_to_contribute/index.html | 3 +- .../learn/html/forms/html5_updates/index.html | 3 +- .../orphaned/mdn/about/linking_to_mdn/index.html | 3 +- .../mdn/community/conversations/index.html | 3 +- files/ru/orphaned/mdn/community/index.html | 3 +- .../mdn/community/whats_happening/index.html | 3 +- .../mdn/community/working_in_community/index.html | 3 +- .../howto/create_an_mdn_account/index.html | 3 +- .../howto/do_a_technical_review/index.html | 3 +- .../howto/do_an_editorial_review/index.html | 3 +- .../howto/set_the_summary_for_a_page/index.html | 3 +- .../howto/tag_javascript_pages/index.html | 3 +- files/ru/orphaned/mdn/editor/basics/index.html | 3 +- .../mdn/editor/basics/page_controls/index.html | 3 +- .../orphaned/mdn/editor/basics/toolbar/index.html | 3 +- files/ru/orphaned/mdn/editor/images/index.html | 3 +- files/ru/orphaned/mdn/editor/index.html | 3 +- .../mdn/editor/keyboard_shortcuts/index.html | 3 +- files/ru/orphaned/mdn/editor/links/index.html | 3 +- files/ru/orphaned/mdn/editor/redirects/index.html | 3 +- .../ru/orphaned/mdn/editor/source_mode/index.html | 3 +- .../mdn/editor/syntax_highlighting/index.html | 3 +- files/ru/orphaned/mdn/editor/tables/index.html | 3 +- .../simple_live_sample_demo/index.html | 3 +- files/ru/orphaned/mdn/tools/feeds/index.html | 3 +- .../ru/orphaned/mdn/tools/page_deletion/index.html | 3 +- .../ru/orphaned/mdn/tools/page_watching/index.html | 3 +- .../add-ons/webextensions/debugging/index.html | 3 +- files/ru/orphaned/toolkit_api/index.html | 3 +- .../tools/add-ons/dom_inspector/index.html | 3 +- files/ru/orphaned/tools/add-ons/index.html | 3 +- .../checking_authenticity_with_password/index.html | 3 +- .../index.html" | 3 +- .../orphaned/web/html/element/element/index.html | 3 +- .../web/html/global_attributes/dropzone/index.html | 3 +- .../index.html" | 3 +- .../global_objects/array/prototype/index.html | 3 +- .../asyncfunction/prototype/index.html | 3 +- .../index.html" | 3 +- .../orphaned/web/manifest/serviceworker/index.html | 3 +- .../information_security_basics/index.html | 3 +- .../orphaned/web/svg/attribute/onload/index.html | 3 +- files/ru/orphaned/xml_in_mozilla/index.html | 3 +- files/ru/orphaned/xpcnativewrapper/index.html | 3 +- files/ru/orphaned/xpcom/index.html | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../index.html" | 3 +- .../\321\202\320\265\320\274\321\213/index.html" | 3 +- files/ru/plugins/roadmap/index.html | 3 +- files/ru/tools/accessibility_inspector/index.html | 3 +- files/ru/tools/browser_console/index.html | 5 +- .../debugger/how_to/debug_eval_sources/index.html | 3 +- .../how_to/pretty-print_a_minified_file/index.html | 3 +- .../page_inspector/how_to/edit_fonts/index.html | 3 +- .../how_to/examine_event_listeners/index.html | 3 +- .../how_to/open_the_inspector/index.html | 3 +- .../how_to/select_an_element/index.html | 3 +- .../page_inspector/keyboard_shortcuts/index.html | 3 +- files/ru/tools/performance/index.html | 3 +- files/ru/tools/performance/waterfall/index.html | 3 +- files/ru/tools/responsive_design_mode/index.html | 5 +- files/ru/tools/rulers/index.html | 3 +- files/ru/tools/web_console/ui_tour/index.html | 3 +- .../api/baseaudiocontext/createpanner/index.html | 3 +- .../api/baseaudiocontext/currenttime/index.html | 3 +- .../baseaudiocontext/decodeaudiodata/index.html | 3 +- .../tutorial/applying_styles_and_colors/index.html | 3 +- .../tutorial/basic_animations/index.html | 3 +- .../api/canvas_api/tutorial/compositing/index.html | 3 +- .../canvas_api/tutorial/drawing_shapes/index.html | 3 +- .../canvas_api/tutorial/drawing_text/index.html | 3 +- .../canvas_api/tutorial/using_images/index.html | 3 +- files/ru/web/api/crypto/getrandomvalues/index.html | 3 +- .../managing_screen_orientation/index.html | 3 +- files/ru/web/api/document/createelement/index.html | 3 +- files/ru/web/api/document/images/index.html | 3 +- .../api/document/readystatechange_event/index.html | 3 +- .../api/document_object_model/events/index.html | 3 +- .../api/document_object_model/examples/index.html | 3 +- files/ru/web/api/document_object_model/index.html | 3 +- .../document_object_model/introduction/index.html | 3 +- .../index.html | 3 +- .../documentorshadowroot/activeelement/index.html | 3 +- .../documentorshadowroot/getselection/index.html | 3 +- files/ru/web/api/element/blur_event/index.html | 3 +- files/ru/web/api/element/error_event/index.html | 3 +- files/ru/web/api/element/focusin_event/index.html | 3 +- files/ru/web/api/element/focusout_event/index.html | 3 +- .../web/api/elementcssinlinestyle/style/index.html | 3 +- .../introduction/index.html | 3 +- files/ru/web/api/fullscreen_api/index.html | 3 +- files/ru/web/api/geolocation_api/index.html | 3 +- .../using_the_geolocation_api/index.html | 3 +- .../drag_operations/index.html | 3 +- files/ru/web/api/html_drag_and_drop_api/index.html | 3 +- files/ru/web/api/htmlaudioelement/audio/index.html | 3 +- files/ru/web/api/htmlelement/accesskey/index.html | 3 +- files/ru/web/api/htmlelement/innertext/index.html | 3 +- .../api/htmlelement/transitionend_event/index.html | 3 +- .../api/htmlmediaelement/seeking_event/index.html | 3 +- .../api/htmlorforeignelement/dataset/index.html | 3 +- .../web/api/htmlorforeignelement/nonce/index.html | 3 +- .../api/htmlorforeignelement/tabindex/index.html | 3 +- .../echocancellation/index.html | 3 +- files/ru/web/api/navigator/connection/index.html | 3 +- files/ru/web/api/node/replacechild/index.html | 3 +- .../nextelementsibling/index.html | 3 +- files/ru/web/api/notation/index.html | 3 +- files/ru/web/api/page_visibility_api/index.html | 3 +- .../web_workers_api/using_web_workers/index.html | 3 +- .../creating_3d_objects_using_webgl/index.html | 3 +- .../ru/web/api/webrtc_api/connectivity/index.html | 3 +- files/ru/web/api/webrtc_api/protocols/index.html | 3 +- files/ru/web/api/websockets_api/index.html | 3 +- .../index.html | 3 +- .../api/window/domcontentloaded_event/index.html | 3 +- files/ru/web/api/window/load_event/index.html | 3 +- .../api/window/requestanimationframe/index.html | 3 +- .../api/window/unhandledrejection_event/index.html | 3 +- .../api/windoworworkerglobalscope/btoa/index.html | 3 +- .../settimeout/index.html | 3 +- files/ru/web/api/xmldocument/async/index.html | 3 +- .../api/xmlhttprequest/loadstart_event/index.html | 3 +- files/ru/web/css/actual_value/index.html | 3 +- files/ru/web/css/comments/index.html | 3 +- .../css_animations/using_css_animations/index.html | 3 +- .../border-radius_generator/index.html | 3 +- .../box-shadow_generator/index.html | 3 +- .../web/css/css_backgrounds_and_borders/index.html | 3 +- .../using_multiple_backgrounds/index.html | 3 +- .../index.html | 5 +- .../introduction_to_the_css_box_model/index.html | 5 +- files/ru/web/css/css_color/index.html | 3 +- .../using_multi-column_layouts/index.html | 3 +- .../aligning_items_in_a_flex_container/index.html | 3 +- .../index.html | 4 +- .../index.html | 3 +- .../intro_to_formatting_contexts/index.html | 3 +- .../index.html | 7 +- .../css_grid_layout/grid_template_areas/index.html | 3 +- .../line-based_placement_with_css_grid/index.html | 5 +- .../adding_z-index/index.html | 3 +- .../understanding_z_index/index.html | 3 +- .../stacking_without_z-index/index.html | 3 +- files/ru/web/css/css_selectors/index.html | 3 +- .../index.html | 7 +- files/ru/web/css/layout_mode/index.html | 3 +- files/ru/web/css/length/index.html | 3 +- .../media_queries/testing_media_queries/index.html | 3 +- files/ru/web/css/pseudo-classes/index.html | 3 +- files/ru/web/css/replaced_element/index.html | 3 +- files/ru/web/css/specified_value/index.html | 3 +- files/ru/web/css/syntax/index.html | 3 +- .../ru/web/css/visual_formatting_model/index.html | 3 +- files/ru/web/guide/ajax/getting_started/index.html | 3 +- .../creating_and_triggering_events/index.html | 3 +- files/ru/web/guide/graphics/index.html | 3 +- .../html/html5/constraint_validation/index.html | 3 +- files/ru/web/guide/html/html5/index.html | 3 +- .../html/html5/introduction_to_html5/index.html | 3 +- .../using_html_sections_and_outlines/index.html | 3 +- files/ru/web/guide/performance/index.html | 3 +- .../ru/web/html/attributes/crossorigin/index.html | 3 +- files/ru/web/html/element/button/index.html | 3 +- files/ru/web/html/element/link/index.html | 3 +- files/ru/web/html/inline_elements/index.html | 3 +- files/ru/web/html/link_types/index.html | 3 +- files/ru/web/html/reference/index.html | 3 +- .../html/using_the_application_cache/index.html | 3 +- files/ru/web/http/authentication/index.html | 3 +- .../identifying_resources_on_the_web/index.html | 3 +- files/ru/web/http/caching/index.html | 3 +- files/ru/web/http/cookies/index.html | 3 +- .../ru/web/http/headers/accept-charset/index.html | 3 +- .../ru/web/http/headers/accept-language/index.html | 3 +- files/ru/web/http/headers/accept-patch/index.html | 3 +- files/ru/web/http/headers/accept-ranges/index.html | 3 +- files/ru/web/http/headers/accept/index.html | 3 +- .../access-control-allow-headers/index.html | 3 +- .../access-control-allow-methods/index.html | 3 +- .../headers/access-control-allow-origin/index.html | 3 +- .../http/headers/access-control-max-age/index.html | 3 +- files/ru/web/http/headers/authorization/index.html | 3 +- files/ru/web/http/headers/cache-control/index.html | 3 +- files/ru/web/http/headers/connection/index.html | 3 +- .../http/headers/content-disposition/index.html | 3 +- .../web/http/headers/content-encoding/index.html | 3 +- .../web/http/headers/content-language/index.html | 3 +- .../ru/web/http/headers/content-length/index.html | 3 +- files/ru/web/http/headers/content-type/index.html | 3 +- files/ru/web/http/headers/date/index.html | 3 +- files/ru/web/http/headers/dnt/index.html | 3 +- files/ru/web/http/headers/etag/index.html | 3 +- files/ru/web/http/headers/expect/index.html | 3 +- files/ru/web/http/headers/expires/index.html | 3 +- files/ru/web/http/headers/host/index.html | 3 +- files/ru/web/http/headers/if-match/index.html | 3 +- .../web/http/headers/if-modified-since/index.html | 3 +- .../http/headers/if-unmodified-since/index.html | 3 +- files/ru/web/http/headers/index.html | 3 +- files/ru/web/http/headers/last-modified/index.html | 3 +- files/ru/web/http/headers/origin/index.html | 3 +- files/ru/web/http/headers/pragma/index.html | 3 +- files/ru/web/http/headers/range/index.html | 3 +- files/ru/web/http/headers/referer/index.html | 3 +- files/ru/web/http/headers/retry-after/index.html | 3 +- files/ru/web/http/headers/set-cookie/index.html | 3 +- .../headers/strict-transport-security/index.html | 3 +- files/ru/web/http/headers/vary/index.html | 3 +- .../http/headers/x-content-type-options/index.html | 3 +- .../ru/web/http/headers/x-forwarded-for/index.html | 3 +- .../web/http/headers/x-xss-protection/index.html | 3 +- .../ru/web/javascript/about_javascript/index.html | 3 +- .../web/javascript/guide/introduction/index.html | 3 +- .../guide/loops_and_iteration/index.html | 3 +- .../web/javascript/guide/using_promises/index.html | 3 +- files/ru/web/javascript/reference/about/index.html | 3 +- .../classes/private_class_fields/index.html | 3 +- .../classes/public_class_fields/index.html | 3 +- .../reference/errors/var_hides_argument/index.html | 3 +- .../functions/method_definitions/index.html | 3 +- .../proxy/proxy/deleteproperty/index.html | 3 +- .../global_objects/proxy/proxy/set/index.html | 3 +- .../global_objects/string/trimend/index.html | 3 +- .../global_objects/string/trimstart/index.html | 3 +- .../reference/operators/assignment/index.html | 3 +- .../reference/operators/comma_operator/index.html | 3 +- .../operators/conditional_operator/index.html | 3 +- .../reference/operators/grouping/index.html | 3 +- .../operators/pipeline_operator/index.html | 3 +- .../reference/statements/block/index.html | 3 +- .../reference/template_literals/index.html | 3 +- files/ru/web/javascript/shells/index.html | 3 +- files/ru/web/mathml/attribute/index.html | 3 +- .../deriving_the_quadratic_formula/index.html | 3 +- files/ru/web/mathml/examples/index.html | 3 +- .../examples/mathml_pythagorean_theorem/index.html | 3 +- .../ru/web/media/formats/webrtc_codecs/index.html | 5 +- .../index.html | 3 +- files/ru/web/performance/fundamentals/index.html | 3 +- files/ru/web/svg/element/a/index.html | 3 +- files/ru/web/svg/element/animate/index.html | 3 +- files/ru/web/svg/element/animatemotion/index.html | 3 +- files/ru/web/svg/element/circle/index.html | 3 +- files/ru/web/svg/element/defs/index.html | 3 +- files/ru/web/svg/element/ellipse/index.html | 3 +- files/ru/web/svg/element/feblend/index.html | 3 +- files/ru/web/svg/element/foreignobject/index.html | 3 +- files/ru/web/svg/element/g/index.html | 3 +- files/ru/web/svg/element/image/index.html | 3 +- files/ru/web/svg/element/index.html | 3 +- files/ru/web/svg/element/line/index.html | 3 +- files/ru/web/svg/element/lineargradient/index.html | 3 +- files/ru/web/svg/element/path/index.html | 3 +- files/ru/web/svg/element/pattern/index.html | 3 +- files/ru/web/svg/element/polygon/index.html | 3 +- files/ru/web/svg/element/radialgradient/index.html | 3 +- files/ru/web/svg/element/rect/index.html | 3 +- files/ru/web/svg/element/svg/index.html | 3 +- files/ru/web/svg/element/text/index.html | 3 +- files/ru/web/svg/element/use/index.html | 3 +- files/ru/web/svg/tutorial/basic_shapes/index.html | 5 +- .../svg/tutorial/basic_transformations/index.html | 3 +- files/ru/web/svg/tutorial/introduction/index.html | 3 +- files/ru/web/svg/tutorial/positions/index.html | 5 +- files/ru/web/svg/tutorial/svg_and_css/index.html | 3 +- .../using_custom_elements/index.html | 3 +- files/ru/web/xpath/functions/floor/index.html | 3 +- files/ru/web/xpath/functions/index.html | 3 +- 726 files changed, 11720 insertions(+), 10268 deletions(-) (limited to 'files/ru/web/api') diff --git a/files/ru/_redirects.txt b/files/ru/_redirects.txt index b1507c4489..eb2ee1dbbb 100644 --- a/files/ru/_redirects.txt +++ b/files/ru/_redirects.txt @@ -1,13 +1,15 @@ # FROM-URL TO-URL /ru/docs/AJAX /ru/docs/Web/Guide/AJAX -/ru/docs/AJAX/С_чего_начать /ru/docs/Web/Guide/AJAX/С_чего_начать -/ru/docs/AJAX/С_чего_начать? /ru/docs/Web/Guide/AJAX/С_чего_начать? -/ru/docs/AJAX:С_чего_начать /ru/docs/Web/Guide/AJAX/С_чего_начать -/ru/docs/AJAX:С_чего_начать? /ru/docs/Web/Guide/AJAX/С_чего_начать? +/ru/docs/AJAX/С_чего_начать /ru/docs/Web/Guide/AJAX/Getting_Started +/ru/docs/AJAX/С_чего_начать? /ru/docs/orphaned/Web/Guide/AJAX/С_чего_начать? +/ru/docs/AJAX:С_чего_начать /ru/docs/Web/Guide/AJAX/Getting_Started +/ru/docs/AJAX:С_чего_начать? /ru/docs/orphaned/Web/Guide/AJAX/С_чего_начать? +/ru/docs/A_Basic_RayCaster /ru/docs/conflicting/Web/API/Canvas_API/A_basic_ray-caster /ru/docs/Accessibility /ru/docs/Web/Accessibility /ru/docs/Accessibility/Keyboard-navigable_JavaScript_widgets /ru/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets /ru/docs/Apps/Progressive /ru/docs/Web/Progressive_web_apps -/ru/docs/Apps/Progressive/Заметный /ru/docs/Web/Progressive_web_apps/Заметный +/ru/docs/Apps/Progressive/Заметный /ru/docs/conflicting/Web/Progressive_web_apps_628955cdadd77b10ec99de034fc76374 +/ru/docs/Building_an_Extension /ru/docs/conflicting/Mozilla/Add-ons /ru/docs/CSS /ru/docs/Web/CSS /ru/docs/CSS/:active /ru/docs/Web/CSS/:active /ru/docs/CSS/@namespace /ru/docs/Web/CSS/@namespace @@ -17,7 +19,8 @@ /ru/docs/CSS/background-repeat /ru/docs/Web/CSS/background-repeat /ru/docs/CSS/display /ru/docs/Web/CSS/display /ru/docs/CSS/float /ru/docs/Web/CSS/float -/ru/docs/CSS/Синтаксис /ru/docs/Web/CSS/Синтаксис +/ru/docs/CSS/Синтаксис /ru/docs/Web/CSS/Syntax +/ru/docs/Chrome /ru/docs/conflicting/Glossary/Chrome /ru/docs/Core_JavaScript_1.5_Reference /ru/docs/Web/JavaScript/Reference /ru/docs/Core_JavaScript_1.5_Reference/Functions /ru/docs/Web/JavaScript/Guide/Functions /ru/docs/Core_JavaScript_1.5_Reference/Global_Functions /ru/docs/Web/JavaScript/Reference/Global_Objects @@ -36,33 +39,65 @@ /ru/docs/Core_JavaScript_1.5_Reference:Global_Objects /ru/docs/Web/JavaScript/Reference/Global_Objects /ru/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array /ru/docs/Web/JavaScript/Reference/Global_Objects/Array /ru/docs/Core_JavaScript_1.5_Reference:Global_Objects:Boolean /ru/docs/Web/JavaScript/Reference/Global_Objects/Boolean -/ru/docs/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System /ru/docs/Создание_расширения_для_Firefox_с_использованием_Mozilla_Build_System +/ru/docs/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System /ru/docs/orphaned/Создание_расширения_для_Firefox_с_использованием_Mozilla_Build_System +/ru/docs/DOM /ru/docs/conflicting/Web/API/Document_Object_Model +/ru/docs/DOM/DOM_Reference /ru/docs/Web/API/Document_Object_Model +/ru/docs/DOM/DOM_Reference/Events /ru/docs/Web/API/Document_Object_Model/Events +/ru/docs/DOM/DOM_Reference/Examples /ru/docs/Web/API/Document_Object_Model/Examples +/ru/docs/DOM/DOM_Reference/Locating_DOM_elements_using_selectors /ru/docs/Web/API/Document_object_model/Locating_DOM_elements_using_selectors +/ru/docs/DOM/DOM_Reference/Введение /ru/docs/Web/API/Document_Object_Model/Introduction /ru/docs/DOM/HTMLTableElement /ru/docs/Web/API/HTMLTableElement /ru/docs/DOM/Node.compareDocumentPosition /ru/docs/Web/API/Node/compareDocumentPosition /ru/docs/DOM/Node.lastChild /ru/docs/Web/API/Node/lastChild +/ru/docs/DOM/Using_fullscreen_mode /ru/docs/Web/API/Fullscreen_API +/ru/docs/DOM/Using_web_workers /ru/docs/Web/API/Web_Workers_API/Using_web_workers +/ru/docs/DOM/document.createElement /ru/docs/Web/API/Document/createElement +/ru/docs/DOM/document.images /ru/docs/Web/API/Document/images /ru/docs/DOM/element /ru/docs/Web/API/Element /ru/docs/DOM/element.dispatchEvent /ru/docs/Web/API/EventTarget/dispatchEvent /ru/docs/DOM/element.getAttribute /ru/docs/Web/API/Element/getAttribute /ru/docs/DOM/element.onkeypress /ru/docs/Web/API/GlobalEventHandlers/onkeypress /ru/docs/DOM/table /ru/docs/Web/API/HTMLTableElement -/ru/docs/DOM:document.createElement /ru/docs/DOM/document.createElement +/ru/docs/DOM/window.requestAnimationFrame /ru/docs/Web/API/window/requestAnimationFrame +/ru/docs/DOM:document.createElement /ru/docs/Web/API/Document/createElement /ru/docs/DOM:table /ru/docs/Web/API/HTMLTableElement /ru/docs/Developer_Guide /ru/docs/Mozilla/Developer_guide /ru/docs/Developer_Guide/So_you_just_built_Firefox /ru/docs/Mozilla/Developer_guide/So_you_just_built_Firefox /ru/docs/Developer_Guide/mozilla-central /ru/docs/Mozilla/Developer_guide/mozilla-central -/ru/docs/Developer_Guide/Исходный_код /ru/docs/Mozilla/Developer_guide/Исходный_код -/ru/docs/Firefox_3_для_разработчика /ru/docs/Firefox_3_for_developers +/ru/docs/Developer_Guide/Исходный_код /ru/docs/Mozilla/Developer_guide/Source_Code +/ru/docs/Firefox_3.5_для_разработчика /ru/docs/Mozilla/Firefox/Releases/3.5 +/ru/docs/Firefox_3_for_developers /ru/docs/Mozilla/Firefox/Releases/3 +/ru/docs/Firefox_3_для_разработчика /ru/docs/Mozilla/Firefox/Releases/3 /ru/docs/Firefox_addons_developer_guide/Introduction_to_XUL—How_to_build_a_more_intuitive_UI-redirect-1 /ru/docs/Firefox_addons_developer_guide/Introduction_to_XUL—How_to_build_a_more_intuitive_UI /ru/docs/Firefox_addons_developer_guide/Знакомство_с_дополнениями /ru/docs/Firefox_addons_developer_guide/Introduction_to_Extensions /ru/docs/Firefox_addons_developer_guide/Технологии_используемые_при_разработке_расширений /ru/docs/Firefox_addons_developer_guide/Technologies_used_in_developing_extensions -/ru/docs/Glossary /ru/docs/Словарь -/ru/docs/Glossary/Boolean /ru/docs/Словарь/Boolean -/ru/docs/Glossary/Empty_element /ru/docs/Словарь/Empty_element -/ru/docs/Glossary/JavaScript /ru/docs/Словарь/JavaScript -/ru/docs/Glossary/Number /ru/docs/Словарь/Number -/ru/docs/Glossary/WebSockets /ru/docs/Словарь/WebSockets -/ru/docs/Glossary/undefined /ru/docs/Словарь/undefined -/ru/docs/Glossary/пустой_элемент /ru/docs/Словарь/Empty_element +/ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Заключение /ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Finishing_up +/ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Обнаружение_столкновений /ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Collision_detection +/ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Переместить_мяч /ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Move_the_ball +/ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Создаем_зону_кирпичей /ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Build_the_brick_field +/ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Создание_Canvas_и_рисование_на_нём /ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Create_the_Canvas_and_draw_on_it +/ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Управление_мышью /ru/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Mouse_controls +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser /ru/docs/Games/Tutorials/2D_breakout_game_Phaser +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Bounce_off_the_walls /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Bounce_off_the_walls +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Game_over /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Game_over +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Initialize_the_framework /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Initialize_the_framework +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Load_the_assets_and_print_them_on_screen /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Load_the_assets_and_print_them_on_screen +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Move_the_ball /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Move_the_ball +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Physics /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Physics +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Scaling /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Scaling +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Жизни /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Extra_lives +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Обработка_коллизий /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Collision_detection +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Очки /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/The_score +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Платформа_и_управление /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Player_paddle_and_controls +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Победа /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Win_the_game +/ru/docs/Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Создание_кирпичей /ru/docs/Games/Tutorials/2D_breakout_game_Phaser/Build_the_brick_field +/ru/docs/Games/Анатомия /ru/docs/Games/Anatomy +/ru/docs/Games/Ввод /ru/docs/Games/Introduction +/ru/docs/Games/Инструменты /ru/docs/Games/Tools +/ru/docs/Games/Инструменты/asm.js /ru/docs/Games/Tools/asm.js +/ru/docs/Glossary/Block/Скриптинг /ru/docs/Glossary/Block/Scripting +/ru/docs/Glossary/Polifill /ru/docs/orphaned/Glossary/Polifill +/ru/docs/Glossary/пустой_элемент /ru/docs/Glossary/Empty_element /ru/docs/HTML /ru/docs/Web/HTML /ru/docs/HTML/Canvas /ru/docs/Web/API/Canvas_API /ru/docs/HTML/Canvas/Рисование_графики_с_помощью_Canvas /ru/docs/Web/API/Canvas_API/Tutorial @@ -72,19 +107,23 @@ /ru/docs/HTML/Element/acronym /ru/docs/Web/HTML/Element/acronym /ru/docs/HTML/Element/form /ru/docs/Web/HTML/Element/form /ru/docs/HTML/Element/стиль /ru/docs/Web/HTML/Element/style -/ru/docs/HTML/Optimizing_Your_Pages_for_Speculative_Parsing /ru/docs/Web/HTML/Optimizing_Your_Pages_for_Speculative_Parsing -/ru/docs/HTML/Использование_кэширования_приложений /ru/docs/Web/HTML/Использование_кэширования_приложений +/ru/docs/HTML/HTML5 /ru/docs/Web/Guide/HTML/HTML5 +/ru/docs/HTML/HTML5/Constraint_validation /ru/docs/Web/Guide/HTML/HTML5/Constraint_validation +/ru/docs/HTML/HTML5/Введение_в_HTML5 /ru/docs/Web/Guide/HTML/HTML5/Introduction_to_HTML5 +/ru/docs/HTML/Optimizing_Your_Pages_for_Speculative_Parsing /ru/docs/Glossary/speculative_parsing +/ru/docs/HTML/Использование_кэширования_приложений /ru/docs/Web/HTML/Using_the_application_cache /ru/docs/IndexedDB /ru/docs/Web/API/IndexedDB_API /ru/docs/IndexedDB/Basic_Concepts_Behind_IndexedDB /ru/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB /ru/docs/IndexedDB/Using_IndexedDB /ru/docs/Web/API/IndexedDB_API/Using_IndexedDB +/ru/docs/Introduction_(alternate) /ru/docs/Mozilla/Developer_guide/Introduction /ru/docs/JavaScript /ru/docs/Web/JavaScript /ru/docs/JavaScript/A_re-introduction_to_JavaScript /ru/docs/Web/JavaScript/A_re-introduction_to_JavaScript /ru/docs/JavaScript/Data_structures /ru/docs/Web/JavaScript/Data_structures /ru/docs/JavaScript/ECMAScript_5_support_in_Mozilla /ru/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla /ru/docs/JavaScript/Guide /ru/docs/Web/JavaScript/Guide -/ru/docs/JavaScript/Guide/About /ru/docs/Web/JavaScript/Guide/About -/ru/docs/JavaScript/Guide/About_ru /ru/docs/Web/JavaScript/Guide/About -/ru/docs/JavaScript/Guide/About_ru-redirect-1 /ru/docs/Web/JavaScript/Guide/About +/ru/docs/JavaScript/Guide/About /ru/docs/conflicting/Web/JavaScript/Guide/Introduction +/ru/docs/JavaScript/Guide/About_ru /ru/docs/conflicting/Web/JavaScript/Guide/Introduction +/ru/docs/JavaScript/Guide/About_ru-redirect-1 /ru/docs/conflicting/Web/JavaScript/Guide/Introduction /ru/docs/JavaScript/Guide/Functions /ru/docs/Web/JavaScript/Guide/Functions /ru/docs/JavaScript/Guide/Functions-redirect-1 /ru/docs/Web/JavaScript/Guide/Functions /ru/docs/JavaScript/Guide/LiveConnect_Overview /ru/docs/Web/JavaScript/Guide/LiveConnect_Overview @@ -96,8 +135,8 @@ /ru/docs/JavaScript/Guide/Values,_variables,_and_literals-redirect-1 /ru/docs/Web/JavaScript/Guide/Grammar_and_types /ru/docs/JavaScript/Guide/Working_with_Objects /ru/docs/Web/JavaScript/Guide/Working_with_Objects /ru/docs/JavaScript/Guide/Working_with_Objects-redirect-1 /ru/docs/Web/JavaScript/Guide/Working_with_Objects -/ru/docs/JavaScript/Guide/ru_JavaScript_Overview /ru/docs/Web/JavaScript/Guide/JavaScript_Overview -/ru/docs/JavaScript/Guide/Об_этом_руководстве /ru/docs/Web/JavaScript/Guide/Об_этом_руководстве +/ru/docs/JavaScript/Guide/ru_JavaScript_Overview /ru/docs/conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b +/ru/docs/JavaScript/Guide/Об_этом_руководстве /ru/docs/orphaned/Web/JavaScript/Guide/Об_этом_руководстве /ru/docs/JavaScript/Guide/Регулярные выражения /ru/docs/Web/JavaScript/Guide/Regular_Expressions /ru/docs/JavaScript/Guide_ru /ru/docs/Web/JavaScript/Guide /ru/docs/JavaScript/Guide_ru/Inheritance_and_the_prototype_chain_ru /ru/docs/Web/JavaScript/Inheritance_and_the_prototype_chain @@ -114,7 +153,7 @@ /ru/docs/JavaScript/Reference/Global_Objects/Array/every /ru/docs/Web/JavaScript/Reference/Global_Objects/Array/every /ru/docs/JavaScript/Reference/Global_Objects/Array/forEach /ru/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach /ru/docs/JavaScript/Reference/Global_Objects/Array/map /ru/docs/Web/JavaScript/Reference/Global_Objects/Array/map -/ru/docs/JavaScript/Reference/Global_Objects/Array/prototype /ru/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype +/ru/docs/JavaScript/Reference/Global_Objects/Array/prototype /ru/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype /ru/docs/JavaScript/Reference/Global_Objects/Array/some /ru/docs/Web/JavaScript/Reference/Global_Objects/Array/some /ru/docs/JavaScript/Reference/Global_Objects/Date /ru/docs/Web/JavaScript/Reference/Global_Objects/Date /ru/docs/JavaScript/Reference/Global_Objects/Date/toLocaleDateString /ru/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString @@ -138,25 +177,41 @@ /ru/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor /ru/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor /ru/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty /ru/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty /ru/docs/JavaScript/Reference/Global_Objects/Object/is /ru/docs/Web/JavaScript/Reference/Global_Objects/Object/is -/ru/docs/JavaScript/Reference/Global_Objects/Object/prototype /ru/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype +/ru/docs/JavaScript/Reference/Global_Objects/Object/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Object /ru/docs/JavaScript/Reference/Global_Objects/Object/valueOf /ru/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf /ru/docs/JavaScript/Reference/Global_Objects/String /ru/docs/Web/JavaScript/Reference/Global_Objects/String /ru/docs/JavaScript/Reference/Global_Objects/String/replace /ru/docs/Web/JavaScript/Reference/Global_Objects/String/replace /ru/docs/JavaScript/Reference/Operators /ru/docs/Web/JavaScript/Reference/Operators /ru/docs/JavaScript/Reference/Operators/Operator_Precedence /ru/docs/Web/JavaScript/Reference/Operators/Operator_Precedence /ru/docs/JavaScript/Reference/Operators/delete /ru/docs/Web/JavaScript/Reference/Operators/delete -/ru/docs/JavaScript/Reference/Operators/Оператор_Запятая /ru/docs/Web/JavaScript/Reference/Operators/Оператор_Запятая +/ru/docs/JavaScript/Reference/Operators/Оператор_Запятая /ru/docs/Web/JavaScript/Reference/Operators/Comma_Operator /ru/docs/JavaScript/Reference/Statements /ru/docs/Web/JavaScript/Reference/Statements /ru/docs/JavaScript/Reference/Statements/let /ru/docs/Web/JavaScript/Reference/Statements/let -/ru/docs/JavaScript_Shells /ru/docs/Web/JavaScript/JavaScript_шеллы +/ru/docs/JavaScript_Shells /ru/docs/Web/JavaScript/Shells /ru/docs/JavaScript_technologies_overview /ru/docs/Web/JavaScript/JavaScript_technologies_overview -/ru/docs/JavaScript_шеллы /ru/docs/Web/JavaScript/JavaScript_шеллы +/ru/docs/JavaScript_шеллы /ru/docs/Web/JavaScript/Shells +/ru/docs/Learn/CSS/Building_blocks/Каскад_задачи /ru/docs/Learn/CSS/Building_blocks/Cascade_tasks +/ru/docs/Learn/CSS/Building_blocks/Селекторы /ru/docs/Learn/CSS/Building_blocks/Selectors +/ru/docs/Learn/CSS/Building_blocks/Селекторы/Attribute_selectors /ru/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors +/ru/docs/Learn/CSS/Building_blocks/Селекторы/Combinators /ru/docs/Learn/CSS/Building_blocks/Selectors/Combinators +/ru/docs/Learn/CSS/Building_blocks/Селекторы/Pseudo-classes_and_pseudo-elements /ru/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements +/ru/docs/Learn/CSS/Building_blocks/Селекторы/Type_Class_and_ID_Selectors /ru/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors +/ru/docs/Learn/CSS/Building_blocks/Селекторы/Селекторы_Задачи /ru/docs/Learn/CSS/Building_blocks/Selectors/Selectors_Tasks +/ru/docs/Learn/CSS/CSS_layout/Макет_с_несколькими_столбцами /ru/docs/Learn/CSS/CSS_layout/Multiple-column_Layout +/ru/docs/Learn/CSS/CSS_layout/Навыки_Multicol /ru/docs/Learn/CSS/CSS_layout/Multicol_skills +/ru/docs/Learn/CSS/CSS_layout/Навыки_позиционирования /ru/docs/Learn/CSS/CSS_layout/Position_skills +/ru/docs/Learn/CSS/CSS_layout/Нормальный_поток /ru/docs/Learn/CSS/CSS_layout/Normal_Flow +/ru/docs/Learn/CSS/CSS_layout/Отзывчивый_дизайн /ru/docs/Learn/CSS/CSS_layout/Responsive_Design +/ru/docs/Learn/CSS/CSS_properties /ru/docs/conflicting/Learn/CSS/Building_blocks/Selectors +/ru/docs/Learn/CSS/First_steps/Как_структурирован_CSS /ru/docs/Learn/CSS/First_steps/How_CSS_is_structured +/ru/docs/Learn/CSS/First_steps/Что_такое_CSS /ru/docs/Learn/CSS/First_steps/What_is_CSS /ru/docs/Learn/CSS/Introduction_to_CSS /en-US/docs/Learn/CSS/First_steps /ru/docs/Learn/CSS/Introduction_to_CSS/Attribute_selectors /en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors /ru/docs/Learn/CSS/Introduction_to_CSS/Box_model /en-US/docs/Learn/CSS/Building_blocks/The_box_model /ru/docs/Learn/CSS/Introduction_to_CSS/Cascade_and_inheritance /en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance /ru/docs/Learn/CSS/Introduction_to_CSS/Combinators_and_multiple_selectors /en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators /ru/docs/Learn/CSS/Introduction_to_CSS/How_CSS_works /en-US/docs/Learn/CSS/First_steps/How_CSS_works +/ru/docs/Learn/CSS/Introduction_to_CSS/Ponimanie_osnov_CSS /ru/docs/Learn/CSS/Building_blocks/Fundamental_CSS_comprehension /ru/docs/Learn/CSS/Introduction_to_CSS/Pseudo-classes_and_pseudo-elements /en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements /ru/docs/Learn/CSS/Introduction_to_CSS/Selectors /en-US/docs/Learn/CSS/Building_blocks/Selectors /ru/docs/Learn/CSS/Introduction_to_CSS/Simple_selectors /en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors @@ -166,57 +221,241 @@ /ru/docs/Learn/CSS/Styling_boxes /en-US/docs/Learn/CSS/Building_blocks /ru/docs/Learn/CSS/Styling_boxes/Box_model_recap /en-US/docs/Learn/CSS/Building_blocks/The_box_model /ru/docs/Learn/CSS/Styling_boxes/Styling_tables /ru/docs/Learn/CSS/Building_blocks/Styling_tables -/ru/docs/Learn/Getting_started_with_the_web/Installing_basic_software /ru/docs/Learn/Getting_started_with_the_web/Установка_базового_программного_обеспечения +/ru/docs/Learn/CSS/Styling_text/Веб_шрифты /ru/docs/Learn/CSS/Styling_text/Web_fonts +/ru/docs/Learn/CSS/Styling_text/Задание:_Стилизирование_школьного_сайта /ru/docs/Learn/CSS/Styling_text/Typesetting_a_homepage +/ru/docs/Learn/CSS/Styling_text/Стилизация_списков /ru/docs/Learn/CSS/Styling_text/Styling_lists +/ru/docs/Learn/CSS/Как /ru/docs/Learn/CSS/Howto +/ru/docs/Learn/Discover_browser_developer_tools /ru/docs/Learn/Common_questions/What_are_browser_developer_tools +/ru/docs/Learn/Getting_started_with_the_web/Веб_и_веб_стандарты /ru/docs/Learn/Getting_started_with_the_web/The_web_and_web_standards +/ru/docs/Learn/Getting_started_with_the_web/Установка_базового_программного_обеспечения /ru/docs/Learn/Getting_started_with_the_web/Installing_basic_software +/ru/docs/Learn/HTML/Forms /ru/docs/Learn/Forms +/ru/docs/Learn/HTML/Forms/How_to_build_custom_form_widgets /ru/docs/Learn/Forms/How_to_build_custom_form_controls +/ru/docs/Learn/HTML/Forms/How_to_structure_an_HTML_form /ru/docs/Learn/Forms/How_to_structure_a_web_form +/ru/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript /ru/docs/Learn/Forms/Sending_forms_through_JavaScript +/ru/docs/Learn/HTML/Forms/Styling_HTML_forms /ru/docs/Learn/Forms/Styling_web_forms +/ru/docs/Learn/HTML/Forms/Валидация_формы /ru/docs/Learn/Forms/Form_validation +/ru/docs/Learn/HTML/Forms/Ваша_первая_HTML_форма /ru/docs/Learn/Forms/Your_first_form +/ru/docs/Learn/HTML/Forms/Отправка_и_Получение_данных_формы /ru/docs/Learn/Forms/Sending_and_retrieving_form_data +/ru/docs/Learn/HTML/Forms/Стандартные_виджеты_форм /ru/docs/Learn/Forms/Basic_native_form_controls +/ru/docs/Learn/HTML/Multimedia_and_embedding/Добавление_r_graphics_to_the_Web /ru/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web +/ru/docs/Learn/HTML/Multimedia_and_embedding/Изображения_в_HTML /ru/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML +/ru/docs/Learn/HTML/Multimedia_and_embedding/Изображения_в_HTML/Проверьте_свои_знания:_Изображения_в_HTML /ru/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML/Test_your_skills:_HTML_images +/ru/docs/Learn/HTML/Multimedia_and_embedding/заставка_Mozilla /ru/docs/Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page +/ru/docs/Learn/HTML/Введение_в_HTML /ru/docs/Learn/HTML/Introduction_to_HTML +/ru/docs/Learn/HTML/Введение_в_HTML/Advanced_text_formatting /ru/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting +/ru/docs/Learn/HTML/Введение_в_HTML/Debugging_HTML /ru/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML +/ru/docs/Learn/HTML/Введение_в_HTML/HTML_text_fundamentals /ru/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals +/ru/docs/Learn/HTML/Введение_в_HTML/Marking_up_a_letter /ru/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter +/ru/docs/Learn/HTML/Введение_в_HTML/Structuring_a_page_of_content /ru/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content +/ru/docs/Learn/HTML/Введение_в_HTML/The_head_metadata_in_HTML /ru/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML +/ru/docs/Learn/HTML/Введение_в_HTML/Начало_работы /ru/docs/Learn/HTML/Introduction_to_HTML/Getting_started +/ru/docs/Learn/HTML/Введение_в_HTML/Создание_гиперссылок /ru/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks +/ru/docs/Learn/HTML/Введение_в_HTML/Структура_документа_и_веб-сайта /ru/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure +/ru/docs/Learn/HTML/Рецепты /ru/docs/Learn/HTML/Howto +/ru/docs/Learn/How_the_Internet_works /ru/docs/Learn/Common_questions/How_does_the_Internet_work +/ru/docs/Learn/JavaScript/Asynchronous/Таймауты_и_интервалы /ru/docs/Learn/JavaScript/Asynchronous/Timeouts_and_intervals +/ru/docs/Learn/JavaScript/Building_blocks/События /ru/docs/Learn/JavaScript/Building_blocks/Events +/ru/docs/Learn/JavaScript/Объекты /ru/docs/Learn/JavaScript/Objects +/ru/docs/Learn/JavaScript/Объекты/Adding_bouncing_balls_features /ru/docs/Learn/JavaScript/Objects/Adding_bouncing_balls_features +/ru/docs/Learn/JavaScript/Объекты/Inheritance /ru/docs/Learn/JavaScript/Objects/Inheritance +/ru/docs/Learn/JavaScript/Объекты/JSON /ru/docs/Learn/JavaScript/Objects/JSON +/ru/docs/Learn/JavaScript/Объекты/Object-oriented_JS /ru/docs/Learn/JavaScript/Objects/Object-oriented_JS +/ru/docs/Learn/JavaScript/Объекты/Object_building_practice /ru/docs/Learn/JavaScript/Objects/Object_building_practice +/ru/docs/Learn/JavaScript/Объекты/Object_prototypes /ru/docs/Learn/JavaScript/Objects/Object_prototypes +/ru/docs/Learn/JavaScript/Объекты/Основы /ru/docs/Learn/JavaScript/Objects/Basics +/ru/docs/Learn/JavaScript/Первые_шаги /ru/docs/Learn/JavaScript/First_steps +/ru/docs/Learn/JavaScript/Первые_шаги/A_first_splash /ru/docs/Learn/JavaScript/First_steps/A_first_splash +/ru/docs/Learn/JavaScript/Первые_шаги/Arrays /ru/docs/Learn/JavaScript/First_steps/Arrays +/ru/docs/Learn/JavaScript/Первые_шаги/Math /ru/docs/Learn/JavaScript/First_steps/Math +/ru/docs/Learn/JavaScript/Первые_шаги/Useful_string_methods /ru/docs/Learn/JavaScript/First_steps/Useful_string_methods +/ru/docs/Learn/JavaScript/Первые_шаги/Variables /ru/docs/Learn/JavaScript/First_steps/Variables +/ru/docs/Learn/JavaScript/Первые_шаги/What_is_JavaScript /ru/docs/Learn/JavaScript/First_steps/What_is_JavaScript +/ru/docs/Learn/JavaScript/Первые_шаги/Создатель_глуых_историй /ru/docs/Learn/JavaScript/First_steps/Silly_story_generator +/ru/docs/Learn/JavaScript/Первые_шаги/Строки /ru/docs/Learn/JavaScript/First_steps/Strings +/ru/docs/Learn/JavaScript/Первые_шаги/Что_пошло_не_так /ru/docs/Learn/JavaScript/First_steps/What_went_wrong +/ru/docs/Learn/Pages_sites_servers_and_search_engines /ru/docs/Learn/Common_questions/Pages_sites_servers_and_search_engines +/ru/docs/Learn/Server-side/Django/Аутентификация /ru/docs/Learn/Server-side/Django/Authentication +/ru/docs/Learn/Server-side/Django/Введение /ru/docs/Learn/Server-side/Django/Introduction +/ru/docs/Learn/Server-side/Django/Разворачивание /ru/docs/Learn/Server-side/Django/Deployment +/ru/docs/Learn/Server-side/Django/Сессии /ru/docs/Learn/Server-side/Django/Sessions +/ru/docs/Learn/Server-side/Express_Nodejs/Учебник_сайт_local_library /ru/docs/Learn/Server-side/Express_Nodejs/Tutorial_local_library_website +/ru/docs/Learn/Server-side/First_steps/Веб_Безопасность /ru/docs/Learn/Server-side/First_steps/Website_security +/ru/docs/Learn/Tools_and_testing/ГитХаб /ru/docs/Learn/Tools_and_testing/GitHub +/ru/docs/Learn/Tools_and_testing/Фронтенд_JavaScript_фреймворки /ru/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks +/ru/docs/Learn/Tools_and_testing/Фронтенд_JavaScript_фреймворки/React_getting_started /ru/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started +/ru/docs/Learn/Understanding_URLs /ru/docs/Learn/Common_questions/What_is_a_URL +/ru/docs/Learn/Understanding_domain_names /ru/docs/Learn/Common_questions/What_is_a_domain_name +/ru/docs/Learn/Understanding_links_on_the_web /ru/docs/Learn/Common_questions/What_are_hyperlinks /ru/docs/Learn/Джаваскрипт /ru/docs/Learn/JavaScript -/ru/docs/MDN/Contribute/Editor /ru/docs/MDN/Editor -/ru/docs/MDN/Contribute/Editor/Basics /ru/docs/MDN/Editor/Basics -/ru/docs/MDN/Contribute/Editor/Basics/Page_controls /ru/docs/MDN/Editor/Basics/Page_controls -/ru/docs/MDN/Contribute/Editor/Basics/Toolbar /ru/docs/MDN/Editor/Basics/Toolbar -/ru/docs/MDN/Contribute/Editor/Source_mode /ru/docs/MDN/Editor/Source_mode -/ru/docs/MDN/Contribute/Editor/Tables /ru/docs/MDN/Editor/Tables -/ru/docs/MDN/Contribute/Editor/Горячие_клавиши /ru/docs/MDN/Editor/Горячие_клавиши -/ru/docs/MDN/Contribute/Editor/Картинки /ru/docs/MDN/Editor/Картинки -/ru/docs/MDN/Contribute/Editor/Перенаправление /ru/docs/MDN/Editor/Перенаправление -/ru/docs/MDN/Contribute/Editor/Синтаксические_выделения /ru/docs/MDN/Editor/Синтаксические_выделения -/ru/docs/MDN/Contribute/Editor/Ссылки /ru/docs/MDN/Editor/Ссылки +/ru/docs/Learn/Доступность /ru/docs/Learn/Accessibility +/ru/docs/Learn/Доступность/Accessibility_troubleshooting /ru/docs/Learn/Accessibility/Accessibility_troubleshooting +/ru/docs/Learn/Доступность/CSS_and_JavaScript /ru/docs/Learn/Accessibility/CSS_and_JavaScript +/ru/docs/Learn/Доступность/HTML /ru/docs/Learn/Accessibility/HTML +/ru/docs/Learn/Доступность/Mobile /ru/docs/Learn/Accessibility/Mobile +/ru/docs/Learn/Доступность/Multimedia /ru/docs/Learn/Accessibility/Multimedia +/ru/docs/Learn/Доступность/WAI-ARIA_basics /ru/docs/Learn/Accessibility/WAI-ARIA_basics +/ru/docs/Learn/Доступность/What_is_accessibility /ru/docs/Learn/Accessibility/What_is_accessibility +/ru/docs/Learn/Как_сделать_вклад /ru/docs/orphaned/Learn/How_to_contribute +/ru/docs/Learn/Фронтенд_разработчик /ru/docs/Learn/Front-end_web_developer +/ru/docs/Learn/Что_такое_веб_сервер /ru/docs/Learn/Common_questions/What_is_a_web_server +/ru/docs/MDN/Contribute/Creating_and_editing_pages /ru/docs/MDN/Contribute/Howto/Create_and_edit_pages +/ru/docs/MDN/Contribute/Editor /ru/docs/orphaned/MDN/Editor +/ru/docs/MDN/Contribute/Editor/Basics /ru/docs/orphaned/MDN/Editor/Basics +/ru/docs/MDN/Contribute/Editor/Basics/Page_controls /ru/docs/orphaned/MDN/Editor/Basics/Page_controls +/ru/docs/MDN/Contribute/Editor/Basics/Toolbar /ru/docs/orphaned/MDN/Editor/Basics/Toolbar +/ru/docs/MDN/Contribute/Editor/Source_mode /ru/docs/orphaned/MDN/Editor/Source_mode +/ru/docs/MDN/Contribute/Editor/Tables /ru/docs/orphaned/MDN/Editor/Tables +/ru/docs/MDN/Contribute/Editor/Горячие_клавиши /ru/docs/orphaned/MDN/Editor/Keyboard_shortcuts +/ru/docs/MDN/Contribute/Editor/Картинки /ru/docs/orphaned/MDN/Editor/Images +/ru/docs/MDN/Contribute/Editor/Перенаправление /ru/docs/orphaned/MDN/Editor/Redirects +/ru/docs/MDN/Contribute/Editor/Синтаксические_выделения /ru/docs/orphaned/MDN/Editor/Syntax_highlighting +/ru/docs/MDN/Contribute/Editor/Ссылки /ru/docs/orphaned/MDN/Editor/Links +/ru/docs/MDN/Contribute/Howto/Create_an_MDN_account /ru/docs/orphaned/MDN/Contribute/Howto/Create_an_MDN_account +/ru/docs/MDN/Contribute/Howto/Do_a_technical_review /ru/docs/orphaned/MDN/Contribute/Howto/Do_a_technical_review +/ru/docs/MDN/Contribute/Howto/Do_an_editorial_review /ru/docs/orphaned/MDN/Contribute/Howto/Do_an_editorial_review +/ru/docs/MDN/Contribute/Howto/Добавить_или_обновить_данные_о_браузерной_совместимости /ru/docs/MDN/Contribute/Howto/Add_or_update_browser_compatibility_data +/ru/docs/MDN/Contribute/Howto/Как_оптимизировать_страницы /ru/docs/orphaned/MDN/Contribute/Howto/Set_the_summary_for_a_page +/ru/docs/MDN/Contribute/Howto/Метки_JavaScript_страниц /ru/docs/orphaned/MDN/Contribute/Howto/Tag_JavaScript_pages +/ru/docs/MDN/Contribute/Howto/Создай_интерактивное_упражнение_для_помощи_в_изучении_веба /ru/docs/MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web /ru/docs/MDN/Contribute/Structures /ru/docs/MDN/Structures /ru/docs/MDN/Contribute/Structures/Live_samples /ru/docs/MDN/Structures/Live_samples -/ru/docs/MDN/Contribute/Structures/Live_samples/Simple_live_sample_demo /ru/docs/MDN/Structures/Live_samples/Simple_live_sample_demo +/ru/docs/MDN/Contribute/Structures/Live_samples/Simple_live_sample_demo /ru/docs/orphaned/MDN/Structures/Live_samples/Simple_live_sample_demo /ru/docs/MDN/Contribute/Tools /ru/docs/MDN/Tools -/ru/docs/MDN/Contribute/Tools/Page_watching /ru/docs/MDN/Tools/Page_watching +/ru/docs/MDN/Contribute/Tools/Page_watching /ru/docs/orphaned/MDN/Tools/Page_watching +/ru/docs/MDN/Contribute/Процессы /ru/docs/MDN/Contribute/Processes +/ru/docs/MDN/Editor /ru/docs/orphaned/MDN/Editor +/ru/docs/MDN/Editor/Basics /ru/docs/orphaned/MDN/Editor/Basics +/ru/docs/MDN/Editor/Basics/Page_controls /ru/docs/orphaned/MDN/Editor/Basics/Page_controls +/ru/docs/MDN/Editor/Basics/Toolbar /ru/docs/orphaned/MDN/Editor/Basics/Toolbar +/ru/docs/MDN/Editor/Source_mode /ru/docs/orphaned/MDN/Editor/Source_mode +/ru/docs/MDN/Editor/Tables /ru/docs/orphaned/MDN/Editor/Tables +/ru/docs/MDN/Editor/Горячие_клавиши /ru/docs/orphaned/MDN/Editor/Keyboard_shortcuts +/ru/docs/MDN/Editor/Картинки /ru/docs/orphaned/MDN/Editor/Images +/ru/docs/MDN/Editor/Перенаправление /ru/docs/orphaned/MDN/Editor/Redirects +/ru/docs/MDN/Editor/Синтаксические_выделения /ru/docs/orphaned/MDN/Editor/Syntax_highlighting +/ru/docs/MDN/Editor/Ссылки /ru/docs/orphaned/MDN/Editor/Links /ru/docs/MDN/Feedback /ru/docs/MDN/Contribute/Feedback /ru/docs/MDN/Getting_started /ru/docs/MDN/Contribute/Getting_started +/ru/docs/MDN/Kuma /ru/docs/MDN/Yari +/ru/docs/MDN/Kuma/Troubleshooting_KumaScript_errors /ru/docs/MDN/Tools/KumaScript/Troubleshooting +/ru/docs/MDN/Structures/Live_samples/Simple_live_sample_demo /ru/docs/orphaned/MDN/Structures/Live_samples/Simple_live_sample_demo +/ru/docs/MDN/Tools/Page_watching /ru/docs/orphaned/MDN/Tools/Page_watching +/ru/docs/MDN/Tools/URL-suffix /ru/docs/MDN/Tools/Unsupported_GET_API +/ru/docs/MDN/User_guide /ru/docs/conflicting/MDN/Tools +/ru/docs/MDN/User_guide/Advanced_search /ru/docs/MDN/Tools/Search +/ru/docs/MDN/User_guide/Deleting_pages /ru/docs/orphaned/MDN/Tools/Page_deletion +/ru/docs/MDN/User_guide/Feeds /ru/docs/orphaned/MDN/Tools/Feeds +/ru/docs/MDN/User_guide/Linking_to_MDN /ru/docs/orphaned/MDN/About/Linking_to_MDN +/ru/docs/MDN/Сообщество /ru/docs/orphaned/MDN/Community +/ru/docs/MDN/Сообщество/Conversations /ru/docs/orphaned/MDN/Community/Conversations +/ru/docs/MDN/Сообщество/Whats_happening /ru/docs/orphaned/MDN/Community/Whats_happening +/ru/docs/MDN/Сообщество/Working_in_community /ru/docs/orphaned/MDN/Community/Working_in_community +/ru/docs/MDN_at_ten /ru/docs/MDN/At_ten +/ru/docs/MDN_at_ten/Contributing_to_MDN /ru/docs/conflicting/MDN/Contribute +/ru/docs/Mozilla/Add-ons/WebExtensions/Интернационализация /ru/docs/Mozilla/Add-ons/WebExtensions/Internationalization +/ru/docs/Mozilla/Add-ons/WebExtensions/Перевод /ru/docs/orphaned/Mozilla/Add-ons/WebExtensions/Debugging +/ru/docs/Mozilla/Add-ons/WebExtensions/модификация_веб_страницы /ru/docs/Mozilla/Add-ons/WebExtensions/Modify_a_web_page +/ru/docs/Mozilla/Developer_guide/Исходный_код /ru/docs/Mozilla/Developer_guide/Source_Code +/ru/docs/Plugins/План /ru/docs/Plugins/Roadmap /ru/docs/QA/Kak_pomoch_testirovat /ru/docs/QA/Как_помочь_тестировать /ru/docs/Quirks_Mode_and_Standards_Mode /ru/docs/Web/HTML/Quirks_Mode_and_Standards_Mode /ru/docs/SVG_In_HTML_Introduction /ru/docs/Web/SVG/Tutorial/SVG_In_HTML_Introduction /ru/docs/Sample_.htaccess_file /ru/docs/Learn/Server-side/Apache_Configuration_htaccess +/ru/docs/Toolkit_API /ru/docs/orphaned/Toolkit_API +/ru/docs/Tools/Add-ons /ru/docs/orphaned/Tools/Add-ons +/ru/docs/Tools/Add-ons/DOM_Inspector /ru/docs/orphaned/Tools/Add-ons/DOM_Inspector +/ru/docs/Tools/Debugger/How_to/Отладка_кода_внутри_eval /ru/docs/Tools/Debugger/How_to/Debug_eval_sources +/ru/docs/Tools/Debugger/How_to/Работа_с_минифицированным_кодом /ru/docs/Tools/Debugger/How_to/Pretty-print_a_minified_file +/ru/docs/Tools/Page_Inspector/How_to/Otkrytie_Inspektora /ru/docs/Tools/Page_Inspector/How_to/Open_the_Inspector +/ru/docs/Tools/Page_Inspector/How_to/Vybor_elementa /ru/docs/Tools/Page_Inspector/How_to/Select_an_element +/ru/docs/Tools/Page_Inspector/How_to/Исследовать_event_listeners /ru/docs/Tools/Page_Inspector/How_to/Examine_event_listeners +/ru/docs/Tools/Page_Inspector/How_to/Просмотр_шрифтов /ru/docs/Tools/Page_Inspector/How_to/Edit_fonts +/ru/docs/Tools/Page_Inspector/Сочетания_клавиш /ru/docs/Tools/Page_Inspector/Keyboard_shortcuts +/ru/docs/Tools/Profiler /ru/docs/conflicting/Tools/Performance +/ru/docs/Tools/Release_notes /ru/docs/conflicting/Mozilla/Firefox/Releases +/ru/docs/Tools/Responsive_Design_View /ru/docs/Tools/Responsive_Design_Mode +/ru/docs/Tools/Web_Console/Opening_the_Web_Console /ru/docs/Tools/Web_Console/UI_Tour +/ru/docs/Tools/Инспектор_доступности /ru/docs/Tools/Accessibility_inspector +/ru/docs/Tools/Консоль_браузера /ru/docs/Tools/Browser_Console +/ru/docs/Tools/Линейки /ru/docs/Tools/Rulers +/ru/docs/Tools/Производительность /ru/docs/Tools/Performance +/ru/docs/Tools/Производительность/Waterfall /ru/docs/Tools/Performance/Waterfall +/ru/docs/Using_Firefox_1.5_caching /ru/docs/Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching /ru/docs/Using_files_from_web_applications /ru/docs/Web/API/File/Using_files_from_web_applications -/ru/docs/Web/API/AudioContext.currentTime /ru/docs/Web/API/AudioContext/currentTime +/ru/docs/Web/API/AudioContext.currentTime /ru/docs/Web/API/BaseAudioContext/currentTime +/ru/docs/Web/API/AudioContext/createPanner /ru/docs/Web/API/BaseAudioContext/createPanner +/ru/docs/Web/API/AudioContext/currentTime /ru/docs/Web/API/BaseAudioContext/currentTime +/ru/docs/Web/API/AudioContext/decodeAudioData /ru/docs/Web/API/BaseAudioContext/decodeAudioData +/ru/docs/Web/API/CSS_Object_Model/ориентация_экрана /ru/docs/Web/API/CSS_Object_Model/Managing_screen_orientation +/ru/docs/Web/API/Canvas_API/Tutorial/Использование_изображений /ru/docs/Web/API/Canvas_API/Tutorial/Using_images +/ru/docs/Web/API/Canvas_API/Tutorial/Композиции /ru/docs/Web/API/Canvas_API/Tutorial/Compositing +/ru/docs/Web/API/Canvas_API/Tutorial/Основы_анимации /ru/docs/Web/API/Canvas_API/Tutorial/Basic_animations +/ru/docs/Web/API/Canvas_API/Tutorial/Применение_стилей_и_цветов /ru/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors +/ru/docs/Web/API/Canvas_API/Tutorial/Рисование_текста /ru/docs/Web/API/Canvas_API/Tutorial/Drawing_text +/ru/docs/Web/API/Canvas_API/Tutorial/Рисование_фигур /ru/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes /ru/docs/Web/API/Canvas_API/Рисование_графики_с_помощью_Canvas /ru/docs/Web/API/Canvas_API/Tutorial /ru/docs/Web/API/Coordinates /ru/docs/Web/API/GeolocationCoordinates /ru/docs/Web/API/Document.querySelectorAll /ru/docs/Web/API/Document/querySelectorAll +/ru/docs/Web/API/Document/activeElement /ru/docs/Web/API/DocumentOrShadowRoot/activeElement +/ru/docs/Web/API/Document/async /ru/docs/Web/API/XMLDocument/async /ru/docs/Web/API/Document/defaultView/popstate_event /ru/docs/Web/API/Window/popstate_event /ru/docs/Web/API/Document/defaultView/resize_event /ru/docs/Web/API/Window/resize_event /ru/docs/Web/API/Document/defaultView/storage_event /ru/docs/Web/API/Window/storage_event /ru/docs/Web/API/Document/domConfig /ru/docs/Web/API/Document +/ru/docs/Web/API/Document/getSelection /ru/docs/Web/API/DocumentOrShadowRoot/getSelection /ru/docs/Web/API/Element.getBoundingClientRect /ru/docs/Web/API/Element/getBoundingClientRect /ru/docs/Web/API/Element.insertAdjacentHTML /ru/docs/Web/API/Element/insertAdjacentHTML +/ru/docs/Web/API/Element/accessKey /ru/docs/Web/API/HTMLElement/accessKey /ru/docs/Web/API/EventTarget.addEventListener /ru/docs/Web/API/EventTarget/addEventListener +/ru/docs/Web/API/EventTarget/attachEvent /ru/docs/conflicting/Web/API/EventTarget/addEventListener +/ru/docs/Web/API/EventTarget/detachEvent /ru/docs/conflicting/Web/API/EventTarget/removeEventListener +/ru/docs/Web/API/File_and_Directory_Entries_API/Введение /ru/docs/Web/API/File_and_Directory_Entries_API/Introduction +/ru/docs/Web/API/Geolocation/Using_geolocation /ru/docs/Web/API/Geolocation_API +/ru/docs/Web/API/Geolocation/Using_geolocation/Using_the_Geolocation_API /ru/docs/Web/API/Geolocation_API/Using_the_Geolocation_API +/ru/docs/Web/API/HTMLAudioElement/Audio() /ru/docs/Web/API/HTMLAudioElement/Audio +/ru/docs/Web/API/HTMLElement/dataset /ru/docs/Web/API/HTMLOrForeignElement/dataset /ru/docs/Web/API/HTMLElement/invalid /ru/docs/Web/API/HTMLInputElement/invalid_event +/ru/docs/Web/API/HTMLElement/nonce /ru/docs/Web/API/HTMLOrForeignElement/nonce +/ru/docs/Web/API/HTMLElement/style /ru/docs/Web/API/ElementCSSInlineStyle/style +/ru/docs/Web/API/HTMLElement/tabIndex /ru/docs/Web/API/HTMLOrForeignElement/tabIndex /ru/docs/Web/API/HTMLImageElement.Image /ru/docs/Web/API/HTMLImageElement/Image +/ru/docs/Web/API/MediaTrackConstraints/Эхоподавление /ru/docs/Web/API/MediaTrackConstraints/echoCancellation +/ru/docs/Web/API/NavigatorGeolocation /ru/docs/conflicting/Web/API/Geolocation +/ru/docs/Web/API/NetworkInformation/connection /ru/docs/Web/API/Navigator/connection /ru/docs/Web/API/Node.appendChild /ru/docs/Web/API/Node/appendChild /ru/docs/Web/API/Node.contains /ru/docs/Web/API/Node/contains /ru/docs/Web/API/Node.parentNode /ru/docs/Web/API/Node/parentNode /ru/docs/Web/API/Node.removeChild /ru/docs/Web/API/Node/removeChild +/ru/docs/Web/API/Node.replaceChild /ru/docs/Web/API/Node/replaceChild /ru/docs/Web/API/Node.textContent /ru/docs/Web/API/Node/textContent +/ru/docs/Web/API/Node/baseURIObject /ru/docs/conflicting/Web/API/Node +/ru/docs/Web/API/Node/innerText /ru/docs/Web/API/HTMLElement/innerText +/ru/docs/Web/API/Node/nodePrincipal /ru/docs/conflicting/Web/API/Node_378aed5ed6869e50853edbc988cf9556 +/ru/docs/Web/API/NonDocumentTypeChildNode/NonDocumentTypeChildNode.nextElementSibling /ru/docs/Web/API/NonDocumentTypeChildNode/nextElementSibling /ru/docs/Web/API/PositionError /ru/docs/Web/API/GeolocationPositionError +/ru/docs/Web/API/Push_API/Using_the_Push_API /ru/docs/conflicting/Web/API/Push_API +/ru/docs/Web/API/RandomSource /ru/docs/conflicting/Web/API/Crypto/getRandomValues +/ru/docs/Web/API/RandomSource/getRandomValues /ru/docs/Web/API/Crypto/getRandomValues +/ru/docs/Web/API/SVGAElement/SVGAlement.target /ru/docs/conflicting/Web/API/SVGAElement/target +/ru/docs/Web/API/Slotable /ru/docs/conflicting/Web/API/Element +/ru/docs/Web/API/Storage/LocalStorage /ru/docs/conflicting/Web/API/Window/localStorage /ru/docs/Web/API/WebGL_API/Adding_2D_content_to_a_WebGL_context /ru/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context /ru/docs/Web/API/WebGL_API/Animating_objects_with_WebGL /ru/docs/Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL /ru/docs/Web/API/WebGL_API/Getting_started_with_WebGL /ru/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL +/ru/docs/Web/API/WebGL_API/Tutorial/Создание_3D_объектов_с_помощью_WebGL /ru/docs/Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL /ru/docs/Web/API/WebGL_API/Using_shaders_to_apply_color_in_WebGL /ru/docs/Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL -/ru/docs/Web/API/WindowTimers.setTimeout /ru/docs/Web/API/WindowTimers/setTimeout +/ru/docs/Web/API/WebRTC_API/WebRTC_basics /ru/docs/conflicting/Web/API/WebRTC_API/Signaling_and_video_calling +/ru/docs/Web/API/WebRTC_API/протоколы /ru/docs/Web/API/WebRTC_API/Protocols +/ru/docs/Web/API/WebRTC_API/связь /ru/docs/Web/API/WebRTC_API/Connectivity +/ru/docs/Web/API/Web_Crypto_API/Checking_authenticity_with_password /ru/docs/orphaned/Web/API/Web_Crypto_API/Checking_authenticity_with_password +/ru/docs/Web/API/WindowBase64 /ru/docs/conflicting/Web/API/WindowOrWorkerGlobalScope +/ru/docs/Web/API/WindowBase64/Base64_encoding_and_decoding /ru/docs/Glossary/Base64 +/ru/docs/Web/API/WindowBase64/btoa /ru/docs/Web/API/WindowOrWorkerGlobalScope/btoa +/ru/docs/Web/API/WindowTimers /ru/docs/conflicting/Web/API/WindowOrWorkerGlobalScope_e2691f7ad05781a30c5fc5bb3b3f633a +/ru/docs/Web/API/WindowTimers.setTimeout /ru/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout +/ru/docs/Web/API/WindowTimers/setTimeout /ru/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout /ru/docs/Web/API/console.timeEnd /ru/docs/Web/API/Console/timeEnd -/ru/docs/Web/API/document.activeElement /ru/docs/Web/API/Document/activeElement +/ru/docs/Web/API/document.activeElement /ru/docs/Web/API/DocumentOrShadowRoot/activeElement /ru/docs/Web/API/document.createComment /ru/docs/Web/API/Document/createComment /ru/docs/Web/API/document.designMode /ru/docs/Web/API/Document/designMode /ru/docs/Web/API/document.execCommand /ru/docs/Web/API/Document/execCommand @@ -224,22 +463,50 @@ /ru/docs/Web/API/navigator.id /ru/docs/Web/API/Navigator/id /ru/docs/Web/API/navigator.id.request /ru/docs/Web/API/IdentityManager/request /ru/docs/Web/API/range.getBoundingClientRect /ru/docs/Web/API/Range/getBoundingClientRect +/ru/docs/Web/API/Видимость_страницы_API /ru/docs/Web/API/Page_Visibility_API +/ru/docs/Web/API/Нотация /ru/docs/Web/API/Notation +/ru/docs/Web/Accessibility/Веб-разработка /ru/docs/conflicting/Web/Accessibility /ru/docs/Web/Apps/Fundamentals/Audio_and_video_delivery /ru/docs/Web/Guide/Audio_and_video_delivery /ru/docs/Web/Apps/Fundamentals/Audio_and_video_delivery/Adding_captions_and_subtitles_to_HTML5_video /ru/docs/Web/Guide/Audio_and_video_delivery/Adding_captions_and_subtitles_to_HTML5_video /ru/docs/Web/Apps/Fundamentals/Audio_and_video_delivery/buffering_seeking_time_ranges /ru/docs/Web/Guide/Audio_and_video_delivery/buffering_seeking_time_ranges +/ru/docs/Web/CSS/:any /ru/docs/conflicting/Web/CSS/:is /ru/docs/Web/CSS/:blank /ru/docs/Web/CSS/:-moz-only-whitespace +/ru/docs/Web/CSS/@viewport/user-zoom /ru/docs/conflicting/Web/CSS/@viewport /ru/docs/Web/CSS/Adjacent_sibling_selectors /ru/docs/Web/CSS/Adjacent_sibling_combinator -/ru/docs/Web/CSS/CSS_User_Interface/Использование_URL_значений_для_свойства_cursor /ru/docs/Web/CSS/CSS_Basic_User_Interface/Использование_URL_значений_для_свойства_cursor +/ru/docs/Web/CSS/CSS_Animations/Ispolzovanie_CSS_animatciy /ru/docs/Web/CSS/CSS_Animations/Using_CSS_animations +/ru/docs/Web/CSS/CSS_Background_and_Borders /ru/docs/Web/CSS/CSS_Backgrounds_and_Borders +/ru/docs/Web/CSS/CSS_Background_and_Borders/Border-radius_генератор /ru/docs/Web/CSS/CSS_Background_and_Borders/Border-radius_generator +/ru/docs/Web/CSS/CSS_Background_and_Borders/Множественные_фоны /ru/docs/Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds +/ru/docs/Web/CSS/CSS_Basic_User_Interface/Использование_URL_значений_для_свойства_cursor /ru/docs/Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property +/ru/docs/Web/CSS/CSS_Box_Model/Box-shadow_generator /ru/docs/Web/CSS/CSS_Background_and_Borders/Box-shadow_generator +/ru/docs/Web/CSS/CSS_Colors /ru/docs/Web/CSS/CSS_Color +/ru/docs/Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes /ru/docs/conflicting/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox +/ru/docs/Web/CSS/CSS_Flexible_Box_Layout/Выравнивание_элементов_в_Flex_контейнере /ru/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container +/ru/docs/Web/CSS/CSS_Flexible_Box_Layout/Контролирование_соотношения_элементов_вдоль_главной_оси /ru/docs/Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax +/ru/docs/Web/CSS/CSS_Flow_Layout/Блочное_и_строчное_размещение_в_нормальном_потоке /ru/docs/Web/CSS/CSS_Flow_Layout/Block_and_Inline_Layout_in_Normal_Flow +/ru/docs/Web/CSS/CSS_Flow_Layout/Введение_в_контексты_форматирования /ru/docs/Web/CSS/CSS_Flow_Layout/Intro_to_formatting_contexts +/ru/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid,_Logical_Values_and_Writing_Modes /ru/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_Logical_Values_and_Writing_Modes +/ru/docs/Web/CSS/CSS_Grid_Layout/Грид-области /ru/docs/Web/CSS/CSS_Grid_Layout/Grid_Template_Areas +/ru/docs/Web/CSS/CSS_Grid_Layout/Расположение_элементов_по_грид-линиям_с_помощью_CSS_Grid /ru/docs/Web/CSS/CSS_Grid_Layout/Line-based_Placement_with_CSS_Grid +/ru/docs/Web/CSS/CSS_User_Interface /ru/docs/conflicting/Web/CSS/CSS_Basic_User_Interface +/ru/docs/Web/CSS/CSS_User_Interface/Использование_URL_значений_для_свойства_cursor /ru/docs/Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property /ru/docs/Web/CSS/CSS_animated_properties /ru/docs/Web/CSS +/ru/docs/Web/CSS/CSS_Селекторы /ru/docs/Web/CSS/CSS_Selectors +/ru/docs/Web/CSS/CSS_Селекторы/Using_the_:target_pseudo-class_in_selectors /ru/docs/Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors /ru/docs/Web/CSS/Child_selectors /ru/docs/Web/CSS/Child_combinator +/ru/docs/Web/CSS/Common_CSS_Questions /ru/docs/Learn/CSS/Howto/CSS_FAQ /ru/docs/Web/CSS/Descendant_selectors /ru/docs/Web/CSS/Descendant_combinator /ru/docs/Web/CSS/General_sibling_selectors /ru/docs/Web/CSS/General_sibling_combinator +/ru/docs/Web/CSS/Media_Queries/Тестирование_медиа_запросы /ru/docs/Web/CSS/Media_Queries/Testing_media_queries /ru/docs/Web/CSS/Reference/background-blend-mode /ru/docs/Web/CSS/background-blend-mode /ru/docs/Web/CSS/Using_CSS_variables /ru/docs/Web/CSS/Using_CSS_custom_properties /ru/docs/Web/CSS/attr /ru/docs/Web/CSS/attr() +/ru/docs/Web/CSS/box_model /ru/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model /ru/docs/Web/CSS/calc /ru/docs/Web/CSS/calc() /ru/docs/Web/CSS/clamp /ru/docs/Web/CSS/clamp() /ru/docs/Web/CSS/filter-function/blur /ru/docs/Web/CSS/filter-function/blur() +/ru/docs/Web/CSS/filter-function/url /ru/docs/conflicting/Web/CSS/url() +/ru/docs/Web/CSS/grid-gap /ru/docs/conflicting/Web/CSS/gap /ru/docs/Web/CSS/image-set /ru/docs/Web/CSS/image-set() /ru/docs/Web/CSS/linear-gradient /ru/docs/Web/CSS/linear-gradient() /ru/docs/Web/CSS/minmax /ru/docs/Web/CSS/minmax() @@ -249,39 +516,98 @@ /ru/docs/Web/CSS/transform-function/rotate3d /ru/docs/Web/CSS/transform-function/rotate3d() /ru/docs/Web/CSS/transform-function/scale3d /ru/docs/Web/CSS/transform-function/scale3d() /ru/docs/Web/CSS/transform-function/skew /ru/docs/Web/CSS/transform-function/skew() +/ru/docs/Web/CSS/url /ru/docs/conflicting/Web/CSS/url()_168028c4e5edd9e19c061adb4b604d4f +/ru/docs/Web/CSS/Действительное_значение /ru/docs/Web/CSS/actual_value +/ru/docs/Web/CSS/Замещаемый_элемент /ru/docs/Web/CSS/Replaced_element +/ru/docs/Web/CSS/Псевдо-классы /ru/docs/Web/CSS/Pseudo-classes +/ru/docs/Web/CSS/Синтаксис /ru/docs/Web/CSS/Syntax +/ru/docs/Web/CSS/Способ_расположения /ru/docs/Web/CSS/Layout_mode +/ru/docs/Web/CSS/Тихий /ru/docs/Web/CSS/Comments +/ru/docs/Web/CSS/Указанное_значение /ru/docs/Web/CSS/specified_value +/ru/docs/Web/CSS/размер /ru/docs/Web/CSS/length +/ru/docs/Web/Events/DOMContentLoaded /ru/docs/Web/API/Window/DOMContentLoaded_event +/ru/docs/Web/Events/abort /ru/docs/conflicting/Web/API/HTMLMediaElement/abort_event /ru/docs/Web/Events/abort_(dom_abort_api) /ru/docs/Web/API/AbortSignal/abort_event +/ru/docs/Web/Events/blur /ru/docs/Web/API/Element/blur_event /ru/docs/Web/Events/deviceorientation /ru/docs/Web/API/Window/deviceorientation_event +/ru/docs/Web/Events/error /ru/docs/Web/API/Element/error_event +/ru/docs/Web/Events/focusin /ru/docs/Web/API/Element/focusin_event +/ru/docs/Web/Events/focusout /ru/docs/Web/API/Element/focusout_event /ru/docs/Web/Events/gamepadconnected /ru/docs/Web/API/Window/gamepadconnected_event /ru/docs/Web/Events/gamepaddisconnected /ru/docs/Web/API/Window/gamepaddisconnected_event /ru/docs/Web/Events/hashchange /ru/docs/Web/API/Window/hashchange_event /ru/docs/Web/Events/invalid /ru/docs/Web/API/HTMLInputElement/invalid_event /ru/docs/Web/Events/keypress /ru/docs/Web/API/Document/keypress_event +/ru/docs/Web/Events/load /ru/docs/Web/API/Window/load_event +/ru/docs/Web/Events/loadstart /ru/docs/Web/API/XMLHttpRequest/loadstart_event /ru/docs/Web/Events/mousedown /ru/docs/Web/API/Element/mousedown_event /ru/docs/Web/Events/mouseleave /ru/docs/Web/API/Element/mouseleave_event /ru/docs/Web/Events/popstate /ru/docs/Web/API/Window/popstate_event +/ru/docs/Web/Events/readystatechange /ru/docs/Web/API/Document/readystatechange_event /ru/docs/Web/Events/resize /ru/docs/Web/API/Window/resize_event /ru/docs/Web/Events/scroll /ru/docs/Web/API/Document/scroll_event /ru/docs/Web/Events/storage /ru/docs/Web/API/Window/storage_event -/ru/docs/Web/Events/стримится /ru/docs/Web/HTML/Element/video/seeking_event -/ru/docs/Web/Guide/CSS/ispolzovanie_css_animatciy /ru/docs/Web/CSS/CSS_Animations/Ispolzovanie_CSS_animatciy +/ru/docs/Web/Events/transitionend /ru/docs/Web/API/HTMLElement/transitionend_event +/ru/docs/Web/Events/unhandledrejection /ru/docs/Web/API/Window/unhandledrejection_event +/ru/docs/Web/Events/стримится /ru/docs/Web/API/HTMLMediaElement/seeking_event +/ru/docs/Web/Guide/AJAX/С_чего_начать /ru/docs/Web/Guide/AJAX/Getting_Started +/ru/docs/Web/Guide/AJAX/С_чего_начать? /ru/docs/orphaned/Web/Guide/AJAX/С_чего_начать? +/ru/docs/Web/Guide/API/DOM /ru/docs/conflicting/Web/API/Document_Object_Model_dd00a71ceceac547ab464128db6bd8ef +/ru/docs/Web/Guide/API/DOM/Storage /ru/docs/conflicting/Web/API/Web_Storage_API +/ru/docs/Web/Guide/API/WebRTC /ru/docs/conflicting/Web/API/WebRTC_API +/ru/docs/Web/Guide/CSS /ru/docs/conflicting/Learn/CSS +/ru/docs/Web/Guide/CSS/Getting_started /ru/docs/conflicting/Learn/CSS/First_steps +/ru/docs/Web/Guide/CSS/Getting_started/Cascading_and_inheritance /ru/docs/conflicting/Learn/CSS/Building_blocks/Cascade_and_inheritance +/ru/docs/Web/Guide/CSS/Getting_started/Color /ru/docs/conflicting/Learn/CSS/Building_blocks/Values_and_units +/ru/docs/Web/Guide/CSS/Getting_started/How_CSS_works /ru/docs/conflicting/Learn/CSS/First_steps/How_CSS_works +/ru/docs/Web/Guide/CSS/Getting_started/Readable_CSS /ru/docs/conflicting/Learn/CSS/First_steps/How_CSS_is_structured +/ru/docs/Web/Guide/CSS/Getting_started/SVG_и_CSS /ru/docs/Web/SVG/Tutorial/SVG_and_CSS +/ru/docs/Web/Guide/CSS/Getting_started/Selectors /ru/docs/conflicting/Learn/CSS/Building_blocks/Selectors_918fb6c37a4d06789bc062c48d591992 +/ru/docs/Web/Guide/CSS/Getting_started/Text_styles /ru/docs/conflicting/Learn/CSS/Styling_text/Fundamentals +/ru/docs/Web/Guide/CSS/Getting_started/What_is_CSS /ru/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_b66915031fb62b5fee1201086144e209 +/ru/docs/Web/Guide/CSS/Getting_started/Why_use_CSS /ru/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_64ba4331a7a5f4319c6e06b06ccdd521 +/ru/docs/Web/Guide/CSS/Getting_started/Таблицы /ru/docs/conflicting/Learn/CSS/Building_blocks/Styling_tables +/ru/docs/Web/Guide/CSS/Understanding_z_index /ru/docs/Web/CSS/CSS_Positioning/Understanding_z_index +/ru/docs/Web/Guide/CSS/Understanding_z_index/Adding_z-index /ru/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index +/ru/docs/Web/Guide/CSS/Understanding_z_index/Stacking_without_z-index /ru/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_without_z-index +/ru/docs/Web/Guide/CSS/Using_multi-column_layouts /ru/docs/Web/CSS/CSS_Columns/Using_multi-column_layouts +/ru/docs/Web/Guide/CSS/Visual_formatting_model /ru/docs/Web/CSS/Visual_formatting_model +/ru/docs/Web/Guide/CSS/ispolzovanie_css_animatciy /ru/docs/Web/CSS/CSS_Animations/Using_CSS_animations +/ru/docs/Web/Guide/Events/Создание_и_вызов_событий /ru/docs/Web/Guide/Events/Creating_and_triggering_events /ru/docs/Web/Guide/HTML /ru/docs/Learn/HTML /ru/docs/Web/Guide/HTML/Canvas_tutorial /ru/docs/Web/API/Canvas_API/Tutorial /ru/docs/Web/Guide/HTML/Canvas_tutorial/Basic_usage /ru/docs/Web/API/Canvas_API/Tutorial/Basic_usage -/ru/docs/Web/Guide/HTML/Canvas_tutorial/Основы_анимации /ru/docs/Web/API/Canvas_API/Tutorial/Основы_анимации -/ru/docs/Web/Guide/HTML/Canvas_tutorial/Применение_стилей_и_цветов /ru/docs/Web/API/Canvas_API/Tutorial/Применение_стилей_и_цветов -/ru/docs/Web/Guide/HTML/Canvas_tutorial/Рисование_фигур /ru/docs/Web/API/Canvas_API/Tutorial/Рисование_фигур -/ru/docs/Web/Guide/HTML/Forms /ru/docs/Learn/HTML/Forms -/ru/docs/Web/Guide/HTML/Introduction /ru/docs/Learn/HTML/Введение_в_HTML +/ru/docs/Web/Guide/HTML/Canvas_tutorial/Основы_анимации /ru/docs/Web/API/Canvas_API/Tutorial/Basic_animations +/ru/docs/Web/Guide/HTML/Canvas_tutorial/Применение_стилей_и_цветов /ru/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors +/ru/docs/Web/Guide/HTML/Canvas_tutorial/Рисование_фигур /ru/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes +/ru/docs/Web/Guide/HTML/Drag_and_drop /ru/docs/Web/API/HTML_Drag_and_Drop_API +/ru/docs/Web/Guide/HTML/Drag_and_drop/Drag_operations /ru/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations +/ru/docs/Web/Guide/HTML/Forms /ru/docs/Learn/Forms +/ru/docs/Web/Guide/HTML/Introduction /ru/docs/Learn/HTML/Introduction_to_HTML +/ru/docs/Web/Guide/HTML/Sections_and_Outlines_of_an_HTML5_document /ru/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines +/ru/docs/Web/Guide/HTML/Tips_for_authoring_fast-loading_HTML_pages /ru/docs/Learn/HTML/Howto/Author_fast-loading_HTML_pages +/ru/docs/Web/Guide/HTML/Using_data_attributes /ru/docs/Learn/HTML/Howto/Use_data_attributes +/ru/docs/Web/Guide/HTML/Формы_в_HTML /ru/docs/orphaned/Learn/HTML/Forms/HTML5_updates +/ru/docs/Web/Guide/Графика /ru/docs/Web/Guide/Graphics +/ru/docs/Web/Guide/Производительность /ru/docs/Web/Guide/Performance +/ru/docs/Web/HTML/CORS_settings_attributes /ru/docs/Web/HTML/Attributes/crossorigin /ru/docs/Web/HTML/Canvas /ru/docs/Web/API/Canvas_API /ru/docs/Web/HTML/Canvas/Рисование_графики_с_помощью_Canvas /ru/docs/Web/API/Canvas_API/Tutorial +/ru/docs/Web/HTML/Element/element /ru/docs/orphaned/Web/HTML/Element/element +/ru/docs/Web/HTML/Element/video/seeking_event /ru/docs/Web/API/HTMLMediaElement/seeking_event +/ru/docs/Web/HTML/Element/кнопка /ru/docs/Web/HTML/Element/button +/ru/docs/Web/HTML/Element/ссылка /ru/docs/Web/HTML/Element/link /ru/docs/Web/HTML/Element/стиль /ru/docs/Web/HTML/Element/style +/ru/docs/Web/HTML/Global_attributes/dropzone /ru/docs/orphaned/Web/HTML/Global_attributes/dropzone +/ru/docs/Web/HTML/Optimizing_Your_Pages_for_Speculative_Parsing /ru/docs/Glossary/speculative_parsing /ru/docs/Web/HTML/Использование_HTML5_audio_и_video /ru/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content +/ru/docs/Web/HTML/Использование_кэширования_приложений /ru/docs/Web/HTML/Using_the_application_cache /ru/docs/Web/HTML/Общие_атрибуты /ru/docs/Web/HTML/Global_attributes /ru/docs/Web/HTML/Общие_атрибуты/accesskey /ru/docs/Web/HTML/Global_attributes/accesskey /ru/docs/Web/HTML/Общие_атрибуты/class /ru/docs/Web/HTML/Global_attributes/class /ru/docs/Web/HTML/Общие_атрибуты/contenteditable /ru/docs/Web/HTML/Global_attributes/contenteditable /ru/docs/Web/HTML/Общие_атрибуты/data-* /ru/docs/Web/HTML/Global_attributes/data-* -/ru/docs/Web/HTML/Общие_атрибуты/dropzone /ru/docs/Web/HTML/Global_attributes/dropzone +/ru/docs/Web/HTML/Общие_атрибуты/dropzone /ru/docs/orphaned/Web/HTML/Global_attributes/dropzone /ru/docs/Web/HTML/Общие_атрибуты/id /ru/docs/Web/HTML/Global_attributes/id /ru/docs/Web/HTML/Общие_атрибуты/inputmode /ru/docs/Web/HTML/Global_attributes/inputmode /ru/docs/Web/HTML/Общие_атрибуты/is /ru/docs/Web/HTML/Global_attributes/is @@ -289,17 +615,72 @@ /ru/docs/Web/HTML/Общие_атрибуты/lang /ru/docs/Web/HTML/Global_attributes/lang /ru/docs/Web/HTML/Общие_атрибуты/style /ru/docs/Web/HTML/Global_attributes/style /ru/docs/Web/HTML/Общие_атрибуты/tabindex /ru/docs/Web/HTML/Global_attributes/tabindex +/ru/docs/Web/HTML/Поддерживаемые_медиа_форматы /ru/docs/conflicting/Web/Media/Formats +/ru/docs/Web/HTML/Ссылки /ru/docs/Web/HTML/Reference +/ru/docs/Web/HTML/Строчные_Элементы /ru/docs/Web/HTML/Inline_elements +/ru/docs/Web/HTML/Типы_ссылок /ru/docs/Web/HTML/Link_types +/ru/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web_RU /ru/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web /ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Полный_список_типов_MIME /ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types /ru/docs/Web/HTTP/Response_codes /ru/docs/Web/HTTP/Status +/ru/docs/Web/HTTP/Server-Side_Access_Control /ru/docs/conflicting/Web/HTTP/CORS +/ru/docs/Web/HTTP/Авторизация /ru/docs/Web/HTTP/Authentication +/ru/docs/Web/HTTP/Заголовки /ru/docs/Web/HTTP/Headers +/ru/docs/Web/HTTP/Заголовки/Accept /ru/docs/Web/HTTP/Headers/Accept +/ru/docs/Web/HTTP/Заголовки/Accept-Charset /ru/docs/Web/HTTP/Headers/Accept-Charset +/ru/docs/Web/HTTP/Заголовки/Accept-Language /ru/docs/Web/HTTP/Headers/Accept-Language +/ru/docs/Web/HTTP/Заголовки/Accept-Patch /ru/docs/Web/HTTP/Headers/Accept-Patch +/ru/docs/Web/HTTP/Заголовки/Accept-Ranges /ru/docs/Web/HTTP/Headers/Accept-Ranges +/ru/docs/Web/HTTP/Заголовки/Access-Control-Allow-Headers /ru/docs/Web/HTTP/Headers/Access-Control-Allow-Headers +/ru/docs/Web/HTTP/Заголовки/Access-Control-Allow-Methods /ru/docs/Web/HTTP/Headers/Access-Control-Allow-Methods +/ru/docs/Web/HTTP/Заголовки/Access-Control-Allow-Origin /ru/docs/Web/HTTP/Headers/Access-Control-Allow-Origin +/ru/docs/Web/HTTP/Заголовки/Access-Control-Max-Age /ru/docs/Web/HTTP/Headers/Access-Control-Max-Age +/ru/docs/Web/HTTP/Заголовки/Authorization /ru/docs/Web/HTTP/Headers/Authorization +/ru/docs/Web/HTTP/Заголовки/Cache-Control /ru/docs/Web/HTTP/Headers/Cache-Control +/ru/docs/Web/HTTP/Заголовки/Connection /ru/docs/Web/HTTP/Headers/Connection +/ru/docs/Web/HTTP/Заголовки/Content-Disposition /ru/docs/Web/HTTP/Headers/Content-Disposition +/ru/docs/Web/HTTP/Заголовки/Content-Encoding /ru/docs/Web/HTTP/Headers/Content-Encoding +/ru/docs/Web/HTTP/Заголовки/Content-Language /ru/docs/Web/HTTP/Headers/Content-Language +/ru/docs/Web/HTTP/Заголовки/Content-Length /ru/docs/Web/HTTP/Headers/Content-Length +/ru/docs/Web/HTTP/Заголовки/Content-Type /ru/docs/Web/HTTP/Headers/Content-Type +/ru/docs/Web/HTTP/Заголовки/DNT /ru/docs/Web/HTTP/Headers/DNT +/ru/docs/Web/HTTP/Заголовки/Date /ru/docs/Web/HTTP/Headers/Date +/ru/docs/Web/HTTP/Заголовки/ETag /ru/docs/Web/HTTP/Headers/ETag +/ru/docs/Web/HTTP/Заголовки/Expect /ru/docs/Web/HTTP/Headers/Expect +/ru/docs/Web/HTTP/Заголовки/Expires /ru/docs/Web/HTTP/Headers/Expires +/ru/docs/Web/HTTP/Заголовки/Host /ru/docs/Web/HTTP/Headers/Host +/ru/docs/Web/HTTP/Заголовки/If-Match /ru/docs/Web/HTTP/Headers/If-Match +/ru/docs/Web/HTTP/Заголовки/If-Modified-Since /ru/docs/Web/HTTP/Headers/If-Modified-Since +/ru/docs/Web/HTTP/Заголовки/If-Unmodified-Since /ru/docs/Web/HTTP/Headers/If-Unmodified-Since +/ru/docs/Web/HTTP/Заголовки/Last-Modified /ru/docs/Web/HTTP/Headers/Last-Modified +/ru/docs/Web/HTTP/Заголовки/Origin /ru/docs/Web/HTTP/Headers/Origin +/ru/docs/Web/HTTP/Заголовки/Pragma /ru/docs/Web/HTTP/Headers/Pragma +/ru/docs/Web/HTTP/Заголовки/Range /ru/docs/Web/HTTP/Headers/Range +/ru/docs/Web/HTTP/Заголовки/Referer /ru/docs/Web/HTTP/Headers/Referer +/ru/docs/Web/HTTP/Заголовки/Retry-After /ru/docs/Web/HTTP/Headers/Retry-After +/ru/docs/Web/HTTP/Заголовки/Set-Cookie /ru/docs/Web/HTTP/Headers/Set-Cookie +/ru/docs/Web/HTTP/Заголовки/Strict-Transport-Security /ru/docs/Web/HTTP/Headers/Strict-Transport-Security +/ru/docs/Web/HTTP/Заголовки/Vary /ru/docs/Web/HTTP/Headers/Vary +/ru/docs/Web/HTTP/Заголовки/X-Content-Type-Options /ru/docs/Web/HTTP/Headers/X-Content-Type-Options +/ru/docs/Web/HTTP/Заголовки/X-Forwarded-For /ru/docs/Web/HTTP/Headers/X-Forwarded-For +/ru/docs/Web/HTTP/Заголовки/X-XSS-Protection /ru/docs/Web/HTTP/Headers/X-XSS-Protection +/ru/docs/Web/HTTP/Куки /ru/docs/Web/HTTP/Cookies +/ru/docs/Web/HTTP/Кэширование /ru/docs/Web/HTTP/Caching /ru/docs/Web/JavaScript/ECMAScript_5_support_in_Mozilla /ru/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla +/ru/docs/Web/JavaScript/Guide/About /ru/docs/conflicting/Web/JavaScript/Guide/Introduction /ru/docs/Web/JavaScript/Guide/Closures /ru/docs/Web/JavaScript/Closures /ru/docs/Web/JavaScript/Guide/EventLoop /ru/docs/Web/JavaScript/EventLoop /ru/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain /ru/docs/Web/JavaScript/Inheritance_and_the_prototype_chain +/ru/docs/Web/JavaScript/Guide/Ispolzovanie_promisov /ru/docs/Web/JavaScript/Guide/Using_promises +/ru/docs/Web/JavaScript/Guide/JavaScript_Overview /ru/docs/conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b +/ru/docs/Web/JavaScript/Guide/Predefined_Core_Objects /ru/docs/conflicting/Web/JavaScript/Guide /ru/docs/Web/JavaScript/Guide/Statements /ru/docs/Web/JavaScript/Guide/Control_flow_and_error_handling /ru/docs/Web/JavaScript/Guide/The_Iterator_protocol /ru/docs/Web/JavaScript/Reference/Iteration_protocols /ru/docs/Web/JavaScript/Guide/Values,_variables,_and_literals /ru/docs/Web/JavaScript/Guide/Grammar_and_types +/ru/docs/Web/JavaScript/Guide/Введение_в_JavaScript /ru/docs/Web/JavaScript/Guide/Introduction +/ru/docs/Web/JavaScript/Guide/Об_этом_руководстве /ru/docs/orphaned/Web/JavaScript/Guide/Об_этом_руководстве +/ru/docs/Web/JavaScript/Guide/Циклы_и_итерации /ru/docs/Web/JavaScript/Guide/Loops_and_iteration /ru/docs/Web/JavaScript/Guide_ru /ru/docs/Web/JavaScript/Guide -/ru/docs/Web/JavaScript/Guide_ru/About /ru/docs/Web/JavaScript/Guide/About +/ru/docs/Web/JavaScript/Guide_ru/About /ru/docs/conflicting/Web/JavaScript/Guide/Introduction /ru/docs/Web/JavaScript/Guide_ru/Expressions_and_Operators /ru/docs/Web/JavaScript/Guide/Expressions_and_Operators /ru/docs/Web/JavaScript/Guide_ru/Functions /ru/docs/Web/JavaScript/Guide/Functions /ru/docs/Web/JavaScript/Guide_ru/Inheritance_and_the_prototype_chain_ru /ru/docs/Web/JavaScript/Inheritance_and_the_prototype_chain @@ -309,30 +690,85 @@ /ru/docs/Web/JavaScript/Guide_ru/Values,_variables,_and_literals /ru/docs/Web/JavaScript/Guide/Grammar_and_types /ru/docs/Web/JavaScript/Guide_ru/Working_with_Objects /ru/docs/Web/JavaScript/Guide/Working_with_Objects /ru/docs/Web/JavaScript/Guide_ru/Замыкания /ru/docs/Web/JavaScript/Closures +/ru/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript /ru/docs/conflicting/Learn/JavaScript/Objects +/ru/docs/Web/JavaScript/JavaScript_шеллы /ru/docs/Web/JavaScript/Shells /ru/docs/Web/JavaScript/New_in_JavaScript/Новое_в_JavaScript_1.6 /ru/docs/Web/JavaScript/New_in_JavaScript/1.6 +/ru/docs/Web/JavaScript/Reference/Classes/Class_fields /ru/docs/Web/JavaScript/Reference/Classes/Public_class_fields +/ru/docs/Web/JavaScript/Reference/Classes/Приватные_поля_класса /ru/docs/Web/JavaScript/Reference/Classes/Private_class_fields +/ru/docs/Web/JavaScript/Reference/Errors/Переменные_скрывают_аргумент /ru/docs/Web/JavaScript/Reference/Errors/Var_hides_argument +/ru/docs/Web/JavaScript/Reference/Functions/Определиние_методов /ru/docs/Web/JavaScript/Reference/Functions/Method_definitions /ru/docs/Web/JavaScript/Reference/Global_Objects/Array/contains /ru/docs/Web/JavaScript/Reference/Global_Objects/Array/includes +/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype /ru/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype +/ru/docs/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype /ru/docs/orphaned/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype +/ru/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Boolean /ru/docs/Web/JavaScript/Reference/Global_Objects/Collator /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator /ru/docs/Web/JavaScript/Reference/Global_Objects/Collator/compare /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/compare -/ru/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/prototype +/ru/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Collator /ru/docs/Web/JavaScript/Reference/Global_Objects/Collator/resolvedOptions /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/resolvedOptions /ru/docs/Web/JavaScript/Reference/Global_Objects/Collator/supportedLocalesOf /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/supportedLocalesOf +/ru/docs/Web/JavaScript/Reference/Global_Objects/Date/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Date /ru/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat /ru/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/format /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format /ru/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts -/ru/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/prototype /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/prototype +/ru/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat /ru/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/resolvedOptions /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions /ru/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/supportedLocalesOf /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf +/ru/docs/Web/JavaScript/Reference/Global_Objects/Error/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Error +/ru/docs/Web/JavaScript/Reference/Global_Objects/EvalError/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/EvalError +/ru/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Function +/ru/docs/Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/GeneratorFunction +/ru/docs/Web/JavaScript/Reference/Global_Objects/InternalError/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/InternalError +/ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Collator +/ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +/ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat /ru/docs/Web/JavaScript/Reference/Global_Objects/ListFormat /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat +/ru/docs/Web/JavaScript/Reference/Global_Objects/Map/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Map +/ru/docs/Web/JavaScript/Reference/Global_Objects/Math/Метод_Math.max()_ /ru/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Math/Метод_Math.max()_ +/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Number /ru/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat /ru/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/format /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format -/ru/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/prototype /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/prototype +/ru/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat /ru/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/resolvedOptions /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/resolvedOptions /ru/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/supportedLocalesOf /ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/supportedLocalesOf +/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Object +/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Promise +/ru/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy +/ru/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/deleteProperty /ru/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/deleteProperty +/ru/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/set /ru/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set +/ru/docs/Web/JavaScript/Reference/Global_Objects/RangeError/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/RangeError +/ru/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/ReferenceError +/ru/docs/Web/JavaScript/Reference/Global_Objects/RegExp/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/RegExp +/ru/docs/Web/JavaScript/Reference/Global_Objects/Set/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Set +/ru/docs/Web/JavaScript/Reference/Global_Objects/String/TrimLeft /ru/docs/Web/JavaScript/Reference/Global_Objects/String/trimStart +/ru/docs/Web/JavaScript/Reference/Global_Objects/String/TrimRight /ru/docs/Web/JavaScript/Reference/Global_Objects/String/trimEnd /ru/docs/Web/JavaScript/Reference/Global_Objects/String/contains /ru/docs/Web/JavaScript/Reference/Global_Objects/String/includes +/ru/docs/Web/JavaScript/Reference/Global_Objects/String/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/String +/ru/docs/Web/JavaScript/Reference/Global_Objects/Symbol/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Symbol +/ru/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError +/ru/docs/Web/JavaScript/Reference/Global_Objects/TypeError/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/TypeError +/ru/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/TypedArray +/ru/docs/Web/JavaScript/Reference/Global_Objects/URIError/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/URIError +/ru/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/WeakMap +/ru/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/WeakSet /ru/docs/Web/JavaScript/Reference/Methods_Index /ru/docs/Web/JavaScript/Reference +/ru/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators /ru/docs/conflicting/Web/JavaScript/Reference/Operators +/ru/docs/Web/JavaScript/Reference/Operators/Assignment_Operators /ru/docs/conflicting/Web/JavaScript/Reference/Operators_8d54701de06af40a7c984517cbe87b3e +/ru/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators /ru/docs/conflicting/Web/JavaScript/Reference/Operators_7c8eb9475d97a4a734c5991857698560 /ru/docs/Web/JavaScript/Reference/Operators/Spread_operator /ru/docs/Web/JavaScript/Reference/Operators/Spread_syntax +/ru/docs/Web/JavaScript/Reference/Operators/Группировка /ru/docs/Web/JavaScript/Reference/Operators/Grouping +/ru/docs/Web/JavaScript/Reference/Operators/Конвейерный_оператор /ru/docs/Web/JavaScript/Reference/Operators/Pipeline_operator +/ru/docs/Web/JavaScript/Reference/Operators/Логические_операторы /ru/docs/conflicting/Web/JavaScript/Reference/Operators_843c998343f0cdaa5699874c806d4cea +/ru/docs/Web/JavaScript/Reference/Operators/Оператор_Запятая /ru/docs/Web/JavaScript/Reference/Operators/Comma_Operator +/ru/docs/Web/JavaScript/Reference/Operators/Операторы_сравнения /ru/docs/conflicting/Web/JavaScript/Reference/Operators_69135a8d5772f8b6e45265523df05d89 +/ru/docs/Web/JavaScript/Reference/Operators/Присваивание /ru/docs/Web/JavaScript/Reference/Operators/Assignment +/ru/docs/Web/JavaScript/Reference/Operators/Условный_оператор /ru/docs/Web/JavaScript/Reference/Operators/Conditional_Operator /ru/docs/Web/JavaScript/Reference/Properties_Index /ru/docs/Web/JavaScript/Reference -/ru/docs/Web/JavaScript/ru_JavaScript_Overview /ru/docs/Web/JavaScript/Guide/JavaScript_Overview +/ru/docs/Web/JavaScript/Reference/Statements/default /ru/docs/conflicting/Web/JavaScript/Reference/Statements/switch +/ru/docs/Web/JavaScript/Reference/Statements/Блок /ru/docs/Web/JavaScript/Reference/Statements/block +/ru/docs/Web/JavaScript/Reference/template_strings /ru/docs/Web/JavaScript/Reference/Template_literals +/ru/docs/Web/JavaScript/Reference/Об /ru/docs/Web/JavaScript/Reference/About +/ru/docs/Web/JavaScript/ru_JavaScript_Overview /ru/docs/conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b +/ru/docs/Web/JavaScript/О_JavaScript /ru/docs/Web/JavaScript/About_JavaScript /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5 /ru/docs/Web/JavaScript/Reference /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Methods_Index /ru/docs/Web/JavaScript/Reference /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Operators /ru/docs/Web/JavaScript/Reference/Operators @@ -340,7 +776,7 @@ /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Operators/delete /ru/docs/Web/JavaScript/Reference/Operators/delete /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Operators/function /ru/docs/Web/JavaScript/Reference/Operators/function /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Operators/typeof /ru/docs/Web/JavaScript/Reference/Operators/typeof -/ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Operators/Оператор_Запятая /ru/docs/Web/JavaScript/Reference/Operators/Оператор_Запятая +/ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Operators/Оператор_Запятая /ru/docs/Web/JavaScript/Reference/Operators/Comma_Operator /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Properties_Index /ru/docs/Web/JavaScript/Reference /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Statements /ru/docs/Web/JavaScript/Reference/Statements /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Statements/let /ru/docs/Web/JavaScript/Reference/Statements/let @@ -355,7 +791,7 @@ /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Глобальные_объекты/Function/call /ru/docs/Web/JavaScript/Reference/Global_Objects/Function/call /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Глобальные_объекты/Function/length /ru/docs/Web/JavaScript/Reference/Global_Objects/Function/length /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Глобальные_объекты/Function/name /ru/docs/Web/JavaScript/Reference/Global_Objects/Function/name -/ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Глобальные_объекты/Function/prototype /ru/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype +/ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Глобальные_объекты/Function/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Function /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Глобальные_объекты/Math /ru/docs/Web/JavaScript/Reference/Global_Objects/Math /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Глобальные_объекты/Object /ru/docs/Web/JavaScript/Reference/Global_Objects/Object /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Глобальные_объекты/RegExp /ru/docs/Web/JavaScript/Reference/Global_Objects/RegExp @@ -365,14 +801,55 @@ /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Операторы /ru/docs/Web/JavaScript/Reference/Operators /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Операции /ru/docs/Web/JavaScript/Reference/Operators /ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Операции/Assignment_Operators /ru/docs/Web/JavaScript/Reference/Operators -/ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Операции/Арифметические_Операции /ru/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators -/ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Операции/Битовые_Операции /ru/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators -/ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Операции/Операции_Присваивания /ru/docs/Web/JavaScript/Reference/Operators/Assignment_Operators +/ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Операции/Арифметические_Операции /ru/docs/conflicting/Web/JavaScript/Reference/Operators +/ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Операции/Битовые_Операции /ru/docs/conflicting/Web/JavaScript/Reference/Operators_7c8eb9475d97a4a734c5991857698560 +/ru/docs/Web/JavaScript/Справочник_по_JavaScript_1.5/Операции/Операции_Присваивания /ru/docs/conflicting/Web/JavaScript/Reference/Operators_8d54701de06af40a7c984517cbe87b3e +/ru/docs/Web/Manifest/serviceworker /ru/docs/orphaned/Web/Manifest/serviceworker +/ru/docs/Web/MathML/Атрибут /ru/docs/Web/MathML/Attribute +/ru/docs/Web/MathML/Примеры /ru/docs/Web/MathML/Examples +/ru/docs/Web/MathML/Примеры/Deriving_the_Quadratic_Formula /ru/docs/Web/MathML/Examples/Deriving_the_Quadratic_Formula +/ru/docs/Web/MathML/Примеры/MathML_Pythagorean_Theorem /ru/docs/Web/MathML/Examples/MathML_Pythagorean_Theorem +/ru/docs/Web/Media/Formats/WebRTC_кодеки /ru/docs/Web/Media/Formats/WebRTC_codecs +/ru/docs/Web/Performance/Основы /ru/docs/Web/Performance/Fundamentals +/ru/docs/Web/Performance/Производительность_анимации /ru/docs/Web/Performance/Animation_performance_and_frame_rate +/ru/docs/Web/Progressive_web_apps/Заметный /ru/docs/conflicting/Web/Progressive_web_apps_628955cdadd77b10ec99de034fc76374 +/ru/docs/Web/SVG/Attribute/onload /ru/docs/orphaned/Web/SVG/Attribute/onload +/ru/docs/Web/SVG/Tutorial/Базовые_Преобразования /ru/docs/Web/SVG/Tutorial/Basic_Transformations +/ru/docs/Web/SVG/Tutorial/Введение /ru/docs/Web/SVG/Tutorial/Introduction +/ru/docs/Web/SVG/Tutorial/Основные_Фигуры /ru/docs/Web/SVG/Tutorial/Basic_Shapes +/ru/docs/Web/SVG/Tutorial/Позиции /ru/docs/Web/SVG/Tutorial/Positions +/ru/docs/Web/SVG/Элемент /ru/docs/Web/SVG/Element +/ru/docs/Web/SVG/Элемент/ /ru/docs/Web/SVG/Element/text +/ru/docs/Web/SVG/Элемент/a /ru/docs/Web/SVG/Element/a +/ru/docs/Web/SVG/Элемент/animate /ru/docs/Web/SVG/Element/animate +/ru/docs/Web/SVG/Элемент/animateMotion /ru/docs/Web/SVG/Element/animateMotion +/ru/docs/Web/SVG/Элемент/circle /ru/docs/Web/SVG/Element/circle +/ru/docs/Web/SVG/Элемент/defs /ru/docs/Web/SVG/Element/defs +/ru/docs/Web/SVG/Элемент/ellipse /ru/docs/Web/SVG/Element/ellipse +/ru/docs/Web/SVG/Элемент/feBlend /ru/docs/Web/SVG/Element/feBlend +/ru/docs/Web/SVG/Элемент/foreignObject /ru/docs/Web/SVG/Element/foreignObject +/ru/docs/Web/SVG/Элемент/g /ru/docs/Web/SVG/Element/g +/ru/docs/Web/SVG/Элемент/image /ru/docs/Web/SVG/Element/image +/ru/docs/Web/SVG/Элемент/line /ru/docs/Web/SVG/Element/line +/ru/docs/Web/SVG/Элемент/linearGradient /ru/docs/Web/SVG/Element/linearGradient +/ru/docs/Web/SVG/Элемент/path /ru/docs/Web/SVG/Element/path +/ru/docs/Web/SVG/Элемент/pattern /ru/docs/Web/SVG/Element/pattern +/ru/docs/Web/SVG/Элемент/polygon /ru/docs/Web/SVG/Element/polygon +/ru/docs/Web/SVG/Элемент/radialGradient /ru/docs/Web/SVG/Element/radialGradient +/ru/docs/Web/SVG/Элемент/rect /ru/docs/Web/SVG/Element/rect +/ru/docs/Web/SVG/Элемент/svg /ru/docs/Web/SVG/Element/svg +/ru/docs/Web/SVG/Элемент/use /ru/docs/Web/SVG/Element/use +/ru/docs/Web/Security/CSP /ru/docs/conflicting/Web/HTTP/CSP +/ru/docs/Web/Security/Information_Security_Basics /ru/docs/orphaned/Web/Security/Information_Security_Basics +/ru/docs/Web/WebAPI /ru/docs/conflicting/Web/API /ru/docs/Web/WebGL /ru/docs/Web/API/WebGL_API /ru/docs/Web/WebGL/Adding_2D_content_to_a_WebGL_context /ru/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context /ru/docs/Web/WebGL/Animating_objects_with_WebGL /ru/docs/Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL /ru/docs/Web/WebGL/Getting_started_with_WebGL /ru/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL /ru/docs/Web/WebGL/Using_shaders_to_apply_color_in_WebGL /ru/docs/Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL +/ru/docs/Web/Web_Components/Использование_пользовательских_элементов /ru/docs/Web/Web_Components/Using_custom_elements +/ru/docs/Web/XPath/Funkcje /ru/docs/Web/XPath/Functions +/ru/docs/Web/XPath/Funkcje/floor /ru/docs/Web/XPath/Functions/floor /ru/docs/Web/Манифест /ru/docs/Web/Manifest /ru/docs/Web/Манифест/background_color /ru/docs/Web/Manifest/background_color /ru/docs/Web/Манифест/categories /ru/docs/Web/Manifest/categories @@ -388,23 +865,42 @@ /ru/docs/Web/Манифест/related_applications /ru/docs/Web/Manifest/related_applications /ru/docs/Web/Манифест/scope /ru/docs/Web/Manifest/scope /ru/docs/Web/Манифест/screenshots /ru/docs/Web/Manifest/screenshots -/ru/docs/Web/Манифест/serviceworker /ru/docs/Web/Manifest/serviceworker +/ru/docs/Web/Манифест/serviceworker /ru/docs/orphaned/Web/Manifest/serviceworker /ru/docs/Web/Манифест/short_name /ru/docs/Web/Manifest/short_name /ru/docs/Web/Манифест/start_url /ru/docs/Web/Manifest/start_url /ru/docs/Web/Манифест/theme_color /ru/docs/Web/Manifest/theme_color /ru/docs/WebGL /ru/docs/Web/API/WebGL_API /ru/docs/WebGL/Using_shaders_to_apply_color_in_WebGL /ru/docs/Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL -/ru/docs/XHTML /ru/docs/Словарь/XHTML +/ru/docs/WebSockets /ru/docs/Web/API/WebSockets_API +/ru/docs/WebSockets/Writing_WebSocket_client_applications /ru/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications +/ru/docs/Web_Development/Mobile /ru/docs/conflicting/Web/Guide/Mobile +/ru/docs/Web_Development/Mobile/Responsive_design /ru/docs/conflicting/Web/Progressive_web_apps +/ru/docs/XHTML /ru/docs/Glossary/XHTML +/ru/docs/XMLHttpRequest /ru/docs/conflicting/Web/API/XMLHttpRequest +/ru/docs/XML_in_Mozilla /ru/docs/orphaned/XML_in_Mozilla +/ru/docs/XPCNativeWrapper /ru/docs/orphaned/XPCNativeWrapper +/ru/docs/XPCOM /ru/docs/orphaned/XPCOM /ru/docs/XPath /ru/docs/Web/XPath -/ru/docs/XPath/Funkcje /ru/docs/Web/XPath/Funkcje -/ru/docs/XPath/Funkcje/floor /ru/docs/Web/XPath/Funkcje/floor +/ru/docs/XPath/Funkcje /ru/docs/Web/XPath/Functions +/ru/docs/XPath/Funkcje/floor /ru/docs/Web/XPath/Functions/floor /ru/docs/XSLT /ru/docs/Web/XSLT /ru/docs/en /en-US/ /ru/docs/kak_soobschit_o_zavisshem_Firefox /ru/docs/Как_сообщить_о_зависшем_Firefox /ru/docs/nsIOutputStream:writeFrom /ru/docs/nsIOutputStream/writeFrom -/ru/docs/Введение_(альтернативные_проекты) /ru/docs/Introduction_(alternate) +/ru/docs/Введение_(альтернативные_проекты) /ru/docs/Mozilla/Developer_guide/Introduction +/ru/docs/Веб-разработка /ru/docs/conflicting/Web/Guide +/ru/docs/Веб-стандарты /ru/docs/orphaned/Веб-стандарты +/ru/docs/Вопросы_без_ответов /ru/docs/orphaned/Вопросы_без_ответов +/ru/docs/Динамически_изменяемый_пользовательский_интерфейс_на_XUL /ru/docs/orphaned/Динамически_изменяемый_пользовательский_интерфейс_на_XUL +/ru/docs/Доступность /ru/docs/orphaned/Доступность /ru/docs/Заглавная_страница /ru/docs/Web +/ru/docs/Заголовок_ссылки /ru/docs/orphaned/Заголовок_ссылки +/ru/docs/Контроль_качества /ru/docs/orphaned/Контроль_качества +/ru/docs/Локализация /ru/docs/orphaned/Локализация +/ru/docs/Настройка_среды_разработки_расширений /ru/docs/orphaned/Настройка_среды_разработки_расширений /ru/docs/Новое_в_JavaScript_1.6 /ru/docs/Web/JavaScript/New_in_JavaScript/1.6 +/ru/docs/Об_объектной_модели_документа /ru/docs/conflicting/Web/API/Document_Object_Model_5521049528397035462607d58539e0cc +/ru/docs/Переход_с_Internet_Explorer_на_Mozilla /ru/docs/orphaned/Переход_с_Internet_Explorer_на_Mozilla /ru/docs/Повторное_введение_в_JavaScript /ru/docs/Web/JavaScript/A_re-introduction_to_JavaScript /ru/docs/Руководство_по_JavaScript_1.5 /ru/docs/Web/JavaScript/Guide /ru/docs/Руководство_по_JavaScript_1.5/Операторы /ru/docs/Web/JavaScript/Reference/Operators @@ -413,9 +909,228 @@ /ru/docs/Руководство_по_JavaScript_1.5/Функции /ru/docs/Web/JavaScript/Guide/Functions /ru/docs/Руководство_по_JavaScript_1.5:Функции /ru/docs/Web/JavaScript/Guide/Functions /ru/docs/Руководство_разработчика_дополнений_Firefox /ru/docs/Firefox_addons_developer_guide +/ru/docs/Сборка_и_установка /ru/docs/orphaned/Сборка_и_установка +/ru/docs/Словарь /ru/docs/Glossary +/ru/docs/Словарь/404 /ru/docs/Glossary/404 +/ru/docs/Словарь/502 /ru/docs/Glossary/502 +/ru/docs/Словарь/AJAX /ru/docs/Glossary/AJAX /ru/docs/Словарь/AOM /ru/docs/Glossary/Accessibility_tree -/ru/docs/Словарь/пустой_элемент /ru/docs/Словарь/Empty_element -/ru/docs/Справочная_информация_по_Gecko_DOM:Предисловие /ru/docs/Справочная_информация_по_Gecko_DOM/Предисловие +/ru/docs/Словарь/API /ru/docs/Glossary/API +/ru/docs/Словарь/ARIA /ru/docs/Glossary/ARIA +/ru/docs/Словарь/ARPA /ru/docs/Glossary/ARPA +/ru/docs/Словарь/ASCII /ru/docs/Glossary/ASCII +/ru/docs/Словарь/ATAG /ru/docs/Glossary/ATAG +/ru/docs/Словарь/Abstraction /ru/docs/Glossary/Abstraction +/ru/docs/Словарь/Adobe-Flash /ru/docs/Glossary/Adobe_Flash +/ru/docs/Словарь/Algorithm /ru/docs/Glossary/Algorithm +/ru/docs/Словарь/Apple_Safari /ru/docs/Glossary/Apple_Safari +/ru/docs/Словарь/Arpanet /ru/docs/Glossary/Arpanet +/ru/docs/Словарь/Asynchronous /ru/docs/Glossary/Asynchronous +/ru/docs/Словарь/Bandwidth /ru/docs/Glossary/Bandwidth +/ru/docs/Словарь/BiDi /ru/docs/Glossary/BiDi +/ru/docs/Словарь/BigInt /ru/docs/Glossary/BigInt +/ru/docs/Словарь/Blink /ru/docs/Glossary/Blink +/ru/docs/Словарь/Boolean /ru/docs/Glossary/Boolean +/ru/docs/Словарь/Bootstrap /ru/docs/Glossary/Bootstrap +/ru/docs/Словарь/Browser /ru/docs/Glossary/Browser +/ru/docs/Словарь/Browsing_context /ru/docs/Glossary/Browsing_context +/ru/docs/Словарь/Bézier_curve /ru/docs/Glossary/Bézier_curve +/ru/docs/Словарь/CDN /ru/docs/Glossary/CDN +/ru/docs/Словарь/CMS /ru/docs/Glossary/CMS +/ru/docs/Словарь/CORS /ru/docs/Glossary/CORS +/ru/docs/Словарь/CRLF /ru/docs/Glossary/CRLF +/ru/docs/Словарь/CSP /ru/docs/Glossary/CSP +/ru/docs/Словарь/CSRF /ru/docs/Glossary/CSRF +/ru/docs/Словарь/CSS /ru/docs/Glossary/CSS +/ru/docs/Словарь/CSS_Selector /ru/docs/Glossary/CSS_Selector +/ru/docs/Словарь/CSS_preprocessor /ru/docs/Glossary/CSS_preprocessor +/ru/docs/Словарь/Call_stack /ru/docs/Glossary/Call_stack +/ru/docs/Словарь/Canvas /ru/docs/Glossary/Canvas +/ru/docs/Словарь/Card_sorting /ru/docs/Glossary/Card_sorting +/ru/docs/Словарь/Character /ru/docs/Glossary/Character +/ru/docs/Словарь/Chrome /ru/docs/Glossary/Chrome +/ru/docs/Словарь/Class /ru/docs/Glossary/Class +/ru/docs/Словарь/Codec /ru/docs/Glossary/Codec +/ru/docs/Словарь/Compile /ru/docs/Glossary/Compile +/ru/docs/Словарь/Computer_Programming /ru/docs/Glossary/Computer_Programming +/ru/docs/Словарь/Conditional /ru/docs/Glossary/Conditional +/ru/docs/Словарь/Constructor /ru/docs/Glossary/Constructor +/ru/docs/Словарь/Cookie /ru/docs/Glossary/Cookie +/ru/docs/Словарь/Copyleft /ru/docs/Glossary/Copyleft +/ru/docs/Словарь/Crawler /ru/docs/Glossary/Crawler +/ru/docs/Словарь/DNS /ru/docs/Glossary/DNS +/ru/docs/Словарь/DOM /ru/docs/Glossary/DOM +/ru/docs/Словарь/DOS_attack /ru/docs/Glossary/DOS_attack +/ru/docs/Словарь/Doctype /ru/docs/Glossary/Doctype +/ru/docs/Словарь/Domain_name /ru/docs/Glossary/Domain_name +/ru/docs/Словарь/Dynamic_programming_language /ru/docs/Glossary/Dynamic_programming_language +/ru/docs/Словарь/ECMA /ru/docs/Glossary/ECMA +/ru/docs/Словарь/ECMAScript /ru/docs/Glossary/ECMAScript +/ru/docs/Словарь/Empty_element /ru/docs/Glossary/Empty_element +/ru/docs/Словарь/Encapsulation /ru/docs/Glossary/Encapsulation +/ru/docs/Словарь/Entity_header /ru/docs/Glossary/Entity_header +/ru/docs/Словарь/Expando /ru/docs/Glossary/Expando +/ru/docs/Словарь/FPS /ru/docs/Glossary/FPS +/ru/docs/Словарь/FTP /ru/docs/Glossary/FTP +/ru/docs/Словарь/Falsy /ru/docs/Glossary/Falsy +/ru/docs/Словарь/First-class_Function /ru/docs/Glossary/First-class_Function +/ru/docs/Словарь/First_CPU_idle /ru/docs/Glossary/First_CPU_idle +/ru/docs/Словарь/First_contentful_paint /ru/docs/Glossary/First_contentful_paint +/ru/docs/Словарь/First_input_delay /ru/docs/Glossary/First_input_delay +/ru/docs/Словарь/First_interactive /ru/docs/Glossary/First_interactive +/ru/docs/Словарь/First_paint /ru/docs/Glossary/First_paint +/ru/docs/Словарь/Flex_Item /ru/docs/Glossary/Flex_Item +/ru/docs/Словарь/Flexbox /ru/docs/Glossary/Flexbox +/ru/docs/Словарь/Forbidden_header_name /ru/docs/Glossary/Forbidden_header_name +/ru/docs/Словарь/Gecko /ru/docs/Glossary/Gecko +/ru/docs/Словарь/General_header /ru/docs/Glossary/General_header +/ru/docs/Словарь/Git /ru/docs/Glossary/Git +/ru/docs/Словарь/Global_object /ru/docs/Glossary/Global_object +/ru/docs/Словарь/Grid /ru/docs/Glossary/Grid +/ru/docs/Словарь/Grid_Column /ru/docs/Glossary/Grid_Column +/ru/docs/Словарь/HTML /ru/docs/Glossary/HTML +/ru/docs/Словарь/HTML5 /ru/docs/Glossary/HTML5 +/ru/docs/Словарь/HTTP /ru/docs/Glossary/HTTP +/ru/docs/Словарь/HTTP_2 /ru/docs/Glossary/HTTP_2 +/ru/docs/Словарь/Host /ru/docs/Glossary/Host +/ru/docs/Словарь/IANA /ru/docs/Glossary/IANA +/ru/docs/Словарь/ICANN /ru/docs/Glossary/ICANN +/ru/docs/Словарь/IETF /ru/docs/Glossary/IETF +/ru/docs/Словарь/IIFE /ru/docs/Glossary/IIFE +/ru/docs/Словарь/IP_Address /ru/docs/Glossary/IP_Address +/ru/docs/Словарь/ISO /ru/docs/Glossary/ISO +/ru/docs/Словарь/Idempotent /ru/docs/Glossary/Idempotent +/ru/docs/Словарь/Identifier /ru/docs/Glossary/Identifier +/ru/docs/Словарь/IndexedDB /ru/docs/Glossary/IndexedDB +/ru/docs/Словарь/Information_architecture /ru/docs/Glossary/Information_architecture +/ru/docs/Словарь/Internet /ru/docs/Glossary/Internet +/ru/docs/Словарь/JSON /ru/docs/Glossary/JSON +/ru/docs/Словарь/Java /ru/docs/Glossary/Java +/ru/docs/Словарь/JavaScript /ru/docs/Glossary/JavaScript +/ru/docs/Словарь/MIME_type /ru/docs/Glossary/MIME_type +/ru/docs/Словарь/Main_Axis /ru/docs/Glossary/Main_Axis +/ru/docs/Словарь/MathML /ru/docs/Glossary/MathML +/ru/docs/Словарь/Method /ru/docs/Glossary/Method +/ru/docs/Словарь/Microsoft_Internet_Explorer /ru/docs/Glossary/Microsoft_Internet_Explorer +/ru/docs/Словарь/Mixin /ru/docs/Glossary/Mixin +/ru/docs/Словарь/Node.js /ru/docs/Glossary/Node.js +/ru/docs/Словарь/Null /ru/docs/Glossary/Null +/ru/docs/Словарь/Number /ru/docs/Glossary/Number +/ru/docs/Словарь/OOP /ru/docs/Glossary/OOP +/ru/docs/Словарь/Object /ru/docs/Glossary/Object +/ru/docs/Словарь/OpenGL /ru/docs/Glossary/OpenGL +/ru/docs/Словарь/PHP /ru/docs/Glossary/PHP +/ru/docs/Словарь/Pixel /ru/docs/Glossary/Pixel +/ru/docs/Словарь/Polymorphism /ru/docs/Glossary/Polymorphism +/ru/docs/Словарь/Primitive /ru/docs/Glossary/Primitive +/ru/docs/Словарь/Progressive_web_apps /ru/docs/Glossary/Progressive_web_apps +/ru/docs/Словарь/Promise /ru/docs/Glossary/Promise +/ru/docs/Словарь/Prototype-based_programming /ru/docs/Glossary/Prototype-based_programming +/ru/docs/Словарь/Pseudo-element /ru/docs/Glossary/Pseudo-element +/ru/docs/Словарь/Pseudocode /ru/docs/Glossary/Pseudocode +/ru/docs/Словарь/Reflow /ru/docs/Glossary/Reflow +/ru/docs/Словарь/Regular_expression /ru/docs/Glossary/Regular_expression +/ru/docs/Словарь/Request_header /ru/docs/Glossary/Request_header +/ru/docs/Словарь/Responsive_web_design /ru/docs/Glossary/Responsive_web_design +/ru/docs/Словарь/Round_Trip_Time_(RTT) /ru/docs/Glossary/Round_Trip_Time_(RTT) +/ru/docs/Словарь/SDP /ru/docs/Glossary/SDP +/ru/docs/Словарь/SEO /ru/docs/Glossary/SEO +/ru/docs/Словарь/SGML /ru/docs/Glossary/SGML +/ru/docs/Словарь/SVG /ru/docs/Glossary/SVG +/ru/docs/Словарь/Scroll_container /ru/docs/Glossary/Scroll_container +/ru/docs/Словарь/Self-Executing_Anonymous_Function /ru/docs/Glossary/Self-Executing_Anonymous_Function +/ru/docs/Словарь/Semantics /ru/docs/Glossary/Semantics +/ru/docs/Словарь/Server /ru/docs/Glossary/Server +/ru/docs/Словарь/Simple_response_header /ru/docs/Glossary/Simple_response_header +/ru/docs/Словарь/Sloppy_mode /ru/docs/Glossary/Sloppy_mode +/ru/docs/Словарь/Specification /ru/docs/Glossary/Specification +/ru/docs/Словарь/Symbol /ru/docs/Glossary/Symbol +/ru/docs/Словарь/TCP /ru/docs/Glossary/TCP +/ru/docs/Словарь/TLS /ru/docs/Glossary/TLS +/ru/docs/Словарь/Time_to_interactive /ru/docs/Glossary/Time_to_interactive +/ru/docs/Словарь/Truthy /ru/docs/Glossary/Truthy +/ru/docs/Словарь/Type /ru/docs/Glossary/Type +/ru/docs/Словарь/Type_Conversion /ru/docs/Glossary/Type_Conversion +/ru/docs/Словарь/Type_coercion /ru/docs/Glossary/Type_coercion +/ru/docs/Словарь/UI /ru/docs/Glossary/UI +/ru/docs/Словарь/URL /ru/docs/Glossary/URL +/ru/docs/Словарь/User_agent /ru/docs/Glossary/User_agent +/ru/docs/Словарь/Variable /ru/docs/Glossary/Variable +/ru/docs/Словарь/Vendor_Prefix /ru/docs/Glossary/Vendor_Prefix +/ru/docs/Словарь/Viewport /ru/docs/Glossary/Viewport +/ru/docs/Словарь/W3C /ru/docs/Glossary/W3C +/ru/docs/Словарь/WAI /ru/docs/Glossary/WAI +/ru/docs/Словарь/WHATWG /ru/docs/Glossary/WHATWG +/ru/docs/Словарь/WebKit /ru/docs/Glossary/WebKit +/ru/docs/Словарь/WebSockets /ru/docs/Glossary/WebSockets +/ru/docs/Словарь/World_Wide_Web /ru/docs/Glossary/World_Wide_Web +/ru/docs/Словарь/Wrapper /ru/docs/Glossary/Wrapper +/ru/docs/Словарь/XHR_(XMLHttpRequest) /ru/docs/Glossary/XHR_(XMLHttpRequest) +/ru/docs/Словарь/XHTML /ru/docs/Glossary/XHTML +/ru/docs/Словарь/XML /ru/docs/Glossary/XML +/ru/docs/Словарь/application_context /ru/docs/Glossary/application_context +/ru/docs/Словарь/baseline /ru/docs/Glossary/baseline +/ru/docs/Словарь/cacheable /ru/docs/Glossary/cacheable +/ru/docs/Словарь/character_encoding /ru/docs/Glossary/character_encoding +/ru/docs/Словарь/data_structure /ru/docs/Glossary/Data_structure +/ru/docs/Словарь/event /ru/docs/Glossary/event +/ru/docs/Словарь/first_meaningful_paint /ru/docs/Glossary/first_meaningful_paint +/ru/docs/Словарь/global_variable /ru/docs/Glossary/Global_variable +/ru/docs/Словарь/https /ru/docs/Glossary/https +/ru/docs/Словарь/jQuery /ru/docs/Glossary/jQuery +/ru/docs/Словарь/jpeg /ru/docs/Glossary/jpeg +/ru/docs/Словарь/loop /ru/docs/Glossary/loop +/ru/docs/Словарь/origin /ru/docs/Glossary/Origin +/ru/docs/Словарь/privileged_code /ru/docs/Glossary/privileged_code +/ru/docs/Словарь/property /ru/docs/Glossary/property +/ru/docs/Словарь/safe /ru/docs/Glossary/safe +/ru/docs/Словарь/time_to_first_byte /ru/docs/Glossary/time_to_first_byte +/ru/docs/Словарь/undefined /ru/docs/Glossary/undefined +/ru/docs/Словарь/Аргумент /ru/docs/Glossary/Argument +/ru/docs/Словарь/Атрибут /ru/docs/Glossary/Attribute +/ru/docs/Словарь/Буфер /ru/docs/Glossary/buffer +/ru/docs/Словарь/Выражение /ru/docs/Glossary/Statement +/ru/docs/Словарь/Высокоуровневый_язык_программированияprogramming_language /ru/docs/Glossary/High-level_programming_language +/ru/docs/Словарь/Гипертекст /ru/docs/Glossary/Hypertext +/ru/docs/Словарь/Дешифрование /ru/docs/Glossary/Decryption +/ru/docs/Словарь/Домен /ru/docs/Glossary/Domain +/ru/docs/Словарь/Доступность /ru/docs/Glossary/Accessibility +/ru/docs/Словарь/Заголовок /ru/docs/Glossary/Head +/ru/docs/Словарь/Запрещённое_имя_заголовка_ответа /ru/docs/Glossary/Forbidden_response_header_name +/ru/docs/Словарь/Инструменты_разработчика /ru/docs/Glossary/Developer_Tools +/ru/docs/Словарь/Интернет-провайдер /ru/docs/Glossary/ISP +/ru/docs/Словарь/КЦД /ru/docs/Glossary/CIA +/ru/docs/Словарь/Константа /ru/docs/Glossary/Constant +/ru/docs/Словарь/Кэш /ru/docs/Glossary/Cache +/ru/docs/Словарь/Массив /ru/docs/Glossary/array +/ru/docs/Словарь/Метаданные /ru/docs/Glossary/Metadata +/ru/docs/Словарь/Поднятие /ru/docs/Glossary/Hoisting +/ru/docs/Словарь/Порт /ru/docs/Glossary/Port +/ru/docs/Словарь/Пробельные_символы /ru/docs/Glossary/Whitespace +/ru/docs/Словарь/Прокси_сервер /ru/docs/Glossary/Proxy_server +/ru/docs/Словарь/Простой_заголовок /ru/docs/Glossary/Simple_header +/ru/docs/Словарь/Протокол /ru/docs/Glossary/Protocol +/ru/docs/Словарь/Прототип /ru/docs/Glossary/Prototype +/ru/docs/Словарь/Сертифицировано /ru/docs/Glossary/Certified +/ru/docs/Словарь/Синхронный /ru/docs/Glossary/Synchronous +/ru/docs/Словарь/Статическая_типизация /ru/docs/Glossary/Static_typing +/ru/docs/Словарь/Строка /ru/docs/Glossary/String +/ru/docs/Словарь/Сущности /ru/docs/Glossary/Entity +/ru/docs/Словарь/Тег /ru/docs/Glossary/Tag +/ru/docs/Словарь/Функция /ru/docs/Glossary/Function +/ru/docs/Словарь/Элемент /ru/docs/Glossary/Element +/ru/docs/Словарь/пустой_элемент /ru/docs/Glossary/Empty_element +/ru/docs/Словарь/функция_обратного_вызова /ru/docs/Glossary/Callback_function +/ru/docs/Словарь/хеш /ru/docs/Glossary/hash +/ru/docs/Создание_расширения /ru/docs/orphaned/Создание_расширения +/ru/docs/Создание_расширения/Настройка_Firefox_для_разработки /ru/docs/orphaned/Создание_расширения/Настройка_Firefox_для_разработки +/ru/docs/Создание_расширения/Настройка_Firefox_для_разработки_расширений /ru/docs/orphaned/Создание_расширения/Настройка_Firefox_для_разработки_расширений +/ru/docs/Создание_расширения_для_Firefox_с_использованием_Mozilla_Build_System /ru/docs/orphaned/Создание_расширения_для_Firefox_с_использованием_Mozilla_Build_System +/ru/docs/Справочная_информация_по_Gecko_DOM /ru/docs/orphaned/Справочная_информация_по_Gecko_DOM +/ru/docs/Справочная_информация_по_Gecko_DOM/Введение /ru/docs/orphaned/Справочная_информация_по_Gecko_DOM/Введение +/ru/docs/Справочная_информация_по_Gecko_DOM/Предисловие /ru/docs/orphaned/Справочная_информация_по_Gecko_DOM/Предисловие +/ru/docs/Справочная_информация_по_Gecko_DOM/Примеры /ru/docs/orphaned/Справочная_информация_по_Gecko_DOM/Примеры +/ru/docs/Справочная_информация_по_Gecko_DOM:Предисловие /ru/docs/orphaned/Справочная_информация_по_Gecko_DOM/Предисловие /ru/docs/Справочник_по_JavaScript_1.5 /ru/docs/Web/JavaScript/Reference /ru/docs/Справочник_по_JavaScript_1.5/Глобальные_объекты /ru/docs/Web/JavaScript/Reference/Global_Objects /ru/docs/Справочник_по_JavaScript_1.5/Глобальные_объекты/Array /ru/docs/Web/JavaScript/Reference/Global_Objects/Array @@ -425,7 +1140,7 @@ /ru/docs/Справочник_по_JavaScript_1.5/Глобальные_объекты/Boolean /ru/docs/Web/JavaScript/Reference/Global_Objects/Boolean /ru/docs/Справочник_по_JavaScript_1.5/Глобальные_объекты/Function /ru/docs/Web/JavaScript/Reference/Global_Objects/Function /ru/docs/Справочник_по_JavaScript_1.5/Глобальные_объекты/Function/length /ru/docs/Web/JavaScript/Reference/Global_Objects/Function/length -/ru/docs/Справочник_по_JavaScript_1.5/Глобальные_объекты/Function/prototype /ru/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype +/ru/docs/Справочник_по_JavaScript_1.5/Глобальные_объекты/Function/prototype /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Function /ru/docs/Справочник_по_JavaScript_1.5/Глобальные_объекты/Math /ru/docs/Web/JavaScript/Reference/Global_Objects/Math /ru/docs/Справочник_по_JavaScript_1.5/Глобальные_объекты/Object /ru/docs/Web/JavaScript/Reference/Global_Objects/Object /ru/docs/Справочник_по_JavaScript_1.5/Глобальные_объекты/RegExp /ru/docs/Web/JavaScript/Reference/Global_Objects/RegExp @@ -435,12 +1150,13 @@ /ru/docs/Справочник_по_JavaScript_1.5/Операторы /ru/docs/Web/JavaScript/Reference/Operators /ru/docs/Справочник_по_JavaScript_1.5/Операции /ru/docs/Web/JavaScript/Reference/Operators /ru/docs/Справочник_по_JavaScript_1.5/Операции/Assignment_Operators /ru/docs/Web/JavaScript/Reference/Operators -/ru/docs/Справочник_по_JavaScript_1.5/Операции/Арифметические_Операции /ru/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators -/ru/docs/Справочник_по_JavaScript_1.5/Операции/Битовые_Операции /ru/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators -/ru/docs/Справочник_по_JavaScript_1.5/Операции/Операции_Присваивания /ru/docs/Web/JavaScript/Reference/Operators/Assignment_Operators +/ru/docs/Справочник_по_JavaScript_1.5/Операции/Арифметические_Операции /ru/docs/conflicting/Web/JavaScript/Reference/Operators +/ru/docs/Справочник_по_JavaScript_1.5/Операции/Битовые_Операции /ru/docs/conflicting/Web/JavaScript/Reference/Operators_7c8eb9475d97a4a734c5991857698560 +/ru/docs/Справочник_по_JavaScript_1.5/Операции/Операции_Присваивания /ru/docs/conflicting/Web/JavaScript/Reference/Operators_8d54701de06af40a7c984517cbe87b3e /ru/docs/Справочник_по_JavaScript_1.5:Глобальные_объекты /ru/docs/Web/JavaScript/Reference/Global_Objects /ru/docs/Справочник_по_JavaScript_1.5:Глобальные_функции:String /ru/docs/Web/JavaScript/Reference/Global_Objects/String /ru/docs/Справочник_по_JavaScript_1.5:Глобальные_функции:isNaN /ru/docs/Web/JavaScript/Reference/Global_Objects/isNaN +/ru/docs/Темы /ru/docs/orphaned/Темы /ru/docs/Ядро_JavaScript_1.5_Спровчник /ru/docs/Web/JavaScript/Reference /ru/docs/Ядро_JavaScript_1.5_Спровчник/Functions /ru/docs/Web/JavaScript/Reference/Functions /ru/docs/Ядро_JavaScript_1.5_Спровчник/Functions/Arrow_functions /ru/docs/Web/JavaScript/Reference/Functions/Arrow_functions diff --git a/files/ru/_wikihistory.json b/files/ru/_wikihistory.json index b21625475a..9b04a178ab 100644 --- a/files/ru/_wikihistory.json +++ b/files/ru/_wikihistory.json @@ -1,188 +1,4 @@ { - "A_Basic_RayCaster": { - "modified": "2019-03-23T23:52:15.954Z", - "contributors": [ - "warsan", - "Chernetsky" - ] - }, - "Building_an_Extension": { - "modified": "2019-03-23T23:58:39.567Z", - "contributors": [ - "topskill", - "fscholz", - "iliacmd" - ] - }, - "Chrome": { - "modified": "2019-03-23T23:17:01.096Z", - "contributors": [ - "Norville", - "LunaticRL" - ] - }, - "DOM": { - "modified": "2019-06-25T10:49:54.010Z", - "contributors": [ - "ethertank", - "Megapotz" - ] - }, - "DOM/DOM_Reference": { - "modified": "2020-08-25T05:36:15.194Z", - "contributors": [ - "tix836", - "shmel3", - "shvedovskiy", - "BychekRU", - "teoli", - "Newser", - "mayconrem" - ] - }, - "DOM/DOM_Reference/Events": { - "modified": "2019-03-18T21:18:44.250Z", - "contributors": [ - "SphinxKnight" - ] - }, - "DOM/DOM_Reference/Examples": { - "modified": "2019-09-25T18:36:16.946Z", - "contributors": [ - "Problemon", - "paxarpp", - "Bargamut" - ] - }, - "DOM/DOM_Reference/Locating_DOM_elements_using_selectors": { - "modified": "2019-03-23T22:13:41.294Z", - "contributors": [ - "tavira" - ] - }, - "DOM/DOM_Reference/Введение": { - "modified": "2019-10-02T12:18:01.287Z", - "contributors": [ - "shmel3", - "newbornfrontender", - "GraceAredel", - "hardsoncore", - "Flaeron", - "paxarpp", - "rapaich", - "miirinjej", - "tavira", - "sersalex", - "tvitcom", - "Y-Taras", - "Azijkes" - ] - }, - "DOM/Using_fullscreen_mode": { - "modified": "2020-10-15T21:22:05.646Z", - "contributors": [ - "dartraiden", - "wbamberg", - "sosnovskyas", - "mzhel" - ] - }, - "DOM/Using_web_workers": { - "modified": "2020-06-15T09:56:56.839Z", - "contributors": [ - "sekrittt", - "S-inTheory", - "KVAnton-WEB", - "demyanovs", - "Akh-rman", - "warsan", - "Corey-Maler", - "citizen55", - "S-le", - "vorobeez", - "namikiri", - "evhandel", - "alex-misch", - "Sajag", - "Anomeon", - "3lvcz", - "x1unix", - "nsine", - "sanarise", - "arvitaly", - "AlexanderTserkovniy", - "sergeiDruzhinin", - "kav137", - "Forshortmrmeth", - "MuradAz", - "ahtohbi4", - "padenot", - "finalex" - ] - }, - "DOM/document.createElement": { - "modified": "2020-05-24T05:32:15.624Z", - "contributors": [ - "MyWay2IT", - "ArtemStudio", - "ellizii", - "RblSb", - "kothique", - "Veers", - "itslooklike", - "Madzi", - "lemurio", - "Guria", - "khalid32", - "Norville", - "teoli", - "icw82", - "Alego" - ] - }, - "DOM/document.images": { - "modified": "2019-03-24T00:04:21.348Z", - "contributors": [ - "khalid32", - "Norville", - "teoli", - "RAP1D" - ] - }, - "DOM/window.requestAnimationFrame": { - "modified": "2020-10-15T21:21:09.538Z", - "contributors": [ - "BehemothOz", - "S-inTheory", - "Kiryhas", - "ekirpichyov", - "Yialo", - "YozhEzhi", - "RoBit", - "alexsanqp", - "Bargamut", - "torbasow", - "Beliarh", - "nyk0r" - ] - }, - "Firefox_3.5_для_разработчика": { - "modified": "2019-03-24T00:00:48.916Z", - "contributors": [ - "wbamberg", - "teoli", - "Dionys" - ] - }, - "Firefox_3_for_developers": { - "modified": "2019-03-23T23:57:24.524Z", - "contributors": [ - "wbamberg", - "teoli", - "Destruction", - "Alm0" - ] - }, "Games": { "modified": "2020-06-19T09:52:35.652Z", "contributors": [ @@ -301,327 +117,77 @@ "netmag" ] }, - "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Заключение": { - "modified": "2020-05-27T13:39:22.186Z", + "Games/Tutorials/HTML5_Gamedev_Phaser_Device_Orientation": { + "modified": "2019-03-18T21:45:23.068Z", "contributors": [ - "S-inTheory", - "fedev", - "ekirpichyov", - "netmag" + "wbamberg", + "maxypayne" ] }, - "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Обнаружение_столкновений": { - "modified": "2020-05-27T13:47:02.328Z", + "Glossary/Accessibility_tree": { + "modified": "2020-10-23T07:48:08.061Z", "contributors": [ - "S-inTheory", - "alexerisov", - "ekirpichyov", - "BrightsDays", - "wbamberg", - "DanInSpace104" + "chrisdavidmills", + "VerZsuT", + "lolyanepizdi" ] }, - "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Переместить_мяч": { - "modified": "2019-09-05T03:56:26.312Z", + "Glossary/Block": { + "modified": "2019-03-23T22:09:54.924Z", "contributors": [ - "ekirpichyov", - "Horbach_Andrii", - "wbamberg", - "W-A-D", - "HellLena" + "DashPisareva", + "Sheppy" ] }, - "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Создаем_зону_кирпичей": { - "modified": "2019-09-05T04:00:55.487Z", + "Glossary/Block/CSS": { + "modified": "2019-03-23T22:09:55.008Z", "contributors": [ - "ekirpichyov", - "netmag", - "wbamberg", - "DanInSpace104" + "DashPisareva" ] }, - "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Создание_Canvas_и_рисование_на_нём": { - "modified": "2019-09-05T03:54:58.102Z", + "Learn": { + "modified": "2020-10-04T14:26:11.837Z", "contributors": [ - "ekirpichyov", - "wbamberg", - "W-A-D", - "HellLena" + "akariZ", + "bytensky", + "methodx", + "SphinxKnight", + "boxa6", + "dmitriy134", + "svarlamov", + "bezik", + "gitzizou", + "zmux", + "tagir000", + "BychekRU", + "sunsetninja", + "JacobPython", + "Evgeny_Kurkin", + "uleming", + "arbatskiy", + "Radewqa", + "Semegen", + "YuliaOksymets", + "Jeremie" ] }, - "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Управление_мышью": { - "modified": "2020-05-27T13:59:03.040Z", + "Learn/CSS": { + "modified": "2020-07-16T22:25:37.223Z", "contributors": [ - "S-inTheory", - "ekirpichyov", - "Merius", - "netmag" - ] - }, - "Games/Tutorials/HTML5_Gamedev_Phaser_Device_Orientation": { - "modified": "2019-03-18T21:45:23.068Z", - "contributors": [ - "wbamberg", - "maxypayne" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser": { - "modified": "2020-02-21T09:29:06.831Z", - "contributors": [ - "SpawnLeon", - "BVaflick", - "wbamberg", - "djigach" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Bounce_off_the_walls": { - "modified": "2019-07-13T11:04:44.018Z", - "contributors": [ - "BVaflick", - "AntonySawyer" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Game_over": { - "modified": "2019-07-04T10:47:35.001Z", - "contributors": [ - "BVaflick" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Initialize_the_framework": { - "modified": "2020-05-27T14:06:50.271Z", - "contributors": [ - "S-inTheory", - "BVaflick", - "VsevolodIvanov", - "wbamberg", - "djigach" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Load_the_assets_and_print_them_on_screen": { - "modified": "2020-05-27T14:16:50.797Z", - "contributors": [ - "S-inTheory", - "Surf12", - "BVaflick", - "wbamberg", - "djigach" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Move_the_ball": { - "modified": "2020-05-27T14:22:37.560Z", - "contributors": [ - "S-inTheory", - "BVaflick", - "wbamberg", - "djigach" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Physics": { - "modified": "2019-07-13T11:03:00.205Z", - "contributors": [ - "BVaflick", - "juliasheleva", - "wbamberg", - "djigach" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Scaling": { - "modified": "2020-05-27T14:30:34.825Z", - "contributors": [ - "S-inTheory", - "BVaflick", - "wbamberg", - "djigach" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Жизни": { - "modified": "2020-07-02T08:17:43.022Z", - "contributors": [ - "f1reSong", - "BVaflick" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Обработка_коллизий": { - "modified": "2019-07-13T11:08:36.093Z", - "contributors": [ - "BVaflick" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Очки": { - "modified": "2019-07-13T11:09:17.012Z", - "contributors": [ - "BVaflick" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Платформа_и_управление": { - "modified": "2019-07-13T11:05:39.887Z", - "contributors": [ - "BVaflick" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Победа": { - "modified": "2019-07-04T12:16:45.863Z", - "contributors": [ - "BVaflick" - ] - }, - "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Создание_кирпичей": { - "modified": "2019-07-13T11:07:30.266Z", - "contributors": [ - "BVaflick" - ] - }, - "Games/Анатомия": { - "modified": "2020-09-16T08:22:06.866Z", - "contributors": [ - "T-EVA-01", - "achernin+" - ] - }, - "Games/Ввод": { - "modified": "2020-01-09T13:42:58.936Z", - "contributors": [ - "idushii", - "nomo3919", - "BVaflick", - "RFG-G" - ] - }, - "Games/Инструменты": { - "modified": "2019-01-17T01:51:17.038Z", - "contributors": [ - "wbamberg", - "Cyganov" - ] - }, - "Games/Инструменты/asm.js": { - "modified": "2019-06-20T10:10:26.692Z", - "contributors": [ - "jkulvich", - "wbamberg", - "Cyganov" - ] - }, - "Glossary/Accessibility_tree": { - "modified": "2020-10-23T07:48:08.061Z", - "contributors": [ - "chrisdavidmills", - "VerZsuT", - "lolyanepizdi" - ] - }, - "Glossary/Block": { - "modified": "2019-03-23T22:09:54.924Z", - "contributors": [ - "DashPisareva", - "Sheppy" - ] - }, - "Glossary/Block/CSS": { - "modified": "2019-03-23T22:09:55.008Z", - "contributors": [ - "DashPisareva" - ] - }, - "Glossary/Block/Скриптинг": { - "modified": "2019-03-23T22:09:52.830Z", - "contributors": [ - "DashPisareva" - ] - }, - "Glossary/Polifill": { - "modified": "2019-03-23T22:18:26.835Z", - "contributors": [ - "pk.prog" - ] - }, - "HTML/HTML5": { - "modified": "2020-11-05T05:54:38.208Z", - "contributors": [ - "ksam", - "nikolay94", - "SphinxKnight", - "duhas1993", - "CrawlOverYou", - "Hamelion-gm", - "MuradAz", - "teoli", - "BychekRU", - "syam1123", - "M57", - "Jmunb", - "repby", - "uleming", - "askhat", - "andygol", - "Grakov", - "AxDaim" - ] - }, - "HTML/HTML5/Constraint_validation": { - "modified": "2019-03-23T22:20:23.601Z", - "contributors": [ - "lautsevich", - "Pescao" - ] - }, - "HTML/HTML5/Введение_в_HTML5": { - "modified": "2019-03-23T23:32:08.971Z", - "contributors": [ - "Jmunb", - "Grakov" - ] - }, - "Introduction_(alternate)": { - "modified": "2019-03-23T23:38:23.548Z", - "contributors": [ - "Nick_Pershin", - "greybax" - ] - }, - "Learn": { - "modified": "2020-10-04T14:26:11.837Z", - "contributors": [ - "akariZ", - "bytensky", - "methodx", - "SphinxKnight", - "boxa6", - "dmitriy134", - "svarlamov", - "bezik", - "gitzizou", - "zmux", - "tagir000", - "BychekRU", - "sunsetninja", - "JacobPython", - "Evgeny_Kurkin", - "uleming", - "arbatskiy", - "Radewqa", - "Semegen", - "YuliaOksymets", - "Jeremie" - ] - }, - "Learn/CSS": { - "modified": "2020-07-16T22:25:37.223Z", - "contributors": [ - "Ivan961", - "binxer", - "skrikl", - "izhurav", - "alexbs", - "sborenko", - "niktariy", - "bezik", - "Shychara", - "kolanski", - "VladdOs", - "BychekRU", - "uleming", - "Andrew_Pfeiffer" + "Ivan961", + "binxer", + "skrikl", + "izhurav", + "alexbs", + "sborenko", + "niktariy", + "bezik", + "Shychara", + "kolanski", + "VladdOs", + "BychekRU", + "uleming", + "Andrew_Pfeiffer" ] }, "Learn/CSS/Building_blocks": { @@ -732,72 +298,17 @@ "Ivan961" ] }, - "Learn/CSS/Building_blocks/Каскад_задачи": { - "modified": "2020-10-01T14:31:53.395Z", + "Learn/CSS/CSS_layout": { + "modified": "2020-11-04T06:48:54.216Z", "contributors": [ - "at940266" - ] - }, - "Learn/CSS/Building_blocks/Селекторы": { - "modified": "2020-07-19T06:45:12.608Z", - "contributors": [ - "k0w4lk", - "Ivan961", - "BADNaMe-RK" - ] - }, - "Learn/CSS/Building_blocks/Селекторы/Attribute_selectors": { - "modified": "2020-10-08T15:38:42.541Z", - "contributors": [ - "at940266", - "k0w4lk", - "Ivan961" - ] - }, - "Learn/CSS/Building_blocks/Селекторы/Combinators": { - "modified": "2020-12-07T19:30:35.658Z", - "contributors": [ - "RoPy73", - "at940266", - "anna.bunakova", - "sovushka-utrom", - "Ivan961" - ] - }, - "Learn/CSS/Building_blocks/Селекторы/Pseudo-classes_and_pseudo-elements": { - "modified": "2020-10-14T14:08:41.639Z", - "contributors": [ - "at940266", - "anna.bunakova", - "Ivan961" - ] - }, - "Learn/CSS/Building_blocks/Селекторы/Type_Class_and_ID_Selectors": { - "modified": "2020-10-07T14:15:51.046Z", - "contributors": [ - "at940266", - "ctmyxa", - "k0w4lk", - "Ivan961" - ] - }, - "Learn/CSS/Building_blocks/Селекторы/Селекторы_Задачи": { - "modified": "2020-10-28T14:57:16.890Z", - "contributors": [ - "at940266" - ] - }, - "Learn/CSS/CSS_layout": { - "modified": "2020-11-04T06:48:54.216Z", - "contributors": [ - "chuuddo", - "rookhive", - "engine-r", - "opereverzeva", - "skrikl", - "marksq", - "valeryvitkus", - "chrisdavidmills" + "chuuddo", + "rookhive", + "engine-r", + "opereverzeva", + "skrikl", + "marksq", + "valeryvitkus", + "chrisdavidmills" ] }, "Learn/CSS/CSS_layout/Flexbox": { @@ -871,44 +382,6 @@ "slychai85" ] }, - "Learn/CSS/CSS_layout/Макет_с_несколькими_столбцами": { - "modified": "2020-09-06T07:21:18.080Z", - "contributors": [ - "shade0602" - ] - }, - "Learn/CSS/CSS_layout/Навыки_Multicol": { - "modified": "2020-09-07T06:45:08.142Z", - "contributors": [ - "shade0602" - ] - }, - "Learn/CSS/CSS_layout/Навыки_позиционирования": { - "modified": "2020-09-07T06:09:02.193Z", - "contributors": [ - "shade0602" - ] - }, - "Learn/CSS/CSS_layout/Нормальный_поток": { - "modified": "2020-10-13T15:21:40.503Z", - "contributors": [ - "mvictorl", - "nsvintitskiy", - "SoMuchEffort" - ] - }, - "Learn/CSS/CSS_layout/Отзывчивый_дизайн": { - "modified": "2020-10-31T07:15:02.288Z", - "contributors": [ - "shade0602" - ] - }, - "Learn/CSS/CSS_properties": { - "modified": "2020-07-16T22:25:39.788Z", - "contributors": [ - "sviter" - ] - }, "Learn/CSS/First_steps": { "modified": "2020-07-16T22:27:40.530Z", "contributors": [ @@ -946,31 +419,6 @@ "Ivan961" ] }, - "Learn/CSS/First_steps/Как_структурирован_CSS": { - "modified": "2020-11-30T19:42:39.732Z", - "contributors": [ - "RoPy73", - "shade0602", - "Ivan961", - "Ultron5" - ] - }, - "Learn/CSS/First_steps/Что_такое_CSS": { - "modified": "2020-10-15T22:23:15.801Z", - "contributors": [ - "Ivan961", - "fedev", - "Tortik217" - ] - }, - "Learn/CSS/Introduction_to_CSS/Ponimanie_osnov_CSS": { - "modified": "2020-07-16T22:28:13.122Z", - "contributors": [ - "maxbo8", - "trman", - "VyacheslavLobanov" - ] - }, "Learn/CSS/Styling_text": { "modified": "2020-10-23T11:04:50.232Z", "contributors": [ @@ -999,33 +447,6 @@ "nikolayandr" ] }, - "Learn/CSS/Styling_text/Веб_шрифты": { - "modified": "2020-07-19T10:10:59.329Z", - "contributors": [ - "nsvintitskiy", - "shade0602" - ] - }, - "Learn/CSS/Styling_text/Задание:_Стилизирование_школьного_сайта": { - "modified": "2020-07-16T22:26:27.408Z", - "contributors": [ - "shade0602" - ] - }, - "Learn/CSS/Styling_text/Стилизация_списков": { - "modified": "2020-07-16T22:26:14.698Z", - "contributors": [ - "shade0602", - "vedmibot" - ] - }, - "Learn/CSS/Как": { - "modified": "2020-07-16T22:25:44.184Z", - "contributors": [ - "code-timer", - "Shychara" - ] - }, "Learn/Common_questions": { "modified": "2020-07-16T22:35:26.905Z", "contributors": [ @@ -1108,15 +529,6 @@ "teedree" ] }, - "Learn/Discover_browser_developer_tools": { - "modified": "2020-07-16T22:35:48.058Z", - "contributors": [ - "mirajane23", - "fox67rus", - "Metallman", - "Dante103" - ] - }, "Learn/Getting_started_with_the_web": { "modified": "2020-07-17T07:11:41.531Z", "contributors": [ @@ -1264,27 +676,6 @@ "dm_glazunov" ] }, - "Learn/Getting_started_with_the_web/Веб_и_веб_стандарты": { - "modified": "2020-08-13T10:56:47.304Z", - "contributors": [ - "bogpok" - ] - }, - "Learn/Getting_started_with_the_web/Установка_базового_программного_обеспечения": { - "modified": "2020-07-16T22:34:11.219Z", - "contributors": [ - "Anonymous", - "skapesec", - "rapaich", - "Egokorok", - "gitzizou", - "boddik", - "BychekRU", - "Evgeny_Kurkin", - "Unregistered45", - "Neir" - ] - }, "Learn/HTML": { "modified": "2020-07-16T22:22:23.267Z", "contributors": [ @@ -1297,94 +688,6 @@ "Zevs" ] }, - "Learn/HTML/Forms": { - "modified": "2020-07-16T22:21:01.609Z", - "contributors": [ - "ryabv", - "shmel3", - "Zekkler", - "neizerth", - "PWasiliy", - "SeryiMysh", - "chrisdavidmills", - "GaidaiAndrii", - "bracket", - "Dmitrij" - ] - }, - "Learn/HTML/Forms/How_to_build_custom_form_widgets": { - "modified": "2020-07-16T22:21:58.194Z", - "contributors": [ - "Avrisia", - "outdever" - ] - }, - "Learn/HTML/Forms/How_to_structure_an_HTML_form": { - "modified": "2020-09-23T12:04:06.961Z", - "contributors": [ - "ryabv", - "BADNaMe-RK", - "outdever", - "Lapagirl", - "vedmibot", - "SeryiMysh" - ] - }, - "Learn/HTML/Forms/Sending_forms_through_JavaScript": { - "modified": "2020-11-20T12:05:04.254Z", - "contributors": [ - "lazyelf472" - ] - }, - "Learn/HTML/Forms/Styling_HTML_forms": { - "modified": "2020-07-16T22:21:32.230Z", - "contributors": [ - "8nabo" - ] - }, - "Learn/HTML/Forms/Валидация_формы": { - "modified": "2020-10-17T05:54:59.534Z", - "contributors": [ - "raylyanway", - "NadinHub", - "Hydrock", - "nikolai-shabalin", - "JediKnightIT", - "Ishayahu", - "LbIdarka", - "ivandoroshenko" - ] - }, - "Learn/HTML/Forms/Ваша_первая_HTML_форма": { - "modified": "2020-07-16T22:21:06.805Z", - "contributors": [ - "ryabv", - "deicer" - ] - }, - "Learn/HTML/Forms/Отправка_и_Получение_данных_формы": { - "modified": "2020-07-16T22:21:29.080Z", - "contributors": [ - "Shabu-Dabi", - "taletski", - "isetpro", - "melission", - "Kamikadze4GAME", - "ZveRuss", - "Dzmitry_K" - ] - }, - "Learn/HTML/Forms/Стандартные_виджеты_форм": { - "modified": "2020-12-02T02:50:19.864Z", - "contributors": [ - "kan0neego", - "lazyelf472", - "Галина", - "shade0602", - "outdever", - "Instantrec" - ] - }, "Learn/HTML/Multimedia_and_embedding": { "modified": "2020-12-09T01:54:57.875Z", "contributors": [ @@ -1452,68 +755,19 @@ "FeruzOripov" ] }, - "Learn/HTML/Multimedia_and_embedding/Добавление_r_graphics_to_the_Web": { - "modified": "2020-12-10T10:10:26.376Z", + "Learn/HTML/Tables": { + "modified": "2020-11-02T02:08:26.971Z", "contributors": [ - "Simkin", + "AlexUS", + "Excent163", "Khaidarov-Dinar", - "nepiravno", - "AlexChebanenko", - "shade0602", - "Why-are-you-crying", - "vedmibot" + "streetsummit", + "skapesec", + "mariag" ] }, - "Learn/HTML/Multimedia_and_embedding/Изображения_в_HTML": { - "modified": "2020-12-10T06:02:16.441Z", - "contributors": [ - "valandis", - "qafarov33", - "shade0602", - "wizardbil", - "WorpSeal", - "xHelloverx", - "Zekller", - "Corba", - "orcee", - "nowember", - "Aleksey_Esev", - "KoS57", - "InRedikaWB", - "Kouler", - "AliyevHrn", - "sowdfr", - "tav1313" - ] - }, - "Learn/HTML/Multimedia_and_embedding/Изображения_в_HTML/Проверьте_свои_знания:_Изображения_в_HTML": { - "modified": "2020-12-10T07:17:32.470Z", - "contributors": [ - "valandis" - ] - }, - "Learn/HTML/Multimedia_and_embedding/заставка_Mozilla": { - "modified": "2020-12-01T05:21:19.875Z", - "contributors": [ - "Furestry", - "RoPy73", - "Zekkler", - "AlekseyCorsello" - ] - }, - "Learn/HTML/Tables": { - "modified": "2020-11-02T02:08:26.971Z", - "contributors": [ - "AlexUS", - "Excent163", - "Khaidarov-Dinar", - "streetsummit", - "skapesec", - "mariag" - ] - }, - "Learn/HTML/Tables/Advanced": { - "modified": "2020-11-21T11:20:38.881Z", + "Learn/HTML/Tables/Advanced": { + "modified": "2020-11-21T11:20:38.881Z", "contributors": [ "RoPy73", "evstpet", @@ -1543,212 +797,6 @@ "Anonymous" ] }, - "Learn/HTML/Введение_в_HTML": { - "modified": "2020-07-16T22:22:52.967Z", - "contributors": [ - "boxa6", - "skapesec", - "VAskel", - "SedovDP", - "SergeyIrk", - "s1lver", - "alekaru", - "Denispok", - "AKonia", - "pk.prog", - "Vosik", - "Cyganov" - ] - }, - "Learn/HTML/Введение_в_HTML/Advanced_text_formatting": { - "modified": "2020-12-07T12:01:12.996Z", - "contributors": [ - "valandis", - "avdalyan", - "Ivan961", - "streetsummit", - "dkrukouski", - "boxa6", - "Bodyhealer", - "s.g.matinyan", - "Dzhabarovm", - "xap", - "Chugou9", - "slychai85", - "glebsc", - "pythonmag", - "FeruzOripov" - ] - }, - "Learn/HTML/Введение_в_HTML/Debugging_HTML": { - "modified": "2020-07-16T22:24:16.076Z", - "contributors": [ - "IlyaDanilovich", - "ekirpichyov", - "boxa6", - "krempson", - "thoughtspile", - "CruOne", - "MariyaSka" - ] - }, - "Learn/HTML/Введение_в_HTML/HTML_text_fundamentals": { - "modified": "2020-12-07T02:44:19.544Z", - "contributors": [ - "valandis", - "Vir", - "Ivan961", - "streetsummit", - "CLoud-Maker", - "exarces", - "4Realit", - "ndrxie", - "Hemonugi", - "boxa6", - "screenspace", - "a-klimantow", - "Tuman", - "nikin93" - ] - }, - "Learn/HTML/Введение_в_HTML/Marking_up_a_letter": { - "modified": "2020-12-07T13:58:43.781Z", - "contributors": [ - "valandis", - "Khaidarov-Dinar", - "shade0602", - "Janivar05", - "Darbestor", - "boxa6", - "Tuman", - "thoughtspile", - "saniaky" - ] - }, - "Learn/HTML/Введение_в_HTML/Structuring_a_page_of_content": { - "modified": "2020-12-08T12:05:46.465Z", - "contributors": [ - "valandis", - "shade0602", - "H3llaFresh", - "boxa6", - "SenkevichEvgenii", - "Dzhabarovm", - "thoughtspile" - ] - }, - "Learn/HTML/Введение_в_HTML/The_head_metadata_in_HTML": { - "modified": "2020-12-06T13:02:48.159Z", - "contributors": [ - "valandis", - "Ivan961", - "streetsummit", - "AlexKost700", - "trman", - "boxa6", - "Bapen1k", - "SoMuchEffort", - "AlexeyIoffe", - "DenisYaschenko", - "hornuglan", - "reksar", - "AkulinaShark", - "saniaky", - "SergeyIrk", - "SergeySM", - "thoughtspile", - "nikin93", - "kolanski" - ] - }, - "Learn/HTML/Введение_в_HTML/Начало_работы": { - "modified": "2020-12-06T12:25:35.513Z", - "contributors": [ - "valandis", - "avdalyan", - "mirzoevtt", - "Ivan961", - "OlehMrB", - "boxa6", - "HelpVPS", - "SedovDP", - "Smekh", - "SoMuchEffort", - "AlexeyIoffe", - "buhman1974", - "Christisrisen", - "lexachsar", - "5iv1i73", - "SelenIT", - "SergeyIrk", - "ax2mx", - "StrixG", - "nikin93", - "thoughtspile", - "katerina_ti", - "zloyKrolik", - "Startsev", - "kolanski", - "AKonia" - ] - }, - "Learn/HTML/Введение_в_HTML/Создание_гиперссылок": { - "modified": "2020-12-07T04:48:22.214Z", - "contributors": [ - "valandis", - "Ivan961", - "Aalexashka", - "Hemonugi", - "boxa6", - "Bob-chemist", - "xap", - "Klevtcov", - "reksar", - "skapesec", - "Potemkiin", - "Nerill", - "Cruseir", - "thoughtspile", - "arturparkhisenko", - "nikin93" - ] - }, - "Learn/HTML/Введение_в_HTML/Структура_документа_и_веб-сайта": { - "modified": "2020-12-07T13:21:17.650Z", - "contributors": [ - "valandis", - "ana-karp", - "Ivan961", - "sergeyshulzhenko", - "Merius", - "boxa6", - "thoughtspile", - "Potemkiin", - "beloglazof", - "IrinaShv" - ] - }, - "Learn/HTML/Рецепты": { - "modified": "2020-07-16T22:22:30.849Z", - "contributors": [ - "PaRaD0XCORP", - "Rendjey", - "AKonia" - ] - }, - "Learn/How_the_Internet_works": { - "modified": "2020-08-13T11:15:09.762Z", - "contributors": [ - "bogpok", - "S-Sukhin", - "kss555", - "Sturmtiger", - "OrkVasya", - "andrey_fm", - "TinaSuhanovskaya", - "elcamlost" - ] - }, "Learn/JavaScript": { "modified": "2020-11-05T07:04:03.926Z", "contributors": [ @@ -1801,13 +849,6 @@ "MaxYenot" ] }, - "Learn/JavaScript/Asynchronous/Таймауты_и_интервалы": { - "modified": "2020-12-09T10:32:13.319Z", - "contributors": [ - "WhoRlyCares", - "velheor24" - ] - }, "Learn/JavaScript/Building_blocks": { "modified": "2020-07-16T22:31:10.516Z", "contributors": [ @@ -1903,24 +944,8 @@ "evgeniypotseluev" ] }, - "Learn/JavaScript/Building_blocks/События": { - "modified": "2020-08-14T06:15:51.092Z", - "contributors": [ - "bogpok", - "Bb1cTpeJI", - "artamonster", - "chergav", - "kryukalexander", - "ConstantineZz", - "Zibroff", - "vOICe-xx", - "CharlyLovegood", - "slychai85", - "Paul_Yuhnovich" - ] - }, - "Learn/JavaScript/Client-side_web_APIs": { - "modified": "2020-07-16T22:32:42.215Z", + "Learn/JavaScript/Client-side_web_APIs": { + "modified": "2020-07-16T22:32:42.215Z", "contributors": [ "hisbvdis", "Fiksers", @@ -1991,646 +1016,274 @@ "paxarpp" ] }, - "Learn/JavaScript/Объекты": { - "modified": "2020-07-16T22:31:52.750Z", + "Learn/Performance": { + "modified": "2020-11-19T04:33:49.923Z", "contributors": [ - "VoropN", - "injashkin", - "KomarovSergey", - "george-04" + "nomercyso2cybersport", + "EgorKorol", + "estelle" ] }, - "Learn/JavaScript/Объекты/Adding_bouncing_balls_features": { - "modified": "2020-07-16T22:32:35.948Z", + "Learn/Performance/business_case_for_performance": { + "modified": "2020-07-16T22:40:42.596Z", "contributors": [ - "Stexe", - "slychai85" + "D.Lesnik" ] }, - "Learn/JavaScript/Объекты/Inheritance": { - "modified": "2020-10-17T04:55:20.992Z", + "Learn/Server-side": { + "modified": "2020-07-16T22:36:02.172Z", "contributors": [ - "raylyanway", - "masawik", - "wind-of", - "injashkin", - "Aparin", - "AntonySawyer", - "slychai85" + "skipp", + "Paul_Yuhnovich", + "jynweythek", + "Geloosa", + "Sumere4ny", + "DIAMONDinc", + "chrisdavidmills" ] }, - "Learn/JavaScript/Объекты/JSON": { - "modified": "2020-07-16T22:32:28.868Z", + "Learn/Server-side/Apache_Configuration_htaccess": { + "modified": "2020-11-17T06:08:27.845Z", "contributors": [ - "Tatyana-c", - "pm3512", - "wind-of", - "NikitaOstapenko1205", - "boxa6", - "Lirikklimov", - "slychai85" + "chrisdavidmills", + "kirill001" ] }, - "Learn/JavaScript/Объекты/Object-oriented_JS": { - "modified": "2020-11-28T15:15:40.063Z", + "Learn/Server-side/Django": { + "modified": "2020-07-16T22:36:35.585Z", "contributors": [ - "Tartalon", - "Viatcheslav-Malahov", - "wind-of", - "Detrimon", - "BadLame", - "ConstantineZz", - "ellegre", - "injashkin", - "NooNoo1337", - "Roman-Halenko", - "sergeomak", - "Elena_Petrenko", - "uandrew", - "slychai85", - "superpuper32", - "GennadyGlushenkov" + "exelay", + "OlegStanKoptev", + "gutgutter", + "Sumere4ny", + "DIAMONDinc", + "alexfromvl", + "DenGodunov" ] }, - "Learn/JavaScript/Объекты/Object_building_practice": { - "modified": "2020-07-16T22:32:32.476Z", + "Learn/Server-side/Django/Admin_site": { + "modified": "2020-07-16T22:37:05.756Z", "contributors": [ - "Slowball", - "benzin_kanister", - "ellegre", - "boxa6", - "slychai85" + "Palladiumm", + "aflyka", + "dimaviolinist", + "askras", + "aimtbr", + "Costonied", + "Keiichii", + "Santa388", + "DIAMONDinc", + "yuriy65", + "Denizz" ] }, - "Learn/JavaScript/Объекты/Object_prototypes": { - "modified": "2020-07-16T22:32:22.353Z", + "Learn/Server-side/Django/Forms": { + "modified": "2020-10-10T14:48:33.294Z", "contributors": [ - "wind-of", - "sahmildzhakeev", - "injashkin", - "Aparin", - "kplatova", - "NooNoo1337", - "VaselisaS", - "slychai85", - "arnoldovich", - "AndreySushentsov" + "hustonCun", + "maksam07", + "Petr28", + "Vanvala", + "theomoore", + "ShuaChee", + "DIAMONDinc", + "Seele22", + "al+chernin", + "alexfromvl" ] }, - "Learn/JavaScript/Объекты/Основы": { - "modified": "2020-11-25T08:55:51.454Z", + "Learn/Server-side/Django/Generic_views": { + "modified": "2020-07-16T22:37:18.976Z", "contributors": [ - "Tartalon", - "alexpikuta", - "wind-of", - "jynweythek", - "iwanttobealight", - "ConstantineZz", - "genesky", - "boxa6", - "injashkin", - "NooNoo1337", - "Dusmatoff", - "KoS57", - "slychai85", - "Jony_e", - "slowpokex", - "DoRightt", - "superpuper32" + "theomoore", + "askras", + "Azwartin", + "expo-lux", + "Seele22", + "DIAMONDinc", + "Keiichii", + "al+chernin" ] }, - "Learn/JavaScript/Первые_шаги": { - "modified": "2020-07-16T22:29:55.165Z", + "Learn/Server-side/Django/Home_page": { + "modified": "2020-07-16T22:37:11.505Z", "contributors": [ - "chrisdavidmills", - "boxa6", - "maxno62", - "Jertej", - "pepsikat", - "alekaru", - "a13xk", - "campside", - "werreour", - "tagir000" + "askras", + "Costonied", + "julius425", + "DIAMONDinc", + "Keiichii", + "Santa388", + "al+chernin" ] }, - "Learn/JavaScript/Первые_шаги/A_first_splash": { - "modified": "2020-09-18T19:59:13.793Z", + "Learn/Server-side/Django/Models": { + "modified": "2020-09-21T15:09:16.230Z", "contributors": [ - "aashch1", - "SphinxKnight", - "sirartemis", - "TurtleOld", - "wanvo", - "Novo", - "Shadow86", - "slychai85", - "TaizoGem", - "Rodionoff", - "st4nislava", - "AndrewSamofalov", - "warsan", - "SergeySM", - "lipav", - "InternetShelteredBoy", - "HaukIce", - "maicom64", - "fragmentbyte", - "kirabt123", - "Segyn", - "FIJN", - "alekaru" + "DrPeryCox", + "ignusin", + "egorbir", + "Palladiumm", + "nuwak", + "alexod", + "Mainstand", + "to-Sky", + "Azwartin", + "bayborodin", + "Keiichii", + "DIAMONDinc", + "carbonec" ] }, - "Learn/JavaScript/Первые_шаги/Arrays": { - "modified": "2020-07-16T22:30:57.680Z", + "Learn/Server-side/Django/Testing": { + "modified": "2020-07-16T22:37:38.879Z", "contributors": [ - "SphinxKnight", - "Immdevrov", - "chergav", - "ConstantineZz", - "maksolimp", - "AliyevHrn", - "slychai85", - "10486", - "samofand", - "ArtyomIv" + "Breadp4ck", + "theomoore", + "DIAMONDinc", + "requiemofthesouls", + "Azwartin", + "Seele22", + "al+chernin" ] }, - "Learn/JavaScript/Первые_шаги/Math": { - "modified": "2020-07-16T22:30:28.347Z", + "Learn/Server-side/Django/Tutorial_local_library_website": { + "modified": "2020-07-16T22:36:50.376Z", "contributors": [ - "podocenov", - "SphinxKnight", - "bsanzhiev", - "xxphantom", - "EugeneSvetlakov", - "ConstantineZz", - "galaxy3user", - "BerezkinBerezkin", - "y2k", - "Froris", - "AndrewSamofalov", - "FIJN" + "mmbl", + "hexeh", + "FeruzOripov", + "Flygrounder" ] }, - "Learn/JavaScript/Первые_шаги/Useful_string_methods": { - "modified": "2020-12-02T10:07:41.183Z", + "Learn/Server-side/Django/development_environment": { + "modified": "2020-07-16T22:36:46.788Z", "contributors": [ - "nyood", - "SphinxKnight", - "Ivan961", - "Anonymous", - "RedKvothe", - "ConstantineZz", - "boxa6", - "chrisdavidmills", - "AsVit", - "AliyevHrn", - "slychai85", - "MariyaSka", - "samofand", - "AndrewSamofalov" - ] - }, - "Learn/JavaScript/Первые_шаги/Variables": { - "modified": "2020-07-23T12:20:59.443Z", - "contributors": [ - "k0w4lk", - "SphinxKnight", - "goyalion17", - "ConstantineZz", - "hasiev-elchin", - "Froris", - "AliyevHrn", - "slychai85", - "AndrewSamofalov", - "laion220995", - "HaukIce" + "maksam07", + "NickSalander", + "Mainstand", + "hexeh", + "PandaBalu", + "mcm8mcm", + "hbble", + "AgeratoS", + "vakhet", + "Elkis", + "MailfTrue", + "hellpirat" ] }, - "Learn/JavaScript/Первые_шаги/What_is_JavaScript": { - "modified": "2020-07-16T22:30:12.291Z", + "Learn/Server-side/Django/django_assessment_blog": { + "modified": "2020-07-16T22:37:49.218Z", "contributors": [ - "hisbvdis", - "SphinxKnight", - "Avdros", - "ana-karp", - "EugeneSvetlakov", - "goyalion17", - "AlexanderSpivak", - "KrasPvP", - "Kirill20123", - "chrisdavidmills", - "DmitryYev", - "Sherxan", - "DraXXX", - "s0nly", - "InternetShelteredBoy", - "Jertej", - "fragmentbyte", - "YanaGord", - "pathliving", - "perevalova", - "dkireev", - "susov", - "pust0ta", - "Badpioneer", - "MrCopying", - "DRuslan", - "Mikhail_Eltekov", - "alekaru", - "lawyer12" + "DIAMONDinc" ] }, - "Learn/JavaScript/Первые_шаги/Создатель_глуых_историй": { - "modified": "2020-11-24T09:51:12.035Z", + "Learn/Server-side/Django/skeleton_website": { + "modified": "2020-07-16T22:36:54.229Z", "contributors": [ - "tetragidrohlorid", - "SphinxKnight", - "ikzsl", - "AntonySawyer", - "ConstantineZz", - "vasja-slvm", - "AliyevHrn", - "slychai85", - "epidersis", - "DonVeds" + "Bogomazof", + "Palladiumm", + "NickSalander", + "sepulenie", + "EfimovSergeiV", + "aPenkov", + "dimaviolinist", + "ArthurKud", + "Costonied", + "DIAMONDinc", + "Flygrounder" ] }, - "Learn/JavaScript/Первые_шаги/Строки": { - "modified": "2020-09-30T14:12:03.725Z", + "Learn/Server-side/Django/web_application_security": { + "modified": "2020-07-16T22:37:46.879Z", "contributors": [ - "artsimon555", - "SphinxKnight", - "maxbo8", - "ConstantineZz", - "boxa6", - "galaxy3user", - "CharlyLovegood", - "mironovartem" + "NataliaNagaeva", + "Azwartin" ] }, - "Learn/JavaScript/Первые_шаги/Что_пошло_не_так": { - "modified": "2020-07-16T22:30:36.453Z", + "Learn/Server-side/Express_Nodejs": { + "modified": "2020-07-16T22:37:55.363Z", "contributors": [ - "SphinxKnight", - "Immdevrov", - "chrisdavidmills", - "SedovDP", - "ArturWer", - "hasiev-elchin", - "Froris", - "AliyevHrn", - "MariyaSka", - "AndrewSamofalov", - "SergeySM", - "nikitapoly" + "Aparin", + "reksar", + "Paul_Yuhnovich", + "daviys", + "Sumere4ny" ] }, - "Learn/Pages_sites_servers_and_search_engines": { - "modified": "2020-09-27T11:42:16.769Z", + "Learn/Server-side/Express_Nodejs/Displaying_data": { + "modified": "2020-07-16T22:38:31.314Z", "contributors": [ - "sailonely", - "PinkDeer", - "beloglazof", - "OrkVasya", - "Kipelych", - "TinaSuhanovskaya", - "Hasyama", - "elcamlost" + "mikemoll", + "alxatr", + "MariyaSka" ] }, - "Learn/Performance": { - "modified": "2020-11-19T04:33:49.923Z", + "Learn/Server-side/Express_Nodejs/Displaying_data/Author_list_page": { + "modified": "2020-07-16T22:38:38.119Z", "contributors": [ - "nomercyso2cybersport", - "EgorKorol", - "estelle" + "alxatr" ] }, - "Learn/Performance/business_case_for_performance": { - "modified": "2020-07-16T22:40:42.596Z", + "Learn/Server-side/Express_Nodejs/Displaying_data/BookInstance_list_page": { + "modified": "2020-07-16T22:38:36.909Z", "contributors": [ - "D.Lesnik" + "alxatr" ] }, - "Learn/Server-side": { - "modified": "2020-07-16T22:36:02.172Z", + "Learn/Server-side/Express_Nodejs/Displaying_data/Book_list_page": { + "modified": "2020-07-16T22:38:36.242Z", "contributors": [ - "skipp", - "Paul_Yuhnovich", - "jynweythek", - "Geloosa", - "Sumere4ny", - "DIAMONDinc", - "chrisdavidmills" + "alxatr", + "MariyaSka" ] }, - "Learn/Server-side/Apache_Configuration_htaccess": { - "modified": "2020-11-17T06:08:27.845Z", + "Learn/Server-side/Express_Nodejs/Displaying_data/Date_formatting_using_moment": { + "modified": "2020-07-16T22:38:37.510Z", "contributors": [ - "chrisdavidmills", - "kirill001" + "alxatr", + "MariyaSka" ] }, - "Learn/Server-side/Django": { - "modified": "2020-07-16T22:36:35.585Z", + "Learn/Server-side/Express_Nodejs/Displaying_data/Genre_detail_page": { + "modified": "2020-07-16T22:38:38.667Z", "contributors": [ - "exelay", - "OlegStanKoptev", - "gutgutter", - "Sumere4ny", - "DIAMONDinc", - "alexfromvl", - "DenGodunov" + "alxatr" ] }, - "Learn/Server-side/Django/Admin_site": { - "modified": "2020-07-16T22:37:05.756Z", + "Learn/Server-side/Express_Nodejs/Displaying_data/Home_page": { + "modified": "2020-07-16T22:38:35.549Z", "contributors": [ - "Palladiumm", - "aflyka", - "dimaviolinist", - "askras", - "aimtbr", - "Costonied", - "Keiichii", - "Santa388", - "DIAMONDinc", - "yuriy65", - "Denizz" + "hahlek", + "blok1118", + "alxatr" ] }, - "Learn/Server-side/Django/Forms": { - "modified": "2020-10-10T14:48:33.294Z", + "Learn/Server-side/Express_Nodejs/Displaying_data/LocalLibrary_base_template": { + "modified": "2020-12-13T05:36:31.182Z", "contributors": [ - "hustonCun", - "maksam07", - "Petr28", - "Vanvala", - "theomoore", - "ShuaChee", - "DIAMONDinc", - "Seele22", - "al+chernin", - "alexfromvl" + "kozakartem", + "hahlek", + "alxatr", + "MariyaSka" ] }, - "Learn/Server-side/Django/Generic_views": { - "modified": "2020-07-16T22:37:18.976Z", + "Learn/Server-side/Express_Nodejs/Displaying_data/Template_primer": { + "modified": "2020-07-16T22:38:34.518Z", "contributors": [ - "theomoore", - "askras", - "Azwartin", - "expo-lux", - "Seele22", - "DIAMONDinc", - "Keiichii", - "al+chernin" + "alxatr" ] }, - "Learn/Server-side/Django/Home_page": { - "modified": "2020-07-16T22:37:11.505Z", + "Learn/Server-side/Express_Nodejs/Displaying_data/flow_control_using_async": { + "modified": "2020-07-16T22:38:33.391Z", "contributors": [ - "askras", - "Costonied", - "julius425", - "DIAMONDinc", - "Keiichii", - "Santa388", - "al+chernin" + "mikemoll", + "alxatr" ] }, - "Learn/Server-side/Django/Models": { - "modified": "2020-09-21T15:09:16.230Z", - "contributors": [ - "DrPeryCox", - "ignusin", - "egorbir", - "Palladiumm", - "nuwak", - "alexod", - "Mainstand", - "to-Sky", - "Azwartin", - "bayborodin", - "Keiichii", - "DIAMONDinc", - "carbonec" - ] - }, - "Learn/Server-side/Django/Testing": { - "modified": "2020-07-16T22:37:38.879Z", - "contributors": [ - "Breadp4ck", - "theomoore", - "DIAMONDinc", - "requiemofthesouls", - "Azwartin", - "Seele22", - "al+chernin" - ] - }, - "Learn/Server-side/Django/Tutorial_local_library_website": { - "modified": "2020-07-16T22:36:50.376Z", - "contributors": [ - "mmbl", - "hexeh", - "FeruzOripov", - "Flygrounder" - ] - }, - "Learn/Server-side/Django/development_environment": { - "modified": "2020-07-16T22:36:46.788Z", - "contributors": [ - "maksam07", - "NickSalander", - "Mainstand", - "hexeh", - "PandaBalu", - "mcm8mcm", - "hbble", - "AgeratoS", - "vakhet", - "Elkis", - "MailfTrue", - "hellpirat" - ] - }, - "Learn/Server-side/Django/django_assessment_blog": { - "modified": "2020-07-16T22:37:49.218Z", - "contributors": [ - "DIAMONDinc" - ] - }, - "Learn/Server-side/Django/skeleton_website": { - "modified": "2020-07-16T22:36:54.229Z", - "contributors": [ - "Bogomazof", - "Palladiumm", - "NickSalander", - "sepulenie", - "EfimovSergeiV", - "aPenkov", - "dimaviolinist", - "ArthurKud", - "Costonied", - "DIAMONDinc", - "Flygrounder" - ] - }, - "Learn/Server-side/Django/web_application_security": { - "modified": "2020-07-16T22:37:46.879Z", - "contributors": [ - "NataliaNagaeva", - "Azwartin" - ] - }, - "Learn/Server-side/Django/Аутентификация": { - "modified": "2020-10-09T09:34:14.083Z", - "contributors": [ - "hustonCun", - "i0tool5", - "Andrey.Chichak", - "SYSchel", - "Maksimka101", - "ivkainova", - "VyacheslavLobanov", - "DIAMONDinc", - "warsan", - "Flygrounder", - "kivaschenko", - "MariyaSka", - "zet694", - "al+chernin" - ] - }, - "Learn/Server-side/Django/Введение": { - "modified": "2020-12-09T11:58:11.401Z", - "contributors": [ - "mantisSp", - "malikovboo", - "exelay", - "NickSalander", - "xc0derx", - "azhlbn", - "NeshkoO", - "kivaschenko", - "hbble", - "Danchek", - "n05tr0m0", - "Limpar", - "vakhet", - "kilovoltov", - "AnnaSamonenko", - "DIAMONDinc" - ] - }, - "Learn/Server-side/Django/Разворачивание": { - "modified": "2020-07-16T22:37:42.545Z", - "contributors": [ - "velocanica", - "Vanvala", - "Nunyapa", - "DIAMONDinc", - "kitasS", - "1Gregory", - "kivaschenko", - "al+chernin" - ] - }, - "Learn/Server-side/Django/Сессии": { - "modified": "2020-07-16T22:37:27.912Z", - "contributors": [ - "egorguscha", - "timur-orudzhov", - "askras", - "al+chernin" - ] - }, - "Learn/Server-side/Express_Nodejs": { - "modified": "2020-07-16T22:37:55.363Z", - "contributors": [ - "Aparin", - "reksar", - "Paul_Yuhnovich", - "daviys", - "Sumere4ny" - ] - }, - "Learn/Server-side/Express_Nodejs/Displaying_data": { - "modified": "2020-07-16T22:38:31.314Z", - "contributors": [ - "mikemoll", - "alxatr", - "MariyaSka" - ] - }, - "Learn/Server-side/Express_Nodejs/Displaying_data/Author_list_page": { - "modified": "2020-07-16T22:38:38.119Z", - "contributors": [ - "alxatr" - ] - }, - "Learn/Server-side/Express_Nodejs/Displaying_data/BookInstance_list_page": { - "modified": "2020-07-16T22:38:36.909Z", - "contributors": [ - "alxatr" - ] - }, - "Learn/Server-side/Express_Nodejs/Displaying_data/Book_list_page": { - "modified": "2020-07-16T22:38:36.242Z", - "contributors": [ - "alxatr", - "MariyaSka" - ] - }, - "Learn/Server-side/Express_Nodejs/Displaying_data/Date_formatting_using_moment": { - "modified": "2020-07-16T22:38:37.510Z", - "contributors": [ - "alxatr", - "MariyaSka" - ] - }, - "Learn/Server-side/Express_Nodejs/Displaying_data/Genre_detail_page": { - "modified": "2020-07-16T22:38:38.667Z", - "contributors": [ - "alxatr" - ] - }, - "Learn/Server-side/Express_Nodejs/Displaying_data/Home_page": { - "modified": "2020-07-16T22:38:35.549Z", - "contributors": [ - "hahlek", - "blok1118", - "alxatr" - ] - }, - "Learn/Server-side/Express_Nodejs/Displaying_data/LocalLibrary_base_template": { - "modified": "2020-12-13T05:36:31.182Z", - "contributors": [ - "kozakartem", - "hahlek", - "alxatr", - "MariyaSka" - ] - }, - "Learn/Server-side/Express_Nodejs/Displaying_data/Template_primer": { - "modified": "2020-07-16T22:38:34.518Z", - "contributors": [ - "alxatr" - ] - }, - "Learn/Server-side/Express_Nodejs/Displaying_data/flow_control_using_async": { - "modified": "2020-07-16T22:38:33.391Z", - "contributors": [ - "mikemoll", - "alxatr" - ] - }, - "Learn/Server-side/Express_Nodejs/Introduction": { - "modified": "2020-10-28T17:14:05.095Z", + "Learn/Server-side/Express_Nodejs/Introduction": { + "modified": "2020-10-28T17:14:05.095Z", "contributors": [ "Craiqser", "OlegKolesnikoff", @@ -2721,13 +1374,6 @@ "daviys" ] }, - "Learn/Server-side/Express_Nodejs/Учебник_сайт_local_library": { - "modified": "2020-07-16T22:38:16.847Z", - "contributors": [ - "maxno62", - "daviys" - ] - }, "Learn/Server-side/First_steps": { "modified": "2020-07-16T22:36:10.688Z", "contributors": [ @@ -2791,15 +1437,6 @@ "reksar" ] }, - "Learn/Server-side/First_steps/Веб_Безопасность": { - "modified": "2020-12-05T11:58:05.010Z", - "contributors": [ - "valandis", - "ruslanjumagaliev", - "maxlu86", - "tymino" - ] - }, "Learn/Server-side/Node_server_without_framework": { "modified": "2020-07-16T22:36:06.418Z", "contributors": [ @@ -2842,169 +1479,23 @@ "slayermass" ] }, - "Learn/Tools_and_testing/ГитХаб": { - "modified": "2020-09-30T19:47:51.138Z", - "contributors": [ - "TXCloud", - "PPGAkril", - "garanzha.s.a" - ] - }, - "Learn/Tools_and_testing/Фронтенд_JavaScript_фреймворки": { - "modified": "2020-07-16T22:39:33.460Z", + "MDN": { + "modified": "2020-02-19T18:23:03.586Z", "contributors": [ - "Anonymous" + "jswisher", + "SphinxKnight", + "wbamberg", + "Jeremie", + "m.onyshchuk", + "BychekRU", + "Mingun", + "teoli", + "uleming", + "Sheppy" ] }, - "Learn/Tools_and_testing/Фронтенд_JavaScript_фреймворки/React_getting_started": { - "modified": "2020-07-16T22:39:39.236Z", - "contributors": [ - "ckomop0x" - ] - }, - "Learn/Understanding_URLs": { - "modified": "2020-07-16T22:35:30.373Z", - "contributors": [ - "Excent163", - "gadjetron", - "vladislavukhov", - "lerniri" - ] - }, - "Learn/Understanding_domain_names": { - "modified": "2020-07-16T22:35:44.834Z", - "contributors": [ - "StasBalia", - "sergeyshulzhenko", - "CLoud-Maker", - "thecodecreator", - "Glebowsky", - "elcamlost", - "makoviychuk", - "vladislavukhov" - ] - }, - "Learn/Understanding_links_on_the_web": { - "modified": "2020-11-25T08:11:30.000Z", - "contributors": [ - "NikeSmitt", - "Aalexashka", - "vladislavukhov", - "lerniri" - ] - }, - "Learn/Доступность": { - "modified": "2020-07-16T22:40:00.507Z", - "contributors": [ - "baradusov", - "pepelsbey", - "niktariy", - "IgorPuchkov2003", - "buhman1974", - "Pristavka", - "fasnet", - "iksah", - "Paul_Yuhnovich" - ] - }, - "Learn/Доступность/Accessibility_troubleshooting": { - "modified": "2020-07-16T22:40:36.878Z", - "contributors": [ - "boxa6" - ] - }, - "Learn/Доступность/CSS_and_JavaScript": { - "modified": "2020-07-16T22:40:19.160Z", - "contributors": [ - "Madihander", - "boxa6" - ] - }, - "Learn/Доступность/HTML": { - "modified": "2020-07-16T22:40:14.761Z", - "contributors": [ - "TurtleOld", - "baradusov", - "niktariy", - "boxa6" - ] - }, - "Learn/Доступность/Mobile": { - "modified": "2020-07-16T22:40:32.502Z", - "contributors": [ - "boxa6" - ] - }, - "Learn/Доступность/Multimedia": { - "modified": "2020-07-16T22:40:27.927Z", - "contributors": [ - "boxa6" - ] - }, - "Learn/Доступность/WAI-ARIA_basics": { - "modified": "2020-07-16T22:40:23.911Z", - "contributors": [ - "streloc84", - "boxa6" - ] - }, - "Learn/Доступность/What_is_accessibility": { - "modified": "2020-07-16T22:40:06.747Z", - "contributors": [ - "niktariy", - "Frisle", - "Pristavka" - ] - }, - "Learn/Как_сделать_вклад": { - "modified": "2020-07-16T22:33:46.276Z", - "contributors": [ - "SphinxKnight", - "KTatyana", - "BychekRU", - "MuradAz" - ] - }, - "Learn/Фронтенд_разработчик": { - "modified": "2020-10-26T19:26:16.101Z", - "contributors": [ - "Villian79", - "bogpok", - "Menma" - ] - }, - "Learn/Что_такое_веб_сервер": { - "modified": "2020-07-16T22:35:32.096Z", - "contributors": [ - "joshua1955", - "Dozorengel", - "beloglazof", - "Geloosa", - "erelena", - "Sumere4ny", - "talgautb", - "Xryak", - "uralbash", - "elcamlost" - ] - }, - "MDN": { - "modified": "2020-02-19T18:23:03.586Z", - "contributors": [ - "jswisher", - "SphinxKnight", - "wbamberg", - "Jeremie", - "m.onyshchuk", - "BychekRU", - "Mingun", - "teoli", - "uleming", - "Sheppy" - ] - }, - "MDN/About": { - "modified": "2020-09-09T11:16:44.121Z", + "MDN/About": { + "modified": "2020-09-09T11:16:44.121Z", "contributors": [ "andrygreen777", "S-inTheory", @@ -3040,24 +1531,6 @@ "Mars" ] }, - "MDN/Contribute/Creating_and_editing_pages": { - "modified": "2020-04-10T13:36:06.534Z", - "contributors": [ - "karifan8767", - "wbamberg", - "djigach", - "KaroHovhannisyan", - "Ferguse", - "vaser321", - "TemmyR", - "Servik17", - "vislogurov", - "Chronosms", - "BychekRU", - "SashaSh", - "Spiker" - ] - }, "MDN/Contribute/Feedback": { "modified": "2020-09-30T17:52:35.205Z", "contributors": [ @@ -3115,50 +1588,6 @@ "irodger" ] }, - "MDN/Contribute/Howto/Create_an_MDN_account": { - "modified": "2020-08-25T20:34:15.669Z", - "contributors": [ - "duduindo", - "sayfullayevabdixalil", - "stefantsova", - "svyatoslavlp", - "Fredoss", - "bayashka123", - "seliverstova", - "wbamberg", - "erfari", - "takto", - "yambergaa", - "CaptainMorgan", - "Dimetriu", - "Katya_Kosuga", - "Aleksandr2101" - ] - }, - "MDN/Contribute/Howto/Do_a_technical_review": { - "modified": "2020-01-04T22:10:59.231Z", - "contributors": [ - "Ivan961", - "shmel3", - "wbamberg", - "StyleToken", - "Devengineer", - "Aleksandr2101" - ] - }, - "MDN/Contribute/Howto/Do_an_editorial_review": { - "modified": "2019-10-02T16:12:23.523Z", - "contributors": [ - "wbamberg", - "ivanson", - "Jessai", - "ilyar", - "SnejUgal", - "AlexeyOm", - "L18-666B", - "Devengineer" - ] - }, "MDN/Contribute/Howto/Report_a_problem": { "modified": "2020-10-30T08:02:44.010Z", "contributors": [ @@ -3178,311 +1607,49 @@ "MuradAz" ] }, - "MDN/Contribute/Howto/Добавить_или_обновить_данные_о_браузерной_совместимости": { - "modified": "2019-07-13T14:51:28.876Z", - "contributors": [ - "fuggy" - ] - }, - "MDN/Contribute/Howto/Как_оптимизировать_страницы": { - "modified": "2019-03-23T22:33:34.588Z", + "MDN/Guidelines": { + "modified": "2020-11-02T10:17:56.940Z", "contributors": [ - "wbamberg", - "che7ovek", - "Glebowsky" + "ksam" ] }, - "MDN/Contribute/Howto/Метки_JavaScript_страниц": { - "modified": "2019-01-17T02:41:09.446Z", + "MDN/Structures": { + "modified": "2020-09-30T12:57:22.613Z", "contributors": [ + "chrisdavidmills", "wbamberg", - "dyaroman" + "warsan", + "BychekRU", + "jswisher" ] }, - "MDN/Contribute/Howto/Создай_интерактивное_упражнение_для_помощи_в_изучении_веба": { - "modified": "2019-03-18T20:31:43.828Z", + "MDN/Structures/Live_samples": { + "modified": "2020-09-30T12:57:23.093Z", "contributors": [ - "MuradAz" + "chrisdavidmills" ] }, - "MDN/Contribute/Процессы": { - "modified": "2019-01-17T00:00:52.853Z", + "MDN/Tools": { + "modified": "2020-09-30T16:54:08.506Z", "contributors": [ + "chrisdavidmills", "wbamberg", + "pk.prog", "warsan" ] }, - "MDN/Editor": { - "modified": "2020-09-30T15:43:33.251Z", + "Mozilla": { + "modified": "2019-03-23T23:36:49.497Z", "contributors": [ - "chrisdavidmills", - "andresvara88", - "Vyprichenko", - "Ivan961", - "wbamberg", - "Luboshenko", - "T1mL3arn", - "warsan", - "anastasiya-podolyak", - "BychekRU", - "sputnik1986", - "Grigorjjjmolokov81", - "KrishnaKevalam", - "Slang74" + "Shychara", + "uleming", + "Vladimir_Perkun", + "ethertank", + "ziyunfei" ] }, - "MDN/Editor/Basics": { - "modified": "2020-09-30T15:43:33.440Z", - "contributors": [ - "chrisdavidmills", - "aleksandrpnshkn", - "wbamberg", - "ValeriiBoiko", - "djigach", - "warsan", - "JavaS" - ] - }, - "MDN/Editor/Basics/Page_controls": { - "modified": "2020-09-30T15:43:33.388Z", - "contributors": [ - "chrisdavidmills", - "aleksandrpnshkn" - ] - }, - "MDN/Editor/Basics/Toolbar": { - "modified": "2020-09-30T15:43:33.855Z", - "contributors": [ - "chrisdavidmills", - "aleksandrpnshkn" - ] - }, - "MDN/Editor/Source_mode": { - "modified": "2020-09-30T15:43:35.463Z", - "contributors": [ - "chrisdavidmills", - "Ivan961" - ] - }, - "MDN/Editor/Tables": { - "modified": "2020-09-30T15:43:35.242Z", - "contributors": [ - "chrisdavidmills", - "Ivan961" - ] - }, - "MDN/Editor/Горячие_клавиши": { - "modified": "2020-09-30T15:43:34.335Z", - "contributors": [ - "chrisdavidmills", - "Ivan961" - ] - }, - "MDN/Editor/Картинки": { - "modified": "2020-09-30T15:43:34.113Z", - "contributors": [ - "chrisdavidmills", - "Avdros", - "wbamberg", - "pk.prog" - ] - }, - "MDN/Editor/Перенаправление": { - "modified": "2020-09-30T15:43:34.816Z", - "contributors": [ - "chrisdavidmills", - "Ivan961" - ] - }, - "MDN/Editor/Синтаксические_выделения": { - "modified": "2020-09-30T15:43:35.025Z", - "contributors": [ - "chrisdavidmills", - "Ivan961" - ] - }, - "MDN/Editor/Ссылки": { - "modified": "2020-09-30T15:43:34.675Z", - "contributors": [ - "chrisdavidmills", - "Ivan961" - ] - }, - "MDN/Guidelines": { - "modified": "2020-11-02T10:17:56.940Z", - "contributors": [ - "ksam" - ] - }, - "MDN/Kuma": { - "modified": "2019-09-09T15:51:19.091Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "BychekRU", - "FRiMN" - ] - }, - "MDN/Kuma/Troubleshooting_KumaScript_errors": { - "modified": "2019-07-08T19:30:04.842Z", - "contributors": [ - "fuggy", - "wbamberg", - "MariyaSka", - "cpigat" - ] - }, - "MDN/Structures": { - "modified": "2020-09-30T12:57:22.613Z", - "contributors": [ - "chrisdavidmills", - "wbamberg", - "warsan", - "BychekRU", - "jswisher" - ] - }, - "MDN/Structures/Live_samples": { - "modified": "2020-09-30T12:57:23.093Z", - "contributors": [ - "chrisdavidmills" - ] - }, - "MDN/Structures/Live_samples/Simple_live_sample_demo": { - "modified": "2020-09-30T12:57:23.196Z", - "contributors": [ - "chrisdavidmills", - "fuggy" - ] - }, - "MDN/Tools": { - "modified": "2020-09-30T16:54:08.506Z", - "contributors": [ - "chrisdavidmills", - "wbamberg", - "pk.prog", - "warsan" - ] - }, - "MDN/Tools/Page_watching": { - "modified": "2020-09-30T16:54:08.639Z", - "contributors": [ - "chrisdavidmills", - "wbamberg", - "warsan", - "Jasum", - "Liubava77", - "lavr1986uxa" - ] - }, - "MDN/Tools/URL-suffix": { - "modified": "2020-11-05T06:23:08.678Z", - "contributors": [ - "ksam" - ] - }, - "MDN/User_guide": { - "modified": "2019-01-16T19:44:47.259Z", - "contributors": [ - "wbamberg", - "Mingun" - ] - }, - "MDN/User_guide/Advanced_search": { - "modified": "2019-03-23T23:07:10.929Z", - "contributors": [ - "wbamberg", - "Mingun" - ] - }, - "MDN/User_guide/Deleting_pages": { - "modified": "2019-01-16T19:44:31.713Z", - "contributors": [ - "wbamberg", - "Mingun" - ] - }, - "MDN/User_guide/Feeds": { - "modified": "2019-03-23T23:07:09.701Z", - "contributors": [ - "wbamberg", - "Mingun" - ] - }, - "MDN/User_guide/Linking_to_MDN": { - "modified": "2019-03-23T23:07:15.827Z", - "contributors": [ - "wbamberg", - "Mingun" - ] - }, - "MDN/Сообщество": { - "modified": "2019-09-11T08:01:10.710Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "yambergaa", - "BychekRU", - "bachileha", - "Palatovskaya" - ] - }, - "MDN/Сообщество/Conversations": { - "modified": "2020-10-09T08:02:44.061Z", - "contributors": [ - "hustonCun", - "EpicStep", - "SuperSurok", - "boxa6" - ] - }, - "MDN/Сообщество/Whats_happening": { - "modified": "2019-06-26T18:29:06.368Z", - "contributors": [ - "fuggy", - "wbamberg", - "pathliving", - "talgautb" - ] - }, - "MDN/Сообщество/Working_in_community": { - "modified": "2020-02-19T18:49:34.950Z", - "contributors": [ - "jswisher", - "boxa6", - "bsergey", - "KarryPro" - ] - }, - "MDN_at_ten": { - "modified": "2019-03-23T22:49:58.338Z", - "contributors": [ - "dimakozakov", - "acidicMercury8", - "Myshov", - "anmo" - ] - }, - "MDN_at_ten/Contributing_to_MDN": { - "modified": "2020-10-30T09:21:05.942Z", - "contributors": [ - "ksam", - "jswisher", - "Valenchak" - ] - }, - "Mozilla": { - "modified": "2019-03-23T23:36:49.497Z", - "contributors": [ - "Shychara", - "uleming", - "Vladimir_Perkun", - "ethertank", - "ziyunfei" - ] - }, - "Mozilla/Add-ons": { - "modified": "2019-09-11T08:19:34.402Z", + "Mozilla/Add-ons": { + "modified": "2019-09-11T08:19:34.402Z", "contributors": [ "SphinxKnight", "arturparkhisenko", @@ -3818,26 +1985,6 @@ "LumenGNU" ] }, - "Mozilla/Add-ons/WebExtensions/Интернационализация": { - "modified": "2020-06-26T11:58:33.746Z", - "contributors": [ - "pm3512" - ] - }, - "Mozilla/Add-ons/WebExtensions/Перевод": { - "modified": "2019-03-29T04:27:38.888Z", - "contributors": [ - "karr1d" - ] - }, - "Mozilla/Add-ons/WebExtensions/модификация_веб_страницы": { - "modified": "2020-08-27T17:26:46.914Z", - "contributors": [ - "sergserg213", - "Vorteri", - "klavatron" - ] - }, "Mozilla/Developer_guide": { "modified": "2020-03-02T16:15:06.703Z", "contributors": [ @@ -3871,16 +2018,6 @@ "schufner" ] }, - "Mozilla/Developer_guide/Исходный_код": { - "modified": "2019-03-23T23:33:14.609Z", - "contributors": [ - "Dr.Kub", - "chrisdavidmills", - "elityty_777", - "BladeMight", - "andrew.boyarshin" - ] - }, "Mozilla/Firefox": { "modified": "2020-01-18T14:11:55.644Z", "contributors": [ @@ -4086,18 +2223,6 @@ "InoY" ] }, - "Plugins/План": { - "modified": "2019-08-01T03:21:45.901Z", - "contributors": [ - "art-gur" - ] - }, - "Toolkit_API": { - "modified": "2019-01-16T14:44:25.079Z", - "contributors": [ - "bill.gates" - ] - }, "Tools": { "modified": "2020-12-14T08:21:24.659Z", "contributors": [ @@ -4139,21 +2264,8 @@ "99peso" ] }, - "Tools/Add-ons": { - "modified": "2020-07-16T22:36:23.822Z", - "contributors": [ - "wbamberg" - ] - }, - "Tools/Add-ons/DOM_Inspector": { - "modified": "2020-07-16T22:36:24.834Z", - "contributors": [ - "wbamberg", - "kvantor" - ] - }, - "Tools/Application": { - "modified": "2020-10-26T07:59:58.970Z", + "Tools/Application": { + "modified": "2020-10-26T07:59:58.970Z", "contributors": [ "ksam", "pofiguwse" @@ -4175,20 +2287,6 @@ "sidgan" ] }, - "Tools/Debugger/How_to/Отладка_кода_внутри_eval": { - "modified": "2020-07-16T22:35:14.575Z", - "contributors": [ - "wbamberg", - "pashutk" - ] - }, - "Tools/Debugger/How_to/Работа_с_минифицированным_кодом": { - "modified": "2020-07-16T22:35:14.187Z", - "contributors": [ - "wbamberg", - "pashutk" - ] - }, "Tools/Debugger/Keyboard_shortcuts": { "modified": "2020-10-23T06:26:33.563Z", "contributors": [ @@ -4339,21 +2437,6 @@ "Aleksej" ] }, - "Tools/Page_Inspector/How_to/Otkrytie_Inspektora": { - "modified": "2020-07-16T22:34:33.193Z", - "contributors": [ - "wbamberg", - "Aleksej" - ] - }, - "Tools/Page_Inspector/How_to/Vybor_elementa": { - "modified": "2020-07-16T22:34:33.837Z", - "contributors": [ - "wbamberg", - "trevorh", - "Aleksej" - ] - }, "Tools/Page_Inspector/How_to/Work_with_animations": { "modified": "2020-07-16T22:34:37.336Z", "contributors": [ @@ -4363,20 +2446,6 @@ "Vatheslav" ] }, - "Tools/Page_Inspector/How_to/Исследовать_event_listeners": { - "modified": "2020-07-16T22:34:35.938Z", - "contributors": [ - "wbamberg", - "nzmb" - ] - }, - "Tools/Page_Inspector/How_to/Просмотр_шрифтов": { - "modified": "2020-07-16T22:34:39.270Z", - "contributors": [ - "wbamberg", - "Aleksej" - ] - }, "Tools/Page_Inspector/UI_Tour": { "modified": "2020-07-16T22:34:49.708Z", "contributors": [ @@ -4387,29 +2456,6 @@ "Aleksej" ] }, - "Tools/Page_Inspector/Сочетания_клавиш": { - "modified": "2020-07-16T22:34:52.844Z", - "contributors": [ - "wbamberg", - "Aleksej" - ] - }, - "Tools/Profiler": { - "modified": "2020-07-16T22:35:29.176Z", - "contributors": [ - "wbamberg", - "CamelFoe" - ] - }, - "Tools/Release_notes": { - "modified": "2020-07-16T22:35:57.039Z", - "contributors": [ - "wbamberg", - "dimon4ezzz", - "Aleksej", - "uleming" - ] - }, "Tools/Remote_Debugging": { "modified": "2020-07-16T22:35:38.183Z", "contributors": [ @@ -4453,18 +2499,6 @@ "d.danilin" ] }, - "Tools/Responsive_Design_View": { - "modified": "2020-07-16T22:35:22.392Z", - "contributors": [ - "dartraiden", - "wbamberg", - "brattri3", - "Aleksej", - "teoli", - "Tihoem", - "lobanok1973" - ] - }, "Tools/Settings": { "modified": "2020-07-16T22:36:35.662Z", "contributors": [ @@ -4553,13 +2587,6 @@ "Igor_V_Belousov" ] }, - "Tools/Web_Console/Opening_the_Web_Console": { - "modified": "2020-07-16T22:34:17.559Z", - "contributors": [ - "wbamberg", - "vicamoto" - ] - }, "Tools/Web_Console/Split_console": { "modified": "2020-11-05T09:47:01.540Z", "contributors": [ @@ -4585,56 +2612,6 @@ "L18-666B" ] }, - "Tools/Инспектор_доступности": { - "modified": "2020-07-16T22:36:40.152Z", - "contributors": [ - "dartraiden", - "s1lver", - "cogor" - ] - }, - "Tools/Консоль_браузера": { - "modified": "2020-07-16T22:35:42.837Z", - "contributors": [ - "wbamberg", - "Grief", - "vicamoto", - "Aleksej" - ] - }, - "Tools/Линейки": { - "modified": "2020-07-16T22:36:26.593Z", - "contributors": [ - "wbamberg", - "thepocp", - "SynCap" - ] - }, - "Tools/Производительность": { - "modified": "2020-07-16T22:36:13.723Z", - "contributors": [ - "wbamberg", - "s1lver", - "nemcik7", - "matador21385", - "Ellgine" - ] - }, - "Tools/Производительность/Waterfall": { - "modified": "2020-07-16T22:36:18.443Z", - "contributors": [ - "wbamberg", - "karambaJob" - ] - }, - "Using_Firefox_1.5_caching": { - "modified": "2019-03-23T23:34:25.573Z", - "contributors": [ - "wbamberg", - "nakhodkiin", - "torbasow" - ] - }, "Web": { "modified": "2019-12-27T12:18:45.702Z", "contributors": [ @@ -4802,25 +2779,6 @@ "Agreggor" ] }, - "Web/API/AudioContext/createPanner": { - "modified": "2019-03-23T22:07:18.379Z", - "contributors": [ - "customizer" - ] - }, - "Web/API/AudioContext/currentTime": { - "modified": "2019-03-23T23:09:25.759Z", - "contributors": [ - "fscholz", - "Galamoon" - ] - }, - "Web/API/AudioContext/decodeAudioData": { - "modified": "2019-03-23T22:31:37.197Z", - "contributors": [ - "fleknvrsk" - ] - }, "Web/API/AudioNode": { "modified": "2019-03-23T22:22:26.132Z", "contributors": [ @@ -5027,12 +2985,6 @@ "faramozzayw" ] }, - "Web/API/CSS_Object_Model/ориентация_экрана": { - "modified": "2020-09-02T10:45:25.377Z", - "contributors": [ - "bogpok" - ] - }, "Web/API/Cache": { "modified": "2019-04-16T15:21:13.018Z", "contributors": [ @@ -5499,94 +3451,6 @@ "andvseti" ] }, - "Web/API/Canvas_API/Tutorial/Использование_изображений": { - "modified": "2019-03-18T20:59:25.160Z", - "contributors": [ - "Costigans", - "aderin", - "Theana27", - "Feuway", - "4esnog", - "MaxManchak", - "Taova", - "MuradAz" - ] - }, - "Web/API/Canvas_API/Tutorial/Композиции": { - "modified": "2019-03-23T22:07:28.505Z", - "contributors": [ - "shortship", - "Alex1995markson", - "bad4iz" - ] - }, - "Web/API/Canvas_API/Tutorial/Основы_анимации": { - "modified": "2019-03-18T20:39:12.629Z", - "contributors": [ - "korobkov", - "scanick", - "fenfil", - "komuroe", - "Isk1n", - "evgeniy83", - "Vovanostm", - "SphinxKnight", - "fscholz", - "RokkerRuslan" - ] - }, - "Web/API/Canvas_API/Tutorial/Применение_стилей_и_цветов": { - "modified": "2020-06-21T00:28:29.747Z", - "contributors": [ - "hisbvdis", - "coolwebdev", - "RomatoPotato", - "levi2ki", - "warsan", - "artrudov", - "mormiron", - "jynweythek", - "fil7", - "Theana27", - "Sebastianz", - "SphinxKnight", - "fscholz", - "Neir" - ] - }, - "Web/API/Canvas_API/Tutorial/Рисование_текста": { - "modified": "2020-11-03T08:47:25.074Z", - "contributors": [ - "geschaft59rus", - "AVerutin", - "mish7046", - "lavavrik" - ] - }, - "Web/API/Canvas_API/Tutorial/Рисование_фигур": { - "modified": "2020-07-28T09:22:42.924Z", - "contributors": [ - "AVerutin", - "warsan", - "mi5ha6in", - "mkarkachov", - "artrudov", - "mikomister", - "dedotmoroz", - "GaidaiAndrii", - "DuckerMan", - "hraboviyvadim", - "jynweythek", - "dyachenco", - "fil7", - "nakhodkiin", - "gearmobile", - "teoli", - "fscholz", - "Mirsait", - "Neir" - ] - }, "Web/API/CharacterData": { "modified": "2020-10-15T22:08:25.066Z", "contributors": [ @@ -5940,15 +3804,6 @@ "esskia" ] }, - "Web/API/Document/activeElement": { - "modified": "2019-03-23T23:07:52.737Z", - "contributors": [ - "wbamberg", - "fscholz", - "mrDinckleman", - "my8bit" - ] - }, "Web/API/Document/alinkColor": { "modified": "2020-10-15T21:56:03.837Z", "contributors": [ @@ -5978,12 +3833,6 @@ "aethawalka" ] }, - "Web/API/Document/async": { - "modified": "2019-04-24T21:17:23.958Z", - "contributors": [ - "borseno" - ] - }, "Web/API/Document/bgColor": { "modified": "2020-10-15T21:46:27.977Z", "contributors": [ @@ -6226,12 +4075,6 @@ "surrsoft" ] }, - "Web/API/Document/getSelection": { - "modified": "2019-03-23T22:34:05.751Z", - "contributors": [ - "YakovL" - ] - }, "Web/API/Document/hasFocus": { "modified": "2019-03-23T22:22:10.182Z", "contributors": [ @@ -6423,12 +4266,6 @@ "datasheet" ] }, - "Web/API/Element/accessKey": { - "modified": "2019-03-23T22:51:14.902Z", - "contributors": [ - "In4in" - ] - }, "Web/API/Element/animate": { "modified": "2020-10-15T22:22:29.537Z", "contributors": [ @@ -6975,20 +4812,6 @@ "AlexChuev" ] }, - "Web/API/EventTarget/attachEvent": { - "modified": "2020-12-08T04:43:39.858Z", - "contributors": [ - "bershanskiy", - "akrom123", - "paulvoloschuk" - ] - }, - "Web/API/EventTarget/detachEvent": { - "modified": "2019-03-23T22:07:41.302Z", - "contributors": [ - "paulvoloschuk" - ] - }, "Web/API/EventTarget/dispatchEvent": { "modified": "2020-10-15T21:20:41.807Z", "contributors": [ @@ -7206,12 +5029,6 @@ "tocretpa" ] }, - "Web/API/File_and_Directory_Entries_API/Введение": { - "modified": "2019-03-23T22:06:14.603Z", - "contributors": [ - "egorshulga" - ] - }, "Web/API/FontFace": { "modified": "2020-10-15T22:17:28.932Z", "contributors": [ @@ -7417,27 +5234,6 @@ "teoli" ] }, - "Web/API/Geolocation/Using_geolocation": { - "modified": "2020-10-15T21:28:32.152Z", - "contributors": [ - "art-gur", - "talgautb", - "IliaBrz", - "KazeZlat", - "MariaEvstropova", - "Anna_Leonteva", - "kevich", - "Aleksej", - "Almatbek", - "Zaw00" - ] - }, - "Web/API/Geolocation/Using_geolocation/Using_the_Geolocation_API": { - "modified": "2020-02-14T06:11:59.119Z", - "contributors": [ - "art-gur" - ] - }, "Web/API/Geolocation/getCurrentPosition": { "modified": "2020-10-15T22:01:54.014Z", "contributors": [ @@ -7641,12 +5437,6 @@ "yanislavb" ] }, - "Web/API/HTMLAudioElement/Audio()": { - "modified": "2020-10-15T22:31:15.516Z", - "contributors": [ - "justimchief" - ] - }, "Web/API/HTMLBRElement": { "modified": "2019-03-23T22:43:46.238Z", "contributors": [ @@ -7786,19 +5576,6 @@ "amurchick" ] }, - "Web/API/HTMLElement/dataset": { - "modified": "2020-10-15T21:56:06.529Z", - "contributors": [ - "YozhEzhi", - "masterbox06", - "BitChap", - "motan", - "iamvector", - "hunty", - "almostbergman", - "FlowerDeLuce" - ] - }, "Web/API/HTMLElement/hidden": { "modified": "2019-05-14T07:54:36.993Z", "contributors": [ @@ -7806,12 +5583,6 @@ "vlad-meskalin" ] }, - "Web/API/HTMLElement/nonce": { - "modified": "2020-10-15T22:22:30.878Z", - "contributors": [ - "ellizii" - ] - }, "Web/API/HTMLElement/offsetHeight": { "modified": "2020-10-15T21:43:04.993Z", "contributors": [ @@ -7853,23 +5624,6 @@ "vkrbt" ] }, - "Web/API/HTMLElement/style": { - "modified": "2020-10-15T21:35:49.277Z", - "contributors": [ - "Fantomhaiv", - "elidare", - "maxpolski", - "nkoptsov", - "surrsoft" - ] - }, - "Web/API/HTMLElement/tabIndex": { - "modified": "2019-03-18T21:11:41.012Z", - "contributors": [ - "DianaGalter", - "Tanya_Agisheva" - ] - }, "Web/API/HTMLFormElement": { "modified": "2019-03-23T22:59:13.079Z", "contributors": [ @@ -8541,12 +6295,6 @@ "sideshowbarker" ] }, - "Web/API/MediaTrackConstraints/Эхоподавление": { - "modified": "2020-11-01T07:26:52.423Z", - "contributors": [ - "Ibadichan" - ] - }, "Web/API/Media_Session_API": { "modified": "2020-10-15T22:31:42.491Z", "contributors": [ @@ -8760,12 +6508,6 @@ "AlexAlex" ] }, - "Web/API/NavigatorGeolocation": { - "modified": "2019-03-23T22:43:32.725Z", - "contributors": [ - "AlexAlex" - ] - }, "Web/API/NavigatorID": { "modified": "2020-10-15T21:36:43.124Z", "contributors": [ @@ -8883,12 +6625,6 @@ "AlexAlex" ] }, - "Web/API/NetworkInformation/connection": { - "modified": "2019-03-23T22:54:21.417Z", - "contributors": [ - "AlexAlex" - ] - }, "Web/API/Network_Information_API": { "modified": "2020-10-15T22:31:42.260Z", "contributors": [ @@ -8903,13 +6639,6 @@ "fscholz" ] }, - "Web/API/Node.replaceChild": { - "modified": "2019-03-23T23:14:17.260Z", - "contributors": [ - "khalid32", - "Troynov" - ] - }, "Web/API/Node/appendChild": { "modified": "2020-12-09T06:37:40.787Z", "contributors": [ @@ -8930,12 +6659,6 @@ "AlexAlex" ] }, - "Web/API/Node/baseURIObject": { - "modified": "2019-03-23T22:53:30.789Z", - "contributors": [ - "AlexAlex" - ] - }, "Web/API/Node/childNodes": { "modified": "2019-03-23T23:00:08.391Z", "contributors": [ @@ -8988,14 +6711,6 @@ "AlexAlex" ] }, - "Web/API/Node/innerText": { - "modified": "2020-10-15T21:49:13.148Z", - "contributors": [ - "YozhEzhi", - "ivandoroshenko", - "Aleksander3007" - ] - }, "Web/API/Node/insertBefore": { "modified": "2019-03-23T22:58:37.545Z", "contributors": [ @@ -9083,12 +6798,6 @@ "AlexAlex" ] }, - "Web/API/Node/nodePrincipal": { - "modified": "2019-03-23T22:53:31.496Z", - "contributors": [ - "AlexAlex" - ] - }, "Web/API/Node/nodeType": { "modified": "2019-01-16T20:24:49.318Z", "contributors": [ @@ -9190,13 +6899,6 @@ "fscholz" ] }, - "Web/API/NonDocumentTypeChildNode/NonDocumentTypeChildNode.nextElementSibling": { - "modified": "2019-08-16T17:33:57.106Z", - "contributors": [ - "T-p-V", - "GoodLuck" - ] - }, "Web/API/NonDocumentTypeChildNode/previousElementSibling": { "modified": "2019-03-18T21:39:03.666Z", "contributors": [ @@ -9364,16 +7066,6 @@ "vadimilin888" ] }, - "Web/API/Push_API/Using_the_Push_API": { - "modified": "2019-03-23T22:33:26.535Z", - "contributors": [ - "vasyan", - "zvadym", - "curdwithraisins", - "amutylo", - "alfaslash" - ] - }, "Web/API/RTCPeerConnection": { "modified": "2020-10-15T22:33:10.694Z", "contributors": [ @@ -9422,20 +7114,6 @@ "nikolaifedorov" ] }, - "Web/API/RandomSource": { - "modified": "2019-07-04T02:33:27.227Z", - "contributors": [ - "freezer278", - "Jeremie" - ] - }, - "Web/API/RandomSource/getRandomValues": { - "modified": "2020-10-15T21:43:20.603Z", - "contributors": [ - "ekirpichyov", - "pepeevich" - ] - }, "Web/API/Range": { "modified": "2020-11-14T17:52:09.839Z", "contributors": [ @@ -9505,12 +7183,6 @@ "nudaworks" ] }, - "Web/API/SVGAElement/SVGAlement.target": { - "modified": "2019-03-18T21:45:46.517Z", - "contributors": [ - "Liubava77" - ] - }, "Web/API/SVGAElement/target": { "modified": "2020-10-15T22:05:23.688Z", "contributors": [ @@ -9727,12 +7399,6 @@ "IgorBaranov" ] }, - "Web/API/Slotable": { - "modified": "2020-10-15T22:17:53.998Z", - "contributors": [ - "opereverzeva" - ] - }, "Web/API/SpeechGrammar": { "modified": "2020-10-15T22:00:10.043Z", "contributors": [ @@ -9766,12 +7432,6 @@ "ThijsK" ] }, - "Web/API/Storage/LocalStorage": { - "modified": "2019-03-23T22:05:00.067Z", - "contributors": [ - "ZVanoZ" - ] - }, "Web/API/Storage/clear": { "modified": "2019-03-23T22:42:45.479Z", "contributors": [ @@ -10254,14 +7914,6 @@ "Kran440" ] }, - "Web/API/WebGL_API/Tutorial/Создание_3D_объектов_с_помощью_WebGL": { - "modified": "2019-03-23T22:29:53.189Z", - "contributors": [ - "BakayAnton", - "e-rikov", - "Vlcmdc" - ] - }, "Web/API/WebGL_API/WebGL_best_practices": { "modified": "2019-03-23T22:20:32.460Z", "contributors": [ @@ -10317,32 +7969,12 @@ "mechtool" ] }, - "Web/API/WebRTC_API/WebRTC_basics": { - "modified": "2020-11-01T04:44:10.388Z", - "contributors": [ - "mechtool", - "kostya-skr", - "coderxone" - ] - }, "Web/API/WebRTC_API/adapter.js": { "modified": "2020-02-18T04:29:30.086Z", "contributors": [ "mechtool" ] }, - "Web/API/WebRTC_API/протоколы": { - "modified": "2019-03-23T22:17:21.029Z", - "contributors": [ - "aleole" - ] - }, - "Web/API/WebRTC_API/связь": { - "modified": "2019-03-23T22:17:18.730Z", - "contributors": [ - "aleole" - ] - }, "Web/API/WebSocket": { "modified": "2020-10-15T21:37:20.947Z", "contributors": [ @@ -10441,12 +8073,6 @@ "thesiv95" ] }, - "Web/API/Web_Crypto_API/Checking_authenticity_with_password": { - "modified": "2019-04-10T04:25:54.752Z", - "contributors": [ - "qkudev" - ] - }, "Web/API/Web_Speech_API": { "modified": "2020-10-29T14:47:13.871Z", "contributors": [ @@ -10959,30 +8585,6 @@ "ifedyshin" ] }, - "Web/API/WindowBase64": { - "modified": "2019-03-23T22:50:51.451Z", - "contributors": [ - "teoli" - ] - }, - "Web/API/WindowBase64/Base64_encoding_and_decoding": { - "modified": "2020-02-04T12:42:12.592Z", - "contributors": [ - "hifriend21", - "kormanowsky", - "k-chernyshov", - "9999472", - "KSH-audibene", - "kerosan" - ] - }, - "Web/API/WindowBase64/btoa": { - "modified": "2019-09-17T16:11:11.862Z", - "contributors": [ - "SerzN1", - "uleming" - ] - }, "Web/API/WindowClient": { "modified": "2020-10-15T22:34:56.308Z", "contributors": [ @@ -11080,25 +8682,6 @@ "AliaksandrZahorski" ] }, - "Web/API/WindowTimers": { - "modified": "2019-03-23T23:01:38.088Z", - "contributors": [ - "fscholz" - ] - }, - "Web/API/WindowTimers/setTimeout": { - "modified": "2020-11-18T12:03:29.649Z", - "contributors": [ - "kosarev_va", - "YozhEzhi", - "AliaksandrZahorski", - "akaguny", - "marat-curious", - "neustroev.artyom", - "fscholz", - "ichent" - ] - }, "Web/API/Worker": { "modified": "2019-03-23T22:47:25.398Z", "contributors": [ @@ -11341,18 +8924,6 @@ "fsanano" ] }, - "Web/API/Видимость_страницы_API": { - "modified": "2020-10-15T22:34:15.870Z", - "contributors": [ - "vstorm" - ] - }, - "Web/API/Нотация": { - "modified": "2020-10-15T22:17:39.773Z", - "contributors": [ - "opereverzeva" - ] - }, "Web/Accessibility": { "modified": "2020-07-28T10:32:10.158Z", "contributors": [ @@ -11464,12 +9035,6 @@ "iamvector" ] }, - "Web/Accessibility/Веб-разработка": { - "modified": "2019-03-23T22:57:21.133Z", - "contributors": [ - "Aleksej" - ] - }, "Web/CSS": { "modified": "2019-10-31T08:17:43.061Z", "contributors": [ @@ -11623,13 +9188,6 @@ "Nuzland" ] }, - "Web/CSS/:any": { - "modified": "2019-03-23T22:39:12.816Z", - "contributors": [ - "BychekRU", - "JhonyLe" - ] - }, "Web/CSS/:any-link": { "modified": "2020-11-13T17:12:16.338Z", "contributors": [ @@ -12062,12 +9620,6 @@ "cvrebert" ] }, - "Web/CSS/@viewport/user-zoom": { - "modified": "2019-03-23T22:21:08.056Z", - "contributors": [ - "Hydrock" - ] - }, "Web/CSS/Adjacent_sibling_combinator": { "modified": "2019-03-23T22:45:33.275Z", "contributors": [ @@ -12105,66 +9657,24 @@ "anna.bunakova" ] }, - "Web/CSS/CSS_Animations/Ispolzovanie_CSS_animatciy": { - "modified": "2019-09-08T05:26:38.746Z", - "contributors": [ - "dmarkin", - "trman", - "KatyaRyazantseva", - "Inqanter", - "pseudoliza", - "ShadF0x", - "verbaux", - "SphinxKnight", - "mrkorsar", - "teoli", - "ukarim" - ] - }, - "Web/CSS/CSS_Animations/Tips": { - "modified": "2020-05-03T11:02:29.768Z", + "Web/CSS/CSS_Animations/Tips": { + "modified": "2020-05-03T11:02:29.768Z", "contributors": [ "anna.bunakova" ] }, - "Web/CSS/CSS_Background_and_Borders": { - "modified": "2019-03-23T22:40:44.971Z", - "contributors": [ - "teoli" - ] - }, "Web/CSS/CSS_Background_and_Borders/Border-image_generator": { "modified": "2019-03-23T22:25:50.600Z", "contributors": [ "BychekRU" ] }, - "Web/CSS/CSS_Background_and_Borders/Border-radius_генератор": { - "modified": "2019-03-23T22:40:49.075Z", - "contributors": [ - "vito_falcone" - ] - }, - "Web/CSS/CSS_Background_and_Borders/Множественные_фоны": { - "modified": "2019-03-23T22:13:04.810Z", - "contributors": [ - "J-N-Z" - ] - }, "Web/CSS/CSS_Basic_User_Interface": { "modified": "2019-03-18T21:18:49.969Z", "contributors": [ "SphinxKnight" ] }, - "Web/CSS/CSS_Basic_User_Interface/Использование_URL_значений_для_свойства_cursor": { - "modified": "2019-03-23T22:05:55.809Z", - "contributors": [ - "SphinxKnight", - "ExE-Boss", - "Cheg" - ] - }, "Web/CSS/CSS_Box_Alignment": { "modified": "2019-03-18T21:33:03.343Z", "contributors": [ @@ -12183,12 +9693,6 @@ "Sebastianz" ] }, - "Web/CSS/CSS_Box_Model/Box-shadow_generator": { - "modified": "2019-03-18T20:43:50.074Z", - "contributors": [ - "BychekRU" - ] - }, "Web/CSS/CSS_Box_Model/Mastering_margin_collapsing": { "modified": "2020-07-01T02:44:27.480Z", "contributors": [ @@ -12205,13 +9709,6 @@ "hinduCoder" ] }, - "Web/CSS/CSS_Colors": { - "modified": "2019-03-23T22:34:30.410Z", - "contributors": [ - "BychekRU", - "Krenair" - ] - }, "Web/CSS/CSS_Colors/Color_picker_tool": { "modified": "2019-03-23T22:34:32.727Z", "contributors": [ @@ -12257,59 +9754,12 @@ "RomanBush" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes": { - "modified": "2019-09-25T09:43:14.453Z", - "contributors": [ - "RomanBush", - "billlater", - "KadirTopal", - "DmitriyPoltavskiy", - "MrDaedra", - "antenko", - "dixiony", - "SKaznadei", - "iamale" - ] - }, - "Web/CSS/CSS_Flexible_Box_Layout/Выравнивание_элементов_в_Flex_контейнере": { - "modified": "2020-05-25T19:08:16.925Z", - "contributors": [ - "synedvorkham", - "Ruslan_Zlygostev", - "AndriySikora", - "idoru", - "lexeek", - "kalitadanila", - "m-o-semenov", - "ViktoriLisenok", - "dubtar" - ] - }, - "Web/CSS/CSS_Flexible_Box_Layout/Контролирование_соотношения_элементов_вдоль_главной_оси": { - "modified": "2020-03-08T07:17:57.807Z", - "contributors": [ - "Radragon", - "billlater" - ] - }, "Web/CSS/CSS_Flow_Layout": { "modified": "2020-03-07T13:30:09.947Z", "contributors": [ "Radragon" ] }, - "Web/CSS/CSS_Flow_Layout/Блочное_и_строчное_размещение_в_нормальном_потоке": { - "modified": "2020-11-03T12:58:17.297Z", - "contributors": [ - "at940266" - ] - }, - "Web/CSS/CSS_Flow_Layout/Введение_в_контексты_форматирования": { - "modified": "2020-03-08T14:31:08.319Z", - "contributors": [ - "Radragon" - ] - }, "Web/CSS/CSS_Fonts": { "modified": "2020-10-10T08:59:00.093Z", "contributors": [ @@ -12361,12 +9811,6 @@ "slychai85" ] }, - "Web/CSS/CSS_Grid_Layout/CSS_Grid,_Logical_Values_and_Writing_Modes": { - "modified": "2019-03-18T21:35:04.965Z", - "contributors": [ - "slychai85" - ] - }, "Web/CSS/CSS_Grid_Layout/Layout_using_Named_Grid_Lines": { "modified": "2020-04-04T03:56:43.842Z", "contributors": [ @@ -12394,23 +9838,6 @@ "hisbvdis" ] }, - "Web/CSS/CSS_Grid_Layout/Грид-области": { - "modified": "2019-03-18T21:10:23.458Z", - "contributors": [ - "maximTorba", - "denisvovchenko", - "slychai85", - "coshturnina" - ] - }, - "Web/CSS/CSS_Grid_Layout/Расположение_элементов_по_грид-линиям_с_помощью_CSS_Grid": { - "modified": "2020-09-29T19:08:10.559Z", - "contributors": [ - "Zulcom", - "denisvovchenko", - "coshturnina" - ] - }, "Web/CSS/CSS_Images": { "modified": "2019-03-23T22:33:49.629Z", "contributors": [ @@ -12501,36 +9928,12 @@ "TViglesGoom" ] }, - "Web/CSS/CSS_User_Interface": { - "modified": "2019-03-23T22:05:55.155Z", - "contributors": [ - "SphinxKnight", - "ExE-Boss", - "mfluehr" - ] - }, "Web/CSS/CSS_Writing_Modes": { "modified": "2020-03-07T12:38:48.764Z", "contributors": [ "Radragon" ] }, - "Web/CSS/CSS_Селекторы": { - "modified": "2019-09-26T17:15:05.505Z", - "contributors": [ - "RomanBush", - "vkorzhova", - "Gergalov", - "bezik", - "irenprkpv" - ] - }, - "Web/CSS/CSS_Селекторы/Using_the_:target_pseudo-class_in_selectors": { - "modified": "2019-03-18T21:30:19.329Z", - "contributors": [ - "Hoopers_Hooch" - ] - }, "Web/CSS/Cascade": { "modified": "2019-12-08T06:05:17.526Z", "contributors": [ @@ -12559,12 +9962,6 @@ "opereverzeva" ] }, - "Web/CSS/Common_CSS_Questions": { - "modified": "2020-07-16T22:25:45.996Z", - "contributors": [ - "quinn" - ] - }, "Web/CSS/Containing_block": { "modified": "2020-01-07T10:40:33.535Z", "contributors": [ @@ -12646,12 +10043,6 @@ "valeryvitkus" ] }, - "Web/CSS/Media_Queries/Тестирование_медиа_запросы": { - "modified": "2020-10-15T22:17:28.449Z", - "contributors": [ - "opereverzeva" - ] - }, "Web/CSS/Paged_Media": { "modified": "2020-10-12T15:00:21.800Z", "contributors": [ @@ -13130,14 +10521,6 @@ "Sergey.Vdovareize" ] }, - "Web/CSS/box_model": { - "modified": "2019-03-23T23:02:32.915Z", - "contributors": [ - "akovbovich", - "Aleksej", - "codedokode" - ] - }, "Web/CSS/calc()": { "modified": "2020-11-04T09:08:45.108Z", "contributors": [ @@ -13303,12 +10686,6 @@ "ekirpichyov" ] }, - "Web/CSS/filter-function/url": { - "modified": "2020-04-29T08:14:17.353Z", - "contributors": [ - "podocenov" - ] - }, "Web/CSS/flex": { "modified": "2019-06-28T12:43:39.434Z", "contributors": [ @@ -13492,13 +10869,6 @@ "Leuchtkafer" ] }, - "Web/CSS/grid-gap": { - "modified": "2020-10-15T22:05:04.554Z", - "contributors": [ - "oxmap", - "slychai85" - ] - }, "Web/CSS/grid-row-start": { "modified": "2020-10-15T22:26:03.940Z", "contributors": [ @@ -14124,13 +11494,6 @@ "delfin211" ] }, - "Web/CSS/url": { - "modified": "2020-10-15T22:16:56.689Z", - "contributors": [ - "opereverzeva", - "AliaksandrZahorski" - ] - }, "Web/CSS/url()": { "modified": "2020-10-15T22:33:29.454Z", "contributors": [ @@ -14242,72 +11605,6 @@ "yaruson" ] }, - "Web/CSS/Действительное_значение": { - "modified": "2019-03-23T22:31:07.849Z", - "contributors": [ - "warsan", - "BychekRU" - ] - }, - "Web/CSS/Замещаемый_элемент": { - "modified": "2019-03-23T22:31:00.260Z", - "contributors": [ - "SelenIT", - "dima74", - "BychekRU" - ] - }, - "Web/CSS/Псевдо-классы": { - "modified": "2019-03-23T22:51:08.664Z", - "contributors": [ - "IgorPuchkov2003", - "dima74", - "BychekRU", - "olko28" - ] - }, - "Web/CSS/Синтаксис": { - "modified": "2019-07-26T04:52:30.660Z", - "contributors": [ - "munaticu", - "teoli", - "Norville" - ] - }, - "Web/CSS/Способ_расположения": { - "modified": "2019-03-23T23:09:42.012Z", - "contributors": [ - "idoru", - "BychekRU", - "ldone" - ] - }, - "Web/CSS/Тихий": { - "modified": "2019-03-23T22:32:40.563Z", - "contributors": [ - "BychekRU", - "Evgeny166" - ] - }, - "Web/CSS/Указанное_значение": { - "modified": "2019-03-23T22:30:59.718Z", - "contributors": [ - "BychekRU" - ] - }, - "Web/CSS/размер": { - "modified": "2020-10-15T21:48:09.200Z", - "contributors": [ - "HImichun", - "sashakrauzer", - "VICIOne", - "favetisov", - "ialexi-bl", - "Fgeniy", - "Zamkevich", - "VladdOs" - ] - }, "Web/Events": { "modified": "2020-11-17T03:43:19.041Z", "contributors": [ @@ -14326,165 +11623,43 @@ "teoli" ] }, - "Web/Events/DOMContentLoaded": { - "modified": "2019-04-30T14:28:01.901Z", + "Web/Guide": { + "modified": "2020-09-02T11:11:23.452Z", "contributors": [ - "wbamberg", - "cashm0ney", - "fscholz", - "vittorio-tortugo", - "e-h-h" + "bogpok", + "Didar83", + "soctim", + "jwhitlock", + "netpatriciapussy", + "Tihoem", + "galinakulinich@mail.ru", + "Sheppy" ] }, - "Web/Events/abort": { - "modified": "2019-04-30T14:17:57.211Z", + "Web/Guide/AJAX": { + "modified": "2020-03-06T17:23:15.361Z", "contributors": [ - "wbamberg", - "Corba", - "fscholz", - "e-omo" + "bulatDev", + "korjjik87", + "chrisdavidmills", + "Sky_Fox", + "Megapotz", + "Kavkazsk", + "Summit677", + "Kwinto", + "Dionys", + "Woodroof", + "Zhuravlik" ] }, - "Web/Events/blur": { - "modified": "2019-03-23T22:19:52.585Z", - "contributors": [ - "fscholz", - "Pirate505", - "Asyst" - ] - }, - "Web/Events/error": { - "modified": "2019-03-18T20:55:03.206Z", - "contributors": [ - "Corba", - "iGureEV" - ] - }, - "Web/Events/focusin": { - "modified": "2019-03-23T22:30:36.967Z", - "contributors": [ - "fscholz", - "f0rmat1k" - ] - }, - "Web/Events/focusout": { - "modified": "2019-03-18T21:19:40.612Z", - "contributors": [ - "merelj" - ] - }, - "Web/Events/load": { - "modified": "2019-03-23T22:22:49.108Z", - "contributors": [ - "fscholz", - "e-h-h" - ] - }, - "Web/Events/loadstart": { - "modified": "2019-03-23T22:29:55.674Z", - "contributors": [ - "fscholz", - "forestbird" - ] - }, - "Web/Events/readystatechange": { - "modified": "2019-03-18T21:42:00.103Z", - "contributors": [ - "SlavaJan" - ] - }, - "Web/Events/transitionend": { - "modified": "2019-03-23T23:13:05.887Z", - "contributors": [ - "fscholz", - "airspin", - "akhabibullina" - ] - }, - "Web/Events/unhandledrejection": { - "modified": "2019-04-30T13:51:15.952Z", - "contributors": [ - "wbamberg", - "colmer" - ] - }, - "Web/Guide": { - "modified": "2020-09-02T11:11:23.452Z", - "contributors": [ - "bogpok", - "Didar83", - "soctim", - "jwhitlock", - "netpatriciapussy", - "Tihoem", - "galinakulinich@mail.ru", - "Sheppy" - ] - }, - "Web/Guide/AJAX": { - "modified": "2020-03-06T17:23:15.361Z", - "contributors": [ - "bulatDev", - "korjjik87", - "chrisdavidmills", - "Sky_Fox", - "Megapotz", - "Kavkazsk", - "Summit677", - "Kwinto", - "Dionys", - "Woodroof", - "Zhuravlik" - ] - }, - "Web/Guide/AJAX/С_чего_начать": { - "modified": "2019-03-24T00:01:49.926Z", - "contributors": [ - "DanilaH", - "chrisdavidmills", - "Megapotz", - "Apparition", - "Square", - "Kwinto" - ] - }, - "Web/Guide/AJAX/С_чего_начать?": { - "modified": "2019-01-16T16:10:29.921Z", - "contributors": [ - "chrisdavidmills", - "Sheppy", - "Nikol" - ] - }, - "Web/Guide/API": { - "modified": "2019-09-11T09:35:03.457Z", + "Web/Guide/API": { + "modified": "2019-09-11T09:35:03.457Z", "contributors": [ "SphinxKnight", "BychekRU", "Sheppy" ] }, - "Web/Guide/API/DOM": { - "modified": "2019-09-02T16:41:36.691Z", - "contributors": [ - "NiroWoolf", - "Jeremie" - ] - }, - "Web/Guide/API/DOM/Storage": { - "modified": "2019-03-23T23:13:28.239Z", - "contributors": [ - "Steln", - "akhabibullina" - ] - }, - "Web/Guide/API/WebRTC": { - "modified": "2019-03-23T22:34:55.398Z", - "contributors": [ - "MoksS", - "franzy1709" - ] - }, "Web/Guide/Audio_and_video_delivery": { "modified": "2019-05-24T08:49:25.038Z", "contributors": [ @@ -14515,16 +11690,6 @@ "bogpok" ] }, - "Web/Guide/CSS": { - "modified": "2019-09-11T09:43:50.277Z", - "contributors": [ - "SphinxKnight", - "Aleksej", - "vtambourine", - "KrishnaKevalam", - "jswisher" - ] - }, "Web/Guide/CSS/Block_formatting_context": { "modified": "2019-10-04T09:05:37.001Z", "contributors": [ @@ -14538,327 +11703,100 @@ "akhabibullina" ] }, - "Web/Guide/CSS/Getting_started": { - "modified": "2019-03-23T23:09:39.395Z", - "contributors": [ - "BychekRU", - "Aleksej", - "frontgirl", - "wjinca" - ] - }, - "Web/Guide/CSS/Getting_started/Cascading_and_inheritance": { - "modified": "2019-03-23T22:51:54.874Z", - "contributors": [ - "Tankerxyz", - "BychekRU", - "F-302", - "sofiaglynyana" - ] - }, - "Web/Guide/CSS/Getting_started/Color": { - "modified": "2019-03-23T22:31:38.617Z", - "contributors": [ - "TuchaNK" - ] - }, - "Web/Guide/CSS/Getting_started/How_CSS_works": { - "modified": "2019-03-18T21:17:13.180Z", + "Web/Guide/Events": { + "modified": "2020-08-20T10:40:53.452Z", "contributors": [ - "BychekRU", - "F-302" + "bogpok", + "Llorephie", + "Tihoem", + "Jeremie" ] }, - "Web/Guide/CSS/Getting_started/Readable_CSS": { - "modified": "2019-03-23T22:49:44.377Z", + "Web/Guide/Events/Event_handlers": { + "modified": "2020-03-26T12:45:30.049Z", "contributors": [ - "Svart", - "F-302", - "Crystal" + "ellizii" ] }, - "Web/Guide/CSS/Getting_started/SVG_и_CSS": { - "modified": "2019-10-07T10:29:32.536Z", + "Web/Guide/Events/Media_events": { + "modified": "2019-04-16T19:26:35.650Z", "contributors": [ - "Matcenko", - "AndrewPinkerton", - "maximmonev", - "DadUndead" + "vamo089", + "TaizoGem", + "undgrnd", + "nechehin" ] }, - "Web/Guide/CSS/Getting_started/Selectors": { - "modified": "2020-02-28T21:44:59.981Z", + "Web/Guide/Events/Overview_of_Events_and_Handlers": { + "modified": "2019-06-24T11:18:00.027Z", "contributors": [ - "nkaskov", - "SergeyNikolaev70", - "1cprog", - "Tankerxyz", - "BigBond", - "mztrp", - "tnt4brain" + "kvandreev", + "MuradAz", + "curdwithraisins" ] }, - "Web/Guide/CSS/Getting_started/Text_styles": { - "modified": "2019-03-23T22:31:35.056Z", + "Web/Guide/HTML/Content_categories": { + "modified": "2019-09-23T08:37:02.214Z", "contributors": [ - "DKas", - "TuchaNK" + "niktariy", + "Sotik", + "KTatyana", + "Isk1n", + "Angelskih", + "Quaiby", + "chernysh2909", + "alexbaumgertner", + "Aleksej", + "Lambrusco.pro" ] }, - "Web/Guide/CSS/Getting_started/What_is_CSS": { - "modified": "2019-10-10T16:46:49.900Z", + "Web/Guide/HTML/Editable_content": { + "modified": "2019-03-18T21:32:40.829Z", "contributors": [ - "gleb-svitelskiy", - "BychekRU", - "Aleksej", - "frontgirl" + "warsan" ] }, - "Web/Guide/CSS/Getting_started/Why_use_CSS": { - "modified": "2019-03-23T22:33:27.543Z", + "Web/Guide/Localizations_and_character_encodings": { + "modified": "2020-12-14T08:44:06.511Z", "contributors": [ - "BychekRU", - "F-302" + "azahw935", + "bogpok" ] }, - "Web/Guide/CSS/Getting_started/Таблицы": { - "modified": "2019-03-23T23:09:44.945Z", + "Web/Guide/Parsing_and_serializing_XML": { + "modified": "2020-10-11T12:29:17.772Z", "contributors": [ - "BychekRU", - "ldone" + "Akhat", + "bogpok" ] }, - "Web/Guide/CSS/Understanding_z_index": { - "modified": "2020-04-16T00:54:23.175Z", + "Web/Guide/Unicode_Bidrectional_Text_Algorithm": { + "modified": "2020-09-02T08:30:27.156Z", "contributors": [ - "pelyp47", - "Derept", - "zdravnick", - "DartWelder", - "elenatafeenko", - "Jeremie" + "bogpok" ] }, - "Web/Guide/CSS/Understanding_z_index/Adding_z-index": { - "modified": "2020-04-16T01:16:28.675Z", + "Web/Guide/User_input_methods": { + "modified": "2020-09-02T11:05:36.300Z", "contributors": [ - "pelyp47" + "bogpok" ] }, - "Web/Guide/CSS/Understanding_z_index/Stacking_without_z-index": { - "modified": "2020-04-16T01:00:44.047Z", + "Web/Guide/WOFF": { + "modified": "2020-10-15T22:33:54.379Z", "contributors": [ - "pelyp47", - "batareechka", - "SphinxKnight" + "bogpok" ] }, - "Web/Guide/CSS/Using_multi-column_layouts": { - "modified": "2019-07-22T11:08:23.191Z", + "Web/Guide/mobile": { + "modified": "2020-02-07T13:05:09.003Z", "contributors": [ - "a-bodrova", - "sandmanisdancing", - "fscholz", - "ldone" + "McBurns", + "VDyrda" ] }, - "Web/Guide/CSS/Visual_formatting_model": { - "modified": "2019-09-20T10:50:10.502Z", - "contributors": [ - "RomanBush", - "SphinxKnight", - "FlightBlaze", - "Chugou9", - "ZapevalovAnton", - "fmva", - "levi2ki", - "kapvik", - "hhharm", - "ViT09" - ] - }, - "Web/Guide/Events": { - "modified": "2020-08-20T10:40:53.452Z", - "contributors": [ - "bogpok", - "Llorephie", - "Tihoem", - "Jeremie" - ] - }, - "Web/Guide/Events/Event_handlers": { - "modified": "2020-03-26T12:45:30.049Z", - "contributors": [ - "ellizii" - ] - }, - "Web/Guide/Events/Media_events": { - "modified": "2019-04-16T19:26:35.650Z", - "contributors": [ - "vamo089", - "TaizoGem", - "undgrnd", - "nechehin" - ] - }, - "Web/Guide/Events/Overview_of_Events_and_Handlers": { - "modified": "2019-06-24T11:18:00.027Z", - "contributors": [ - "kvandreev", - "MuradAz", - "curdwithraisins" - ] - }, - "Web/Guide/Events/Создание_и_вызов_событий": { - "modified": "2020-10-15T21:31:20.093Z", - "contributors": [ - "YozhEzhi", - "leann-fraoigh", - "Solant", - "bagau", - "pk.prog", - "lazyexpert", - "YuryT" - ] - }, - "Web/Guide/HTML/Content_categories": { - "modified": "2019-09-23T08:37:02.214Z", - "contributors": [ - "niktariy", - "Sotik", - "KTatyana", - "Isk1n", - "Angelskih", - "Quaiby", - "chernysh2909", - "alexbaumgertner", - "Aleksej", - "Lambrusco.pro" - ] - }, - "Web/Guide/HTML/Drag_and_drop": { - "modified": "2019-06-20T03:46:49.198Z", - "contributors": [ - "kkxley", - "Akh-rman", - "artalar", - "miramax-88", - "Morjodrom", - "fess16", - "MStark" - ] - }, - "Web/Guide/HTML/Drag_and_drop/Drag_operations": { - "modified": "2020-02-05T06:07:31.464Z", - "contributors": [ - "opereverzeva" - ] - }, - "Web/Guide/HTML/Editable_content": { - "modified": "2019-03-18T21:32:40.829Z", - "contributors": [ - "warsan" - ] - }, - "Web/Guide/HTML/Sections_and_Outlines_of_an_HTML5_document": { - "modified": "2020-10-09T08:16:53.318Z", - "contributors": [ - "matiasrustagte", - "arka_triymfalnaya", - "outdever", - "Wingear", - "evgor80", - "lerniri" - ] - }, - "Web/Guide/HTML/Tips_for_authoring_fast-loading_HTML_pages": { - "modified": "2020-07-16T22:22:33.594Z", - "contributors": [ - "SoMuchEffort", - "optimistic" - ] - }, - "Web/Guide/HTML/Using_data_attributes": { - "modified": "2020-07-16T22:22:37.165Z", - "contributors": [ - "AliaksandrZahorski", - "dima74", - "bad4iz", - "ultrinnan", - "SphinxKnight", - "lerniri", - "ArtiFisher", - "xoyk", - "BaNru" - ] - }, - "Web/Guide/HTML/Формы_в_HTML": { - "modified": "2019-03-23T22:35:16.060Z", - "contributors": [ - "Morjodrom", - "AgRuN1", - "ruslan_g02" - ] - }, - "Web/Guide/Localizations_and_character_encodings": { - "modified": "2020-12-14T08:44:06.511Z", - "contributors": [ - "azahw935", - "bogpok" - ] - }, - "Web/Guide/Parsing_and_serializing_XML": { - "modified": "2020-10-11T12:29:17.772Z", - "contributors": [ - "Akhat", - "bogpok" - ] - }, - "Web/Guide/Unicode_Bidrectional_Text_Algorithm": { - "modified": "2020-09-02T08:30:27.156Z", - "contributors": [ - "bogpok" - ] - }, - "Web/Guide/User_input_methods": { - "modified": "2020-09-02T11:05:36.300Z", - "contributors": [ - "bogpok" - ] - }, - "Web/Guide/WOFF": { - "modified": "2020-10-15T22:33:54.379Z", - "contributors": [ - "bogpok" - ] - }, - "Web/Guide/mobile": { - "modified": "2020-02-07T13:05:09.003Z", - "contributors": [ - "McBurns", - "VDyrda" - ] - }, - "Web/Guide/Графика": { - "modified": "2019-03-23T23:24:59.485Z", - "contributors": [ - "theykillimmortal", - "McBurns", - "DinarGataullin", - "emil4", - "Bonerdelli", - "uleming", - "nedimaon" - ] - }, - "Web/Guide/Производительность": { - "modified": "2020-08-20T11:16:04.965Z", - "contributors": [ - "bogpok" - ] - }, - "Web/HTML": { - "modified": "2020-05-09T08:33:52.357Z", + "Web/HTML": { + "modified": "2020-05-09T08:33:52.357Z", "contributors": [ "SphinxKnight", "arslan6226262", @@ -14936,13 +11874,6 @@ "sve-kai-itmo" ] }, - "Web/HTML/CORS_settings_attributes": { - "modified": "2019-03-23T22:26:17.707Z", - "contributors": [ - "HA3IK", - "metserp" - ] - }, "Web/HTML/Element": { "modified": "2019-03-24T00:04:23.071Z", "contributors": [ @@ -15337,12 +12268,6 @@ "nastarash" ] }, - "Web/HTML/Element/element": { - "modified": "2019-03-23T22:16:19.667Z", - "contributors": [ - "SphinxKnight" - ] - }, "Web/HTML/Element/em": { "modified": "2020-10-15T22:19:54.841Z", "contributors": [ @@ -15785,14 +12710,6 @@ "fill.anton" ] }, - "Web/HTML/Element/video/seeking_event": { - "modified": "2019-03-23T22:00:06.598Z", - "contributors": [ - "estelle", - "fscholz", - "alexs_havelev" - ] - }, "Web/HTML/Element/wbr": { "modified": "2020-10-15T22:16:50.183Z", "contributors": [ @@ -15801,26 +12718,6 @@ "AleksandrK69" ] }, - "Web/HTML/Element/кнопка": { - "modified": "2020-08-27T10:59:01.002Z", - "contributors": [ - "DarkExodusXX", - "Anton1922", - "fanich37", - "VitalyKrenel", - "Quaiby" - ] - }, - "Web/HTML/Element/ссылка": { - "modified": "2020-11-25T22:00:52.653Z", - "contributors": [ - "RoPy73", - "GitForDocs", - "sasha3nique", - "dt_", - "opereverzeva" - ] - }, "Web/HTML/Global_attributes": { "modified": "2020-10-15T21:40:19.311Z", "contributors": [ @@ -15870,13 +12767,6 @@ "at940266" ] }, - "Web/HTML/Global_attributes/dropzone": { - "modified": "2020-10-15T22:18:29.870Z", - "contributors": [ - "chrisdavidmills", - "Akh-rman" - ] - }, "Web/HTML/Global_attributes/id": { "modified": "2020-10-15T21:58:35.927Z", "contributors": [ @@ -15935,16 +12825,6 @@ "ViktorKonsta" ] }, - "Web/HTML/Optimizing_Your_Pages_for_Speculative_Parsing": { - "modified": "2019-03-23T23:28:56.065Z", - "contributors": [ - "s1lver", - "pk.prog", - "SnejUgal", - "teoli", - "Gucci_08_rus" - ] - }, "Web/HTML/Preloading_content": { "modified": "2020-10-15T22:11:40.984Z", "contributors": [ @@ -15965,73 +12845,22 @@ "lerniri" ] }, - "Web/HTML/Использование_кэширования_приложений": { - "modified": "2019-04-09T18:24:32.273Z", + "Web/HTTP": { + "modified": "2019-10-10T16:46:52.972Z", "contributors": [ - "jwhitlock", - "teoli", - "pashak" + "Mikhail_Kozachkov", + "e-evdokimov", + "stonetrooper", + "djigach", + "pk.prog", + "warnabas", + "nilfalse", + "lerniri", + "Sheppy" ] }, - "Web/HTML/Поддерживаемые_медиа_форматы": { - "modified": "2019-03-23T22:40:43.218Z", - "contributors": [ - "SedovDP", - "a-goodwin", - "PPerminov", - "MuradAz" - ] - }, - "Web/HTML/Ссылки": { - "modified": "2019-09-09T07:21:34.310Z", - "contributors": [ - "SphinxKnight", - "JCodeg", - "wbamberg", - "Kiprusoff", - "kuki", - "alexfromvl", - "VsTB", - "astrobeglec", - "BychekRU", - "quinn", - "ldone", - "alexlead" - ] - }, - "Web/HTML/Строчные_Элементы": { - "modified": "2020-03-08T06:35:47.964Z", - "contributors": [ - "Radragon", - "AliaksandrZahorski", - "Inqanter", - "superpuper32", - "Filofei", - "Chronosms" - ] - }, - "Web/HTML/Типы_ссылок": { - "modified": "2019-03-23T22:35:07.110Z", - "contributors": [ - "BychekRU" - ] - }, - "Web/HTTP": { - "modified": "2019-10-10T16:46:52.972Z", - "contributors": [ - "Mikhail_Kozachkov", - "e-evdokimov", - "stonetrooper", - "djigach", - "pk.prog", - "warnabas", - "nilfalse", - "lerniri", - "Sheppy" - ] - }, - "Web/HTTP/Basics_of_HTTP": { - "modified": "2020-07-14T17:05:38.093Z", + "Web/HTTP/Basics_of_HTTP": { + "modified": "2020-07-14T17:05:38.093Z", "contributors": [ "vladimir.i.kuropatka", "enonotugh", @@ -16051,12 +12880,6 @@ "pk.prog" ] }, - "Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web_RU": { - "modified": "2020-01-09T21:04:16.499Z", - "contributors": [ - "rshmelev" - ] - }, "Web/HTTP/Basics_of_HTTP/MIME_types": { "modified": "2019-10-21T06:21:06.123Z", "contributors": [ @@ -16313,12 +13136,6 @@ "ValeriiBoiko" ] }, - "Web/HTTP/Server-Side_Access_Control": { - "modified": "2019-07-16T07:11:05.759Z", - "contributors": [ - "curdwithraisins" - ] - }, "Web/HTTP/Session": { "modified": "2020-02-14T12:03:42.414Z", "contributors": [ @@ -16703,9290 +13520,12473 @@ "AlexeyVasilievE" ] }, - "Web/HTTP/Авторизация": { - "modified": "2020-04-27T12:53:55.193Z", - "contributors": [ - "katina.tanya.net", - "Umbrous", - "mironovdm", - "RumyantsevMichael", - "Santiago26", - "deniskoronets" - ] - }, - "Web/HTTP/Заголовки": { - "modified": "2020-10-01T10:57:48.980Z", + "Web/JavaScript": { + "modified": "2020-10-11T19:17:39.227Z", "contributors": [ - "bakhrom.akbarov", - "severyanov", - "DariiaBormot", - "andrewtk", - "st6gb", - "stonetrooper", - "loman", - "ReinarKein" + "Zulcom", + "dknight", + "ryabv", + "QuasiStellar", + "cypper", + "SphinxKnight", + "bakugod", + "Diana_Makarevich", + "tshemsedinov", + "Geloosa", + "drxwat", + "nllsdfx", + "kdex", + "Sviat", + "pk.prog", + "BychekRU", + "L18-666B", + "Saviloff", + "uleming", + "Feschenko", + "IgorGilyazov", + "anton-petrov", + "teoli", + "iAchilles", + "Ladislas", + "researcher", + "Dionys", + "user01", + "karasiov", + "Niquola", + "Megapotz", + "Knyaz Vladimir" ] }, - "Web/HTTP/Заголовки/Accept": { - "modified": "2020-11-27T13:56:04.958Z", + "Web/JavaScript/A_re-introduction_to_JavaScript": { + "modified": "2020-10-21T01:20:45.167Z", "contributors": [ - "robert491", - "vykulakov", - "Normal", - "AlexeyVasilievE" + "chimit", + "korefusha", + "Kamil-Zakiev", + "EgorChernik", + "aleshkanet", + "CeH9", + "MerkurevSergei", + "shtorin", + "Megabyteceer", + "gudkovdanila", + "pk.prog", + "fscholz", + "forestbird", + "Saviloff", + "Instigator", + "shapoval", + "AlexChuev", + "razarusu", + "kolyuchii", + "PavelGrishaev", + "teoli", + "franza", + "PROgrammaster", + "sergey_tikhonov", + "Dart" ] }, - "Web/HTTP/Заголовки/Accept-Charset": { - "modified": "2020-10-15T22:14:29.517Z", + "Web/JavaScript/Closures": { + "modified": "2020-11-13T09:42:08.066Z", "contributors": [ - "Reddok", - "J4CKVVH173" + "chmsv", + "0NotNull", + "SamTLT", + "Nikitazharkij", + "aprinciple", + "OlegMingaleev", + "demid088", + "wbamberg", + "stranger777", + "borisqua", + "Stejok", + "sersalex", + "meecrobe", + "Megabyteceer", + "TaKo13", + "Saviloff", + "Witadol", + "thetekst", + "fscholz", + "iGanzai", + "khorpyakov", + "ivan.p", + "AlekseyGoryansky", + "AlexKucher", + "mcmimik", + "teoli", + "CJohn" ] }, - "Web/HTTP/Заголовки/Accept-Language": { - "modified": "2020-10-15T22:00:00.029Z", + "Web/JavaScript/Data_structures": { + "modified": "2020-10-08T08:53:54.371Z", "contributors": [ - "taushan.marina", - "Reddok", - "limanweb", - "serj-by" + "nikolasmelui", + "wentout", + "sashakrauzer", + "faramozzayw", + "Eugeno", + "itsEffy", + "meafmira", + "artrudov", + "miiixsc", + "RomanBykov", + "romannovikov", + "pathliving", + "rockad", + "foobar42", + "letry", + "Megabyteceer", + "kmetto", + "TaKo13", + "alfaslash", + "markgraydev", + "Leo240", + "KANBY", + "fscholz", + "jaguardev", + "teoli", + "dunmaksim", + "uleming" ] }, - "Web/HTTP/Заголовки/Accept-Patch": { - "modified": "2020-12-05T05:07:59.020Z", + "Web/JavaScript/Enumerability_and_ownership_of_properties": { + "modified": "2020-03-12T19:43:05.408Z", "contributors": [ - "sheremet" + "Saviloff" ] }, - "Web/HTTP/Заголовки/Accept-Ranges": { - "modified": "2020-12-14T05:59:29.332Z", + "Web/JavaScript/Equality_comparisons_and_sameness": { + "modified": "2020-03-12T19:42:53.063Z", "contributors": [ - "AndrewHaluza", - "stonetrooper" + "HTMan", + "CodeLookBook", + "sgrogov", + "Zarwlar", + "Saviloff", + "Witadol" ] }, - "Web/HTTP/Заголовки/Access-Control-Allow-Headers": { - "modified": "2020-10-15T22:06:02.499Z", + "Web/JavaScript/EventLoop": { + "modified": "2020-03-29T11:58:13.454Z", "contributors": [ - "Skinny-Hunter" + "GalustOsipyan", + "nemrosim", + "cgehuzi", + "AnDeVerin", + "letovlive", + "rgrtuleague", + "IlyaMokin", + "thefasttracker", + "RusPosevkin", + "6thSence", + "andrIvash", + "ivanlemeshev", + "beskrovnykh", + "forestbird", + "Saviloff", + "pashutk", + "fscholz", + "im7mortal" ] }, - "Web/HTTP/Заголовки/Access-Control-Allow-Methods": { - "modified": "2020-10-15T21:55:39.900Z", + "Web/JavaScript/Guide": { + "modified": "2020-10-30T03:49:38.404Z", "contributors": [ - "kosuhin" + "ksam", + "callisto1337", + "VerkholaAlex", + "T1mL3arn", + "pk.prog", + "BychekRU", + "xmalinov", + "Saviloff", + "HaukIce", + "pashutk", + "astra1", + "Yuriy-Ka", + "Aleksej", + "fscholz", + "dtretyakov", + "teoli", + "danielgn96" ] }, - "Web/HTTP/Заголовки/Access-Control-Allow-Origin": { - "modified": "2020-10-15T22:30:57.158Z", + "Web/JavaScript/Guide/Control_flow_and_error_handling": { + "modified": "2020-11-06T04:41:33.787Z", "contributors": [ - "online", - "muxmux.ryzhinskiy" + "ksam", + "Japaka90", + "pk.prog", + "igor4949i", + "fscholz", + "IgorGilyazov", + "teoli", + "uleming" ] }, - "Web/HTTP/Заголовки/Access-Control-Max-Age": { - "modified": "2020-10-15T21:54:51.387Z", + "Web/JavaScript/Guide/Details_of_the_Object_Model": { + "modified": "2020-03-18T16:30:12.782Z", "contributors": [ - "Shamshod", - "slayermass" + "HardKullez", + "qwerty-wasd", + "imalyavskiy", + "Davidnadejdin", + "SedovDP", + "metelskiy", + "wbamberg", + "rinbik", + "SphinxKnight", + "toolX", + "vherever", + "Megabyteceer", + "ndrsrv", + "NobbsNobby", + "Saviloff", + "makdeb", + "fscholz", + "esskia", + "ivan.p" ] }, - "Web/HTTP/Заголовки/Authorization": { - "modified": "2020-11-27T14:09:58.983Z", + "Web/JavaScript/Guide/Expressions_and_Operators": { + "modified": "2020-03-12T19:39:43.277Z", "contributors": [ - "robert491", - "NikitaTkachev", - "3lvcz", - "EgorChernik", - "justredpaul" + "mikhail.makarov", + "olegsorokin", + "Megabyteceer", + "pk.prog", + "Grumvol", + "BychekRU", + "Leo240", + "roma-derski", + "fscholz", + "denise", + "Corba" ] }, - "Web/HTTP/Заголовки/Cache-Control": { - "modified": "2020-10-15T21:59:00.821Z", + "Web/JavaScript/Guide/Functions": { + "modified": "2020-04-18T01:17:09.834Z", "contributors": [ - "eeiaao", - "akimy", - "lykosheff", - "Sergey.Terekhin" + "Nevelskoy", + "shevchenko", + "trman", + "pirimow", + "BulavkinNN", + "kkxley", + "mikhail.makarov", + "Aparin", + "imalyavskiy", + "KoS57", + "prometium", + "jsteacat", + "yankovskiy", + "osmaav", + "postwj", + "d.zheleznov", + "kan.a", + "Sajag", + "sirkon", + "pathliving", + "thepocp", + "ValdemarTerte", + "GoliafRS", + "AlexeySuprun", + "Mainstand", + "Grumvol", + "DeekHalden", + "alitskevich", + "keffidesign", + "JuGeer", + "serhiyv", + "pashutk", + "roma-derski", + "fscholz", + "andrcmdr", + "dixon2002", + "teoli", + "uleming" ] }, - "Web/HTTP/Заголовки/Connection": { - "modified": "2020-11-27T17:37:13.461Z", + "Web/JavaScript/Guide/Grammar_and_types": { + "modified": "2020-03-12T19:37:57.624Z", "contributors": [ - "robert491", - "Lariniya", - "Talkerbox", - "stonetrooper", - "Kirill82" + "kkxley", + "device25", + "pk.prog", + "rus11", + "xkha", + "Grumvol", + "DeekHalden", + "BychekRU", + "JuGeer", + "fscholz", + "IgorGilyazov", + "ph1ex0n", + "Corba", + "teoli", + "uleming" ] }, - "Web/HTTP/Заголовки/Content-Disposition": { - "modified": "2020-10-15T21:58:08.326Z", + "Web/JavaScript/Guide/Indexed_collections": { + "modified": "2020-03-12T19:41:25.167Z", "contributors": [ - "Blinky", - "pk.prog" + "prometium", + "yankovskiy", + "postwj", + "v.bilinskyi", + "pk.prog", + "sergeymakoveev", + "Megabyteceer", + "a302379333", + "Grumvol", + "blitzkrieg393", + "ignusin", + "magetor" ] }, - "Web/HTTP/Заголовки/Content-Encoding": { - "modified": "2020-10-15T22:30:01.262Z", + "Web/JavaScript/Guide/Iterators_and_Generators": { + "modified": "2020-03-12T19:42:16.480Z", "contributors": [ - "isetpro" + "AlexanderShushunov", + "rinbik", + "sivashev", + "deman", + "Megabyteceer", + "pashutk", + "kav137", + "zgordan-vv", + "danratnikov", + "djsuprin", + "uhomira" ] }, - "Web/HTTP/Заголовки/Content-Language": { - "modified": "2020-10-15T22:14:19.206Z", + "Web/JavaScript/Guide/Keyed_collections": { + "modified": "2020-03-12T19:43:04.309Z", "contributors": [ - "Nasridean", - "limanweb" + "iameax", + "callisto1337", + "pathliving", + "Megabyteceer", + "alitskevich" ] }, - "Web/HTTP/Заголовки/Content-Length": { - "modified": "2020-11-27T16:51:36.713Z", + "Web/JavaScript/Guide/Meta_programming": { + "modified": "2020-03-12T19:45:39.027Z", "contributors": [ - "robert491", - "einperegrin", - "FireEagle25" + "E-Fir", + "T1mL3arn", + "TotalAMD", + "Dominionys", + "NickTaporuk", + "Megabyteceer" ] }, - "Web/HTTP/Заголовки/Content-Type": { - "modified": "2020-10-15T21:56:21.381Z", + "Web/JavaScript/Guide/Modules": { + "modified": "2020-11-22T19:25:09.183Z", "contributors": [ - "kryksyh", - "WhiteApfel", - "nemish", - "NAKAMODI" + "rsvato" ] }, - "Web/HTTP/Заголовки/DNT": { - "modified": "2020-10-15T22:15:53.319Z", + "Web/JavaScript/Guide/Numbers_and_dates": { + "modified": "2020-03-12T19:42:19.176Z", "contributors": [ - "Alex90" + "pirimow", + "myszkowski", + "Aparin", + "imalyavskiy", + "lemehovskiy", + "yankovskiy", + "rinbik", + "morpharc", + "Sparks", + "TemmyR", + "Megabyteceer", + "Mavricus", + "Letis-1987", + "OojSmile", + "Grumvol", + "serik1987", + "roma-derski" ] }, - "Web/HTTP/Заголовки/Date": { - "modified": "2020-10-15T21:57:57.330Z", + "Web/JavaScript/Guide/Regular_Expressions": { + "modified": "2020-07-27T10:18:25.178Z", "contributors": [ - "Darlanar", - "serieznyi" + "touze147", + "SphinxKnight", + "DASenkiv", + "qqwweeaassdd", + "rinbik", + "Katarzina", + "laion220995", + "kzotoff", + "WispProxy", + "KysaKey", + "Reiider", + "Grumvol", + "indiefishman", + "romannebesny", + "dstereo", + "rin-nas", + "fscholz", + "keika", + "teoli", + "wilddeer", + "uleming", + "Odysseus" ] }, - "Web/HTTP/Заголовки/ETag": { - "modified": "2020-10-15T22:02:38.948Z", + "Web/JavaScript/Guide/Regular_Expressions/Assertions": { + "modified": "2020-03-12T19:49:10.003Z", "contributors": [ - "dimatretyak", - "vetraz", - "curdwithraisins", - "Creepypoke" + "AliaksandrZahorski" ] }, - "Web/HTTP/Заголовки/Expect": { - "modified": "2019-03-23T22:11:58.063Z", + "Web/JavaScript/Guide/Regular_Expressions/Character_Classes": { + "modified": "2020-06-17T18:30:16.759Z", "contributors": [ - "AlexeyVasilievE" + "dknight" ] }, - "Web/HTTP/Заголовки/Expires": { - "modified": "2020-10-15T21:52:39.059Z", + "Web/JavaScript/Guide/Text_formatting": { + "modified": "2020-03-12T19:42:07.543Z", "contributors": [ - "tjbulick", - "mrmlnc", - "MihLeonid", - "kobylin" + "pirimow", + "Aparin", + "drugoi", + "Grumvol", + "redishko", + "PavelG94", + "Prographer" ] }, - "Web/HTTP/Заголовки/Host": { - "modified": "2020-10-15T22:14:52.160Z", + "Web/JavaScript/Guide/Working_with_Objects": { + "modified": "2020-03-12T19:37:53.984Z", "contributors": [ - "vugluskr", - "vadjradanta" + "mikhail.makarov", + "dyaroman", + "alex_wert_and", + "logty3", + "tonkushin", + "m0nclous", + "secretarius", + "rinbik", + "injashkin", + "alyokhander", + "pathliving", + "Siteograf", + "Matters", + "Megabyteceer", + "atlonis", + "agrygoriev", + "hawkridge", + "NobbsNobby", + "Grumvol", + "TrigDevelopment", + "jigs12", + "vzhikness", + "fscholz", + "walkman2058", + "yekver", + "teoli", + "Mxtnr", + "dimko_desu", + "Vlad.Abdullin", + "uleming" ] }, - "Web/HTTP/Заголовки/If-Match": { - "modified": "2020-10-15T21:54:39.304Z", + "Web/JavaScript/Inheritance_and_the_prototype_chain": { + "modified": "2020-08-29T20:34:02.593Z", "contributors": [ - "AlexeyVasilievE" + "sozdanbogom40", + "shevchenko", + "SadTomCat", + "Nick_Pershin", + "dudinsky", + "Shemil95", + "SedovDP", + "aliaksandr-s", + "ChesterFobitt", + "Saviloff", + "Kapiroska", + "fscholz", + "xxxxx0438", + "SRastrigin", + "Natalya_Surikova", + "Rast1234", + "teoli" ] }, - "Web/HTTP/Заголовки/If-Modified-Since": { - "modified": "2020-10-15T21:54:34.736Z", + "Web/JavaScript/JavaScript_technologies_overview": { + "modified": "2020-03-12T19:37:57.231Z", "contributors": [ + "jynweythek", "chrisdavidmills", - "vykulakov", - "jellymary", - "AlexeyVasilievE" + "miirinjej", + "kulakowka", + "curdwithraisins", + "sersalex", + "fscholz", + "kichik", + "askhat", + "ixidor", + "uleming" ] }, - "Web/HTTP/Заголовки/If-Unmodified-Since": { - "modified": "2020-10-15T21:54:34.091Z", + "Web/JavaScript/Language_Resources": { + "modified": "2020-03-12T19:37:58.256Z", "contributors": [ - "Rin15", - "jellymary", - "AlexeyVasilievE" + "nnragmailcom", + "fscholz", + "teoli", + "uleming" ] }, - "Web/HTTP/Заголовки/Last-Modified": { - "modified": "2020-10-15T22:15:38.253Z", + "Web/JavaScript/Memory_Management": { + "modified": "2020-07-14T20:08:19.176Z", "contributors": [ - "ilyachase" + "irustm", + "ZeroUnderscoreOu", + "nikolaifedorov", + "vaeum", + "sashashakun", + "fscholz", + "vitkarpov", + "teoli", + "Nick_Pershin", + "nurbek.ab" ] }, - "Web/HTTP/Заголовки/Origin": { - "modified": "2020-10-15T22:01:53.616Z", + "Web/JavaScript/Reference": { + "modified": "2020-03-12T19:36:05.593Z", "contributors": [ - "crabovwik" + "Aleksej", + "Mingun", + "teoli", + "Ladislas", + "pashak" ] }, - "Web/HTTP/Заголовки/Pragma": { - "modified": "2020-10-15T22:23:06.217Z", + "Web/JavaScript/Reference/Classes": { + "modified": "2020-11-02T03:27:06.842Z", "contributors": [ - "OlegSo" + "ITheCorgi", + "blackbrain2009", + "denys.marytchak", + "PaulineNemchak", + "SphinxKnight", + "AnarhistMS", + "YozhEzhi", + "sahmildzhakeev", + "jainashur", + "CaptainCrocus", + "domstrueboy", + "Muffassa", + "Sajag", + "Gamesurf", + "Piterden", + "pathliving", + "alienalien13", + "DyckGerman", + "animhotep", + "feonit", + "zasipin", + "InsidiousClu", + "KTatyana", + "ViZhe", + "sergeymakoveev", + "PinkaminaDianePie", + "RoM4iK", + "sasd97", + "seedofjoy", + "torbasow", + "krest88", + "fscholz" ] }, - "Web/HTTP/Заголовки/Range": { - "modified": "2020-10-15T22:23:56.930Z", + "Web/JavaScript/Reference/Classes/constructor": { + "modified": "2020-11-02T06:02:34.419Z", "contributors": [ - "ismorozs" + "ITheCorgi", + "S25AI", + "Bobsans", + "Paul_Yuhnovich", + "galynag", + "dood" ] }, - "Web/HTTP/Заголовки/Referer": { - "modified": "2020-10-15T22:08:22.897Z", + "Web/JavaScript/Reference/Classes/extends": { + "modified": "2020-03-12T19:46:03.525Z", "contributors": [ - "stonetrooper" + "Nexwich", + "Vlad160", + "Piterden", + "meridos", + "Halkyon", + "Kozhemyak", + "slayermass" ] }, - "Web/HTTP/Заголовки/Retry-After": { - "modified": "2020-10-15T22:04:40.732Z", + "Web/JavaScript/Reference/Classes/static": { + "modified": "2020-10-15T21:34:19.682Z", "contributors": [ - "TaizoGem" + "vydayko", + "Bobsans", + "evilive3000", + "andrey-gnl", + "Hydrock", + "Dmitrii_Aleksandrov", + "torbasow", + "terranisu", + "Witadol" ] }, - "Web/HTTP/Заголовки/Set-Cookie": { - "modified": "2020-10-15T22:22:30.848Z", + "Web/JavaScript/Reference/Deprecated_and_obsolete_features": { + "modified": "2020-03-12T19:48:57.173Z", "contributors": [ - "wadzari", - "Artemeey", - "ehpc", - "YogSotot" + "boxa6" ] }, - "Web/HTTP/Заголовки/Strict-Transport-Security": { - "modified": "2020-10-15T22:23:39.989Z", + "Web/JavaScript/Reference/Errors": { + "modified": "2020-03-12T19:44:11.764Z", "contributors": [ - "Bargamut", - "s1lver", - "curdwithraisins" + "superpuper32", + "fscholz" ] }, - "Web/HTTP/Заголовки/Vary": { - "modified": "2020-10-15T22:21:15.515Z", + "Web/JavaScript/Reference/Errors/Already_has_pragma": { + "modified": "2020-03-12T19:48:44.607Z", "contributors": [ - "onmotion" + "MakarovDs777" ] }, - "Web/HTTP/Заголовки/X-Content-Type-Options": { - "modified": "2020-10-15T22:16:15.365Z", + "Web/JavaScript/Reference/Errors/Array_sort_argument": { + "modified": "2020-03-12T19:48:40.421Z", "contributors": [ - "WhiteApfel" + "MakarovDs777" ] }, - "Web/HTTP/Заголовки/X-Forwarded-For": { - "modified": "2019-03-18T20:52:28.146Z", + "Web/JavaScript/Reference/Errors/Bad_octal": { + "modified": "2020-03-12T19:46:46.233Z", "contributors": [ - "krigar1184", - "iliatcymbal" + "Pandemoniumus" ] }, - "Web/HTTP/Заголовки/X-XSS-Protection": { - "modified": "2020-10-15T22:01:31.139Z", + "Web/JavaScript/Reference/Errors/Bad_radix": { + "modified": "2020-03-12T19:47:16.966Z", "contributors": [ - "n00b" + "KTatyana", + "varyag01" ] }, - "Web/HTTP/Куки": { - "modified": "2019-07-16T04:58:27.981Z", + "Web/JavaScript/Reference/Errors/Bad_regexp_flag": { + "modified": "2020-03-12T19:47:09.430Z", "contributors": [ - "mrkutin", - "saitonakamura", - "levi2ki", - "GraceAredel", - "isildurpk", - "abmokin", - "serieznyi", - "mariag" + "hahanova" ] }, - "Web/HTTP/Кэширование": { - "modified": "2020-06-23T16:53:43.781Z", + "Web/JavaScript/Reference/Errors/Bad_return_or_yield": { + "modified": "2020-03-12T19:48:14.916Z", "contributors": [ - "Vyprichenko", - "DeltaSPb", - "oleg3280", - "arturparkhisenko", - "gummeah", - "mariag", - "koks" + "KTatyana" ] }, - "Web/JavaScript": { - "modified": "2020-10-11T19:17:39.227Z", + "Web/JavaScript/Reference/Errors/Called_on_incompatible_type": { + "modified": "2020-03-12T19:48:52.848Z", "contributors": [ - "Zulcom", - "dknight", - "ryabv", - "QuasiStellar", - "cypper", - "SphinxKnight", - "bakugod", - "Diana_Makarevich", - "tshemsedinov", - "Geloosa", - "drxwat", - "nllsdfx", - "kdex", - "Sviat", - "pk.prog", - "BychekRU", - "L18-666B", - "Saviloff", - "uleming", - "Feschenko", - "IgorGilyazov", - "anton-petrov", - "teoli", - "iAchilles", - "Ladislas", - "researcher", - "Dionys", - "user01", - "karasiov", - "Niquola", - "Megapotz", - "Knyaz Vladimir" + "palpich", + "MakarovDs777", + "Toshakins" ] }, - "Web/JavaScript/A_re-introduction_to_JavaScript": { - "modified": "2020-10-21T01:20:45.167Z", + "Web/JavaScript/Reference/Errors/Cant_access_lexical_declaration_before_init": { + "modified": "2020-03-12T19:47:46.173Z", "contributors": [ - "chimit", - "korefusha", - "Kamil-Zakiev", - "EgorChernik", - "aleshkanet", - "CeH9", - "MerkurevSergei", - "shtorin", - "Megabyteceer", - "gudkovdanila", - "pk.prog", - "fscholz", - "forestbird", - "Saviloff", - "Instigator", - "shapoval", - "AlexChuev", - "razarusu", - "kolyuchii", - "PavelGrishaev", - "teoli", - "franza", - "PROgrammaster", - "sergey_tikhonov", - "Dart" + "rsvato" ] }, - "Web/JavaScript/Closures": { - "modified": "2020-11-13T09:42:08.066Z", + "Web/JavaScript/Reference/Errors/Cant_access_property": { + "modified": "2020-03-12T19:48:40.635Z", "contributors": [ - "chmsv", - "0NotNull", - "SamTLT", - "Nikitazharkij", - "aprinciple", - "OlegMingaleev", - "demid088", - "wbamberg", - "stranger777", - "borisqua", - "Stejok", - "sersalex", - "meecrobe", - "Megabyteceer", - "TaKo13", - "Saviloff", - "Witadol", - "thetekst", - "fscholz", - "iGanzai", - "khorpyakov", - "ivan.p", - "AlekseyGoryansky", - "AlexKucher", - "mcmimik", - "teoli", - "CJohn" + "MakarovDs777" ] }, - "Web/JavaScript/Data_structures": { - "modified": "2020-10-08T08:53:54.371Z", + "Web/JavaScript/Reference/Errors/Cant_assign_to_property": { + "modified": "2020-11-09T16:55:40.780Z", "contributors": [ - "nikolasmelui", - "wentout", - "sashakrauzer", - "faramozzayw", - "Eugeno", - "itsEffy", - "meafmira", - "artrudov", - "miiixsc", - "RomanBykov", - "romannovikov", - "pathliving", - "rockad", - "foobar42", - "letry", - "Megabyteceer", - "kmetto", - "TaKo13", - "alfaslash", - "markgraydev", - "Leo240", - "KANBY", - "fscholz", - "jaguardev", - "teoli", - "dunmaksim", - "uleming" + "tukumann" ] }, - "Web/JavaScript/Enumerability_and_ownership_of_properties": { - "modified": "2020-03-12T19:43:05.408Z", + "Web/JavaScript/Reference/Errors/Cant_define_property_object_not_extensible": { + "modified": "2020-03-12T19:48:37.533Z", "contributors": [ - "Saviloff" + "Zulcom", + "MakarovDs777" ] }, - "Web/JavaScript/Equality_comparisons_and_sameness": { - "modified": "2020-03-12T19:42:53.063Z", + "Web/JavaScript/Reference/Errors/Cant_delete": { + "modified": "2020-03-12T19:48:41.016Z", "contributors": [ - "HTMan", - "CodeLookBook", - "sgrogov", - "Zarwlar", - "Saviloff", - "Witadol" + "MakarovDs777" ] }, - "Web/JavaScript/EventLoop": { - "modified": "2020-03-29T11:58:13.454Z", + "Web/JavaScript/Reference/Errors/Cant_redefine_property": { + "modified": "2020-03-12T19:48:43.526Z", "contributors": [ - "GalustOsipyan", - "nemrosim", - "cgehuzi", - "AnDeVerin", - "letovlive", - "rgrtuleague", - "IlyaMokin", - "thefasttracker", - "RusPosevkin", - "6thSence", - "andrIvash", - "ivanlemeshev", - "beskrovnykh", - "forestbird", - "Saviloff", - "pashutk", - "fscholz", - "im7mortal" + "MakarovDs777" ] }, - "Web/JavaScript/Guide": { - "modified": "2020-10-30T03:49:38.404Z", + "Web/JavaScript/Reference/Errors/Cyclic_object_value": { + "modified": "2020-10-19T11:06:58.196Z", "contributors": [ - "ksam", - "callisto1337", - "VerkholaAlex", - "T1mL3arn", - "pk.prog", - "BychekRU", - "xmalinov", - "Saviloff", - "HaukIce", - "pashutk", - "astra1", - "Yuriy-Ka", - "Aleksej", - "fscholz", - "dtretyakov", - "teoli", - "danielgn96" + "sovushka-utrom", + "MakarovDs777" ] }, - "Web/JavaScript/Guide/About": { - "modified": "2019-05-16T15:03:00.750Z", + "Web/JavaScript/Reference/Errors/Dead_object": { + "modified": "2020-03-12T19:48:38.148Z", "contributors": [ - "wbamberg", - "BychekRU", - "fscholz", - "teoli", - "smfd", - "uleming" + "MakarovDs777" ] }, - "Web/JavaScript/Guide/Control_flow_and_error_handling": { - "modified": "2020-11-06T04:41:33.787Z", + "Web/JavaScript/Reference/Errors/Delete_in_strict_mode": { + "modified": "2020-03-12T19:48:34.125Z", "contributors": [ - "ksam", - "Japaka90", - "pk.prog", - "igor4949i", - "fscholz", - "IgorGilyazov", - "teoli", - "uleming" + "Akh-rman", + "MakarovDs777" ] }, - "Web/JavaScript/Guide/Details_of_the_Object_Model": { - "modified": "2020-03-18T16:30:12.782Z", + "Web/JavaScript/Reference/Errors/Deprecated_String_generics": { + "modified": "2020-03-12T19:48:16.347Z", "contributors": [ - "HardKullez", - "qwerty-wasd", - "imalyavskiy", - "Davidnadejdin", - "SedovDP", - "metelskiy", - "wbamberg", - "rinbik", - "SphinxKnight", - "toolX", - "vherever", - "Megabyteceer", - "ndrsrv", - "NobbsNobby", - "Saviloff", - "makdeb", - "fscholz", - "esskia", - "ivan.p" + "KTatyana" ] }, - "Web/JavaScript/Guide/Expressions_and_Operators": { - "modified": "2020-03-12T19:39:43.277Z", + "Web/JavaScript/Reference/Errors/Deprecated_caller_or_arguments_usage": { + "modified": "2020-03-12T19:48:07.207Z", "contributors": [ - "mikhail.makarov", - "olegsorokin", - "Megabyteceer", - "pk.prog", - "Grumvol", + "simonprod", + "MakarovDs777", + "Akh-rman" + ] + }, + "Web/JavaScript/Reference/Errors/Deprecated_expression_closures": { + "modified": "2020-03-12T19:48:53.985Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Deprecated_octal": { + "modified": "2020-03-12T19:48:36.042Z", + "contributors": [ + "MakarovDs777", + "ialexi-bl" + ] + }, + "Web/JavaScript/Reference/Errors/Deprecated_source_map_pragma": { + "modified": "2020-03-12T19:46:14.659Z", + "contributors": [ + "medianex" + ] + }, + "Web/JavaScript/Reference/Errors/Deprecated_toLocaleFormat": { + "modified": "2020-03-12T19:48:53.962Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Equal_as_assign": { + "modified": "2020-03-12T19:48:37.445Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/For-each-in_loops_are_deprecated": { + "modified": "2020-03-12T19:48:56.664Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Getter_only": { + "modified": "2020-03-12T19:48:43.409Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Identifier_after_number": { + "modified": "2020-03-12T19:48:34.042Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Illegal_character": { + "modified": "2020-03-12T19:46:55.549Z", + "contributors": [ + "Agaff.fm", + "milothea" + ] + }, + "Web/JavaScript/Reference/Errors/Invalid_array_length": { + "modified": "2020-03-12T19:46:53.627Z", + "contributors": [ + "xenikopa" + ] + }, + "Web/JavaScript/Reference/Errors/Invalid_assignment_left-hand_side": { + "modified": "2020-03-12T19:46:49.095Z", + "contributors": [ + "KTatyana", + "evmnn" + ] + }, + "Web/JavaScript/Reference/Errors/Invalid_const_assignment": { + "modified": "2020-03-12T19:48:42.020Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Invalid_date": { + "modified": "2020-03-12T19:47:15.198Z", + "contributors": [ + "Logiiiin", + "Cronofaq" + ] + }, + "Web/JavaScript/Reference/Errors/Invalid_for-in_initializer": { + "modified": "2020-03-12T19:48:36.053Z", + "contributors": [ + "Akh-rman", + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Invalid_for-of_initializer": { + "modified": "2020-03-12T19:47:46.050Z", + "contributors": [ + "Akh-rman", + "rsvato" + ] + }, + "Web/JavaScript/Reference/Errors/JSON_bad_parse": { + "modified": "2020-03-12T19:47:51.119Z", + "contributors": [ + "Akh-rman", + "djigach" + ] + }, + "Web/JavaScript/Reference/Errors/Malformed_URI": { + "modified": "2020-03-12T19:47:10.234Z", + "contributors": [ + "Logiiiin", + "hunty" + ] + }, + "Web/JavaScript/Reference/Errors/Malformed_formal_parameter": { + "modified": "2020-03-12T19:47:59.198Z", + "contributors": [ + "KTatyana" + ] + }, + "Web/JavaScript/Reference/Errors/Missing_bracket_after_list": { + "modified": "2020-03-12T19:47:12.419Z", + "contributors": [ + "KTatyana", + "kolyuchii" + ] + }, + "Web/JavaScript/Reference/Errors/Missing_colon_after_property_id": { + "modified": "2020-03-12T19:47:16.697Z", + "contributors": [ + "Logiiiin" + ] + }, + "Web/JavaScript/Reference/Errors/Missing_curly_after_function_body": { + "modified": "2020-03-12T19:48:03.575Z", + "contributors": [ + "KTatyana" + ] + }, + "Web/JavaScript/Reference/Errors/Missing_curly_after_property_list": { + "modified": "2020-03-12T19:47:15.796Z", + "contributors": [ + "KTatyana", + "varyag01" + ] + }, + "Web/JavaScript/Reference/Errors/Missing_formal_parameter": { + "modified": "2020-03-12T19:48:33.984Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Missing_initializer_in_const": { + "modified": "2020-03-12T19:47:18.266Z", + "contributors": [ + "Logiiiin" + ] + }, + "Web/JavaScript/Reference/Errors/Missing_name_after_dot_operator": { + "modified": "2020-03-12T19:48:36.581Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Missing_parenthesis_after_argument_list": { + "modified": "2020-03-12T19:45:27.217Z", + "contributors": [ + "richandhandsomeman" + ] + }, + "Web/JavaScript/Reference/Errors/Missing_parenthesis_after_condition": { + "modified": "2020-03-12T19:47:08.319Z", + "contributors": [ + "thepocp" + ] + }, + "Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement": { + "modified": "2020-03-12T19:46:03.538Z", + "contributors": [ + "KTatyana", + "SedovDP", + "Sparks" + ] + }, + "Web/JavaScript/Reference/Errors/More_arguments_needed": { + "modified": "2020-03-12T19:46:14.923Z", + "contributors": [ + "thepocp" + ] + }, + "Web/JavaScript/Reference/Errors/Negative_repetition_count": { + "modified": "2020-03-12T19:47:21.952Z", + "contributors": [ + "Logiiiin" + ] + }, + "Web/JavaScript/Reference/Errors/No_non-null_object": { + "modified": "2020-03-12T19:48:41.071Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/No_properties": { + "modified": "2020-03-12T19:48:10.284Z", + "contributors": [ + "KTatyana" + ] + }, + "Web/JavaScript/Reference/Errors/No_variable_name": { + "modified": "2020-03-12T19:47:58.181Z", + "contributors": [ + "KTatyana" + ] + }, + "Web/JavaScript/Reference/Errors/Non_configurable_array_element": { + "modified": "2020-03-12T19:48:37.262Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Not_a_codepoint": { + "modified": "2020-03-12T19:47:08.221Z", + "contributors": [ + "KTatyana", + "milothea" + ] + }, + "Web/JavaScript/Reference/Errors/Not_a_constructor": { + "modified": "2020-03-12T19:48:26.755Z", + "contributors": [ + "grebenyukov" + ] + }, + "Web/JavaScript/Reference/Errors/Not_a_function": { + "modified": "2020-03-12T19:44:14.870Z", + "contributors": [ + "merelj", + "elscept", + "winvano", + "vladyslavnes", + "MonX94", + "eedmast", + "s1lver" + ] + }, + "Web/JavaScript/Reference/Errors/Not_defined": { + "modified": "2020-03-12T19:45:01.771Z", + "contributors": [ + "Nik1tasm", + "irodger", + "MrDaedra", + "KurumiToki", + "alexfromvl", + "topcomfort" + ] + }, + "Web/JavaScript/Reference/Errors/Precision_range": { + "modified": "2020-03-12T19:46:12.947Z", + "contributors": [ + "KTatyana", + "rbetristha" + ] + }, + "Web/JavaScript/Reference/Errors/Property_access_denied": { + "modified": "2020-03-12T19:46:14.706Z", + "contributors": [ + "thepocp" + ] + }, + "Web/JavaScript/Reference/Errors/Read-only": { + "modified": "2020-03-12T19:48:38.316Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Redeclared_parameter": { + "modified": "2020-03-12T19:48:00.985Z", + "contributors": [ + "KTatyana" + ] + }, + "Web/JavaScript/Reference/Errors/Reduce_of_empty_array_with_no_initial_value": { + "modified": "2020-03-12T19:48:40.523Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Reserved_identifier": { + "modified": "2020-03-12T19:48:30.540Z", + "contributors": [ + "FromQwghlm" + ] + }, + "Web/JavaScript/Reference/Errors/Resulting_string_too_large": { + "modified": "2020-03-12T19:47:15.830Z", + "contributors": [ + "Logiiiin" + ] + }, + "Web/JavaScript/Reference/Errors/Stmt_after_return": { + "modified": "2020-03-12T19:44:12.151Z", + "contributors": [ + "Logiiiin", + "pk.prog", + "naudachu", + "s1lver" + ] + }, + "Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params": { + "modified": "2020-03-12T19:48:33.429Z", + "contributors": [ + "ialexi-bl", + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Too_much_recursion": { + "modified": "2020-03-12T19:46:15.435Z", + "contributors": [ + "thepocp" + ] + }, + "Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments": { + "modified": "2020-03-12T19:48:42.436Z", + "contributors": [ + "fuggy", + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Undeclared_var": { + "modified": "2020-03-12T19:47:38.776Z", + "contributors": [ + "Akh-rman", + "Matthew11770" + ] + }, + "Web/JavaScript/Reference/Errors/Undefined_prop": { + "modified": "2020-03-12T19:47:58.221Z", + "contributors": [ + "KTatyana" + ] + }, + "Web/JavaScript/Reference/Errors/Unexpected_token": { + "modified": "2020-03-12T19:46:02.532Z", + "contributors": [ + "KTatyana", + "NemchinovSergey", + "Sparks" + ] + }, + "Web/JavaScript/Reference/Errors/Unexpected_type": { + "modified": "2020-03-12T19:45:23.586Z", + "contributors": [ + "DanyaSWorlD" + ] + }, + "Web/JavaScript/Reference/Errors/Unnamed_function_statement": { + "modified": "2020-03-12T19:48:37.361Z", + "contributors": [ + "Akh-rman", + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/Unterminated_string_literal": { + "modified": "2020-03-12T19:48:38.047Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/in_operator_no_object": { + "modified": "2020-03-12T19:48:40.403Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/invalid_right_hand_side_instanceof_operand": { + "modified": "2020-03-12T19:48:41.158Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Errors/is_not_iterable": { + "modified": "2020-03-12T19:48:36.606Z", + "contributors": [ + "MakarovDs777" + ] + }, + "Web/JavaScript/Reference/Functions": { + "modified": "2020-03-12T19:39:49.358Z", + "contributors": [ + "KoS57", + "nikbelikov", + "SmogHard", + "forestbird", + "teoli", + "dtretyakov" + ] + }, + "Web/JavaScript/Reference/Functions/Arrow_functions": { + "modified": "2020-10-15T21:31:20.608Z", + "contributors": [ + "MerkUriy", + "iFeltz", + "kliuchyk", + "kkxley", + "coxdn", + "Sajag", + "animhotep", + "vibecode", + "Neiromaster", + "Siteograf", + "TotalAMD", + "bskydive", + "seriouslyfluffy", + "dst", + "vitya-ne", + "theViktor1990", + "uleming", + "kutase123", + "pashutk", + "dtretyakov" + ] + }, + "Web/JavaScript/Reference/Functions/Default_parameters": { + "modified": "2020-10-15T21:31:19.263Z", + "contributors": [ + "torbasow", + "ic8550", + "ekirpichyov", + "SphinxKnight", + "I-O", + "esusekov", + "dtretyakov" + ] + }, + "Web/JavaScript/Reference/Functions/Rest_parameters": { + "modified": "2020-11-24T01:31:54.419Z", + "contributors": [ + "almaceleste", + "CLoud-Maker", + "ekirpichyov", + "jt3k", + "IlyaMokin", + "forestbird", + "dtretyakov", + "fscholz", + "EgorSinitcin" + ] + }, + "Web/JavaScript/Reference/Functions/arguments": { + "modified": "2020-10-15T21:34:47.356Z", + "contributors": [ + "sashakrauzer", + "Ziserman", + "boxa6", + "dima74", + "KTatyana", + "Olovyanch", + "uleming", "BychekRU", - "Leo240", + "fscholz" + ] + }, + "Web/JavaScript/Reference/Functions/arguments/callee": { + "modified": "2020-03-12T19:44:41.002Z", + "contributors": [ + "madsps", + "lkazberova", + "In4in" + ] + }, + "Web/JavaScript/Reference/Functions/arguments/length": { + "modified": "2020-03-12T19:41:22.682Z", + "contributors": [ + "evgenevna22", + "BychekRU" + ] + }, + "Web/JavaScript/Reference/Functions/get": { + "modified": "2020-10-15T21:43:29.042Z", + "contributors": [ + "ankormoreankor", + "WinterSilence", + "YozhEzhi", + "ipoluhin", + "metelskiy", + "kukuruznik04", + "ArtyomGilevich", + "andrey-gnl", + "pierreneter", + "etokareva" + ] + }, + "Web/JavaScript/Reference/Functions/set": { + "modified": "2020-10-15T21:49:47.173Z", + "contributors": [ + "SerzN1", + "severin-d", + "PaulineNemchak", + "serzero2007", + "d4rkm3z" + ] + }, + "Web/JavaScript/Reference/Global_Objects": { + "modified": "2020-03-12T19:36:07.217Z", + "contributors": [ + "AynurShauerman", + "InoY", + "akrom123", + "Mingun", + "teoli", + "pashak" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array": { + "modified": "2020-10-15T21:21:43.377Z", + "contributors": [ + "wbamberg", + "geek10010", + "rinbik", + "dima74", + "Yumeiro", + "superpuper32", + "kdex", + "terranisu", + "Mingun", + "teoli", + "yakovlevigorek", + "icw82", + "BedyNN", + "dbruant" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/@@iterator": { + "modified": "2019-03-23T23:03:21.064Z", + "contributors": [ + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/@@species": { + "modified": "2020-10-15T22:06:58.667Z", + "contributors": [ + "DwarfMason" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/@@unscopables": { + "modified": "2020-10-15T22:00:26.446Z", + "contributors": [ + "fax1ty" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/Reduce": { + "modified": "2020-10-15T21:28:31.597Z", + "contributors": [ + "sborenko", + "nikolai-shabalin", + "likerRr", + "Ant-VAV", + "Metotron", + "fxrbfg", + "Ohar", + "slavablind91", + "AliaksandrSith", + "Riim", + "Mingun", + "NikitaK", + "Anton_Arestov" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/concat": { + "modified": "2020-10-15T21:29:20.106Z", + "contributors": [ + "rookhive", + "nikolai-shabalin", + "AlekseiTarasov", + "KTatyana", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/copyWithin": { + "modified": "2019-03-23T23:11:15.223Z", + "contributors": [ + "burashka", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/entries": { + "modified": "2019-09-20T08:30:17.656Z", + "contributors": [ + "burashka", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/every": { + "modified": "2020-10-15T21:22:11.253Z", + "contributors": [ + "VovanR", + "YozhEzhi", + "burashka", + "Mingun", + "teoli", + "hel-galdr" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/fill": { + "modified": "2020-10-15T21:29:20.455Z", + "contributors": [ + "iandr", + "nakhodkiin", + "nikolai-shabalin", + "alt-j", + "dima74", + "burashka", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/filter": { + "modified": "2020-10-15T21:29:22.486Z", + "contributors": [ + "almaceleste", + "Darth-pioner", + "nikolai-shabalin", + "Sinfiotli", + "burashka", + "Aleksej", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/find": { + "modified": "2020-10-15T21:29:21.073Z", + "contributors": [ + "tcheburator", + "drunk", + "matveyson", + "JorJeG", + "Metotron", + "sv-kozlov", + "OksanaKaragicheva", + "AlexeyMM", + "burashka", + "torbasow", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/findIndex": { + "modified": "2020-10-15T21:29:19.823Z", + "contributors": [ + "zhvirblis", + "S-le", + "burashka", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/flat": { + "modified": "2020-12-06T17:04:44.757Z", + "contributors": [ + "PaulineNemchak", + "ekirpichyov", + "geekjob", + "Akh-rman", + "Fellzo", + "vjachet" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/flatMap": { + "modified": "2020-10-15T22:10:06.829Z", + "contributors": [ + "dsrtF0x-git", + "InoY", + "taxidermic", + "Akh-rman", + "eof273", + "etroynov", + "dood" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/forEach": { + "modified": "2020-10-15T21:21:41.065Z", + "contributors": [ + "almaceleste", + "nikolai-shabalin", + "JorJeG", + "paulvoloschuk", + "kusonka", + "Mingun", + "Ajooluz", + "teoli", + "dunmaksim", + "IgorKlopov", + "ipetropolsky", + "John Wehin" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/from": { + "modified": "2020-10-15T21:28:50.020Z", + "contributors": [ + "ekirpichyov", + "drwatson1", + "JorJeG", + "kdex", + "Sergey.Stolnikov", + "burashka", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/includes": { + "modified": "2020-10-15T21:30:12.634Z", + "contributors": [ + "Yialo", + "Hronex", + "nikolai-shabalin", + "dima74", + "Setol", + "burashka", + "jwhitlock", + "dema", + "Mingun", + "fscholz" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/indexOf": { + "modified": "2020-10-15T21:29:27.163Z", + "contributors": [ + "zhvirblis", + "vlad-vorontsov", + "burashka", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/isArray": { + "modified": "2020-10-15T21:29:00.463Z", + "contributors": [ + "dudd1ts", + "JorJeG", + "Mingun", + "ivan_k" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/join": { + "modified": "2020-10-15T21:29:17.685Z", + "contributors": [ + "pk.prog", + "AlexeyOm", + "IslamA", + "Radiansz", + "mshykov", + "Mingun", + "teoli", + "Ajooluz" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/keys": { + "modified": "2020-10-15T21:29:27.000Z", + "contributors": [ + "nikolai-shabalin", + "burashka", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf": { + "modified": "2020-10-15T21:29:27.046Z", + "contributors": [ + "nikolai-shabalin", + "burashka", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/length": { + "modified": "2020-10-15T21:29:17.654Z", + "contributors": [ + "ierehon1905", + "smlkA", + "Roman-Kosov", + "JorJeG", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/map": { + "modified": "2020-10-15T21:25:02.588Z", + "contributors": [ + "Dvash", + "nikolai-shabalin", + "JorJeG", + "ZeroUnderscoreOu", + "Jemdo", + "torbasow", + "Mingun", + "teoli", + "ilyamilosevic", + "Vhornets" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/of": { + "modified": "2020-10-15T21:29:22.065Z", + "contributors": [ + "ekirpichyov", + "Natalya_Surikova", + "burashka", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/pop": { + "modified": "2020-10-15T21:29:28.268Z", + "contributors": [ + "art-gur", + "KTatyana", + "torbasow", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/push": { + "modified": "2020-10-15T21:29:29.342Z", + "contributors": [ + "art-gur", "roma-derski", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/reduceRight": { + "modified": "2019-03-23T23:10:37.299Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/reverse": { + "modified": "2020-10-15T21:29:30.196Z", + "contributors": [ + "nikolai-shabalin", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/shift": { + "modified": "2019-03-18T21:11:15.103Z", + "contributors": [ + "UriShlomov", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/slice": { + "modified": "2020-11-30T07:23:00.434Z", + "contributors": [ + "chmsv", + "rulevadim", + "nikolai-shabalin", + "GraceAredel", + "Ollemesh", + "kdex", + "xaosxaos", + "Mol4ok", + "BychekRU", + "kroleg", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/some": { + "modified": "2020-10-15T21:22:10.601Z", + "contributors": [ + "ekirpichyov", + "VovanR", + "zhvirblis", + "Mingun", + "teoli", + "hel-galdr" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/sort": { + "modified": "2020-11-19T16:34:13.947Z", + "contributors": [ + "deepdarkness", + "YozhEzhi", + "dmivtr", + "JorJeG", + "Denis-Yeromenko", + "borm", + "vlad-vorontsov", + "grabus", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/splice": { + "modified": "2020-12-02T07:24:33.321Z", + "contributors": [ + "inva8de", + "Eskinnikita", + "zhvirblis", + "dimaqw", + "JohnnyJustDo", + "mshipov", + "terranisu", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/toLocaleString": { + "modified": "2019-03-23T23:10:25.595Z", + "contributors": [ + "IvanMorkva", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/toSource": { + "modified": "2019-03-23T23:10:31.696Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/toString": { + "modified": "2019-09-15T17:12:05.770Z", + "contributors": [ + "Glazomer", + "Ilya33", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/unshift": { + "modified": "2020-10-15T21:29:32.715Z", + "contributors": [ + "muxmux.ryzhinskiy", + "YozhEzhi", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/values": { + "modified": "2019-03-23T23:07:58.684Z", + "contributors": [ + "nakhodkiin", + "burashka", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/ArrayBuffer": { + "modified": "2019-04-21T10:54:59.612Z", + "contributors": [ + "solncebro", + "Bargamut", + "PaulShestakov", + "pashutk" + ] + }, + "Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView": { + "modified": "2020-10-15T22:21:50.519Z", + "contributors": [ + "shmel3" + ] + }, + "Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice": { + "modified": "2019-03-23T22:15:54.709Z", + "contributors": [ + "lazyexpert" + ] + }, + "Web/JavaScript/Reference/Global_Objects/AsyncFunction": { + "modified": "2019-03-23T22:09:52.218Z", + "contributors": [ + "Saiberbest" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Atomics": { + "modified": "2019-03-23T22:09:35.332Z", + "contributors": [ + "Kazakoff", + "Exseption", + "curdwithraisins" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Atomics/add": { + "modified": "2019-03-23T22:09:42.443Z", + "contributors": [ + "curdwithraisins" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Atomics/sub": { + "modified": "2019-03-23T22:09:32.642Z", + "contributors": [ + "curdwithraisins" + ] + }, + "Web/JavaScript/Reference/Global_Objects/BigInt": { + "modified": "2020-10-15T22:19:09.504Z", + "contributors": [ + "art-gur", + "bm12", + "sh7dm", + "3bl3gamer", + "Anna-Myzukina" + ] + }, + "Web/JavaScript/Reference/Global_Objects/BigInt/asIntN": { + "modified": "2020-10-15T22:20:36.621Z", + "contributors": [ + "faramozzayw" + ] + }, + "Web/JavaScript/Reference/Global_Objects/BigInt/asUintN": { + "modified": "2020-10-15T22:31:22.153Z", + "contributors": [ + "ascker0087" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Boolean": { + "modified": "2019-07-22T13:06:53.919Z", + "contributors": [ + "wbamberg", + "Denis-Yeromenko", + "villager", + "Aleksej", + "AlexChuev", + "Mingun", + "Troynov" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Boolean/toSource": { + "modified": "2019-03-23T23:08:31.932Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Boolean/toString": { + "modified": "2019-03-23T23:08:25.305Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Boolean/valueOf": { + "modified": "2019-03-23T23:08:35.008Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/DataView": { + "modified": "2020-10-15T22:07:01.854Z", + "contributors": [ + "MuradAz" + ] + }, + "Web/JavaScript/Reference/Global_Objects/DataView/setInt16": { + "modified": "2020-10-15T22:26:51.553Z", + "contributors": [ + "A-Zalt" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date": { + "modified": "2020-10-15T21:21:23.873Z", + "contributors": [ + "Lutsko.Aleksandr", + "sashakrauzer", + "denis_dubovitskiy", + "prinze77", + "boxa6", + "wbamberg", + "MerkUriy", + "dvapelnik", + "lanedis", + "Mingun", + "zasipin", + "liloi", + "teoli", + "Funkill", + "bvc3at" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/UTC": { + "modified": "2020-10-15T21:30:36.314Z", + "contributors": [ + "art-gur", + "Kogoruhn", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getDate": { + "modified": "2020-11-23T09:29:17.949Z", + "contributors": [ + "Thr0TT1e", + "YozhEzhi", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getDay": { + "modified": "2020-11-23T09:40:35.418Z", + "contributors": [ + "Thr0TT1e", + "YozhEzhi", + "pushandplay", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getFullYear": { + "modified": "2020-11-23T09:25:53.294Z", + "contributors": [ + "Thr0TT1e", + "YozhEzhi", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getHours": { + "modified": "2020-11-23T09:42:06.437Z", + "contributors": [ + "Thr0TT1e", + "YozhEzhi", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds": { + "modified": "2020-11-23T09:43:47.925Z", + "contributors": [ + "Thr0TT1e", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getMinutes": { + "modified": "2020-11-23T09:46:11.501Z", + "contributors": [ + "Thr0TT1e", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getMonth": { + "modified": "2020-11-23T09:48:49.474Z", + "contributors": [ + "Thr0TT1e", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getSeconds": { + "modified": "2020-11-23T09:50:13.502Z", + "contributors": [ + "Thr0TT1e", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getTime": { + "modified": "2020-11-23T10:07:21.665Z", + "contributors": [ + "Thr0TT1e", + "YozhEzhi", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset": { + "modified": "2019-03-23T23:08:01.324Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getUTCDate": { + "modified": "2019-03-23T23:07:51.614Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getUTCDay": { + "modified": "2019-03-23T23:07:47.611Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear": { + "modified": "2019-03-23T23:07:46.134Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getUTCHours": { + "modified": "2019-03-23T23:07:53.266Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds": { + "modified": "2019-03-23T23:07:39.074Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes": { + "modified": "2019-03-23T23:07:42.061Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth": { + "modified": "2019-03-23T23:07:45.367Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds": { + "modified": "2019-03-23T23:07:43.174Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/getYear": { + "modified": "2020-10-15T21:30:40.324Z", + "contributors": [ + "YozhEzhi", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/now": { + "modified": "2020-10-15T21:30:36.867Z", + "contributors": [ + "art-gur", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/parse": { + "modified": "2019-10-24T09:44:34.488Z", + "contributors": [ + "alx-khramov", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setDate": { + "modified": "2020-10-15T21:30:41.423Z", + "contributors": [ + "YozhEzhi", + "webkumo", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setFullYear": { + "modified": "2019-03-23T23:07:39.254Z", + "contributors": [ + "kirilloid", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setHours": { + "modified": "2019-03-23T23:07:43.801Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds": { + "modified": "2019-03-23T23:07:39.901Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setMinutes": { + "modified": "2019-03-23T23:07:42.239Z", + "contributors": [ + "Grundy", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setMonth": { + "modified": "2019-08-28T08:27:33.855Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setSeconds": { + "modified": "2019-03-23T23:07:43.395Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setTime": { + "modified": "2019-03-23T23:07:49.178Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setUTCDate": { + "modified": "2019-03-23T23:07:49.535Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear": { + "modified": "2019-03-23T23:07:46.690Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setUTCHours": { + "modified": "2019-03-23T23:07:41.747Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds": { + "modified": "2019-03-23T23:07:43.019Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes": { + "modified": "2019-03-23T23:07:52.228Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth": { + "modified": "2019-03-23T23:07:49.014Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds": { + "modified": "2019-03-23T23:07:49.949Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/setYear": { + "modified": "2020-10-15T21:30:50.607Z", + "contributors": [ + "YozhEzhi", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/toDateString": { + "modified": "2019-03-23T23:07:29.510Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/toGMTString": { + "modified": "2019-03-23T23:07:35.386Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/toISOString": { + "modified": "2019-03-23T23:07:33.750Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/toJSON": { + "modified": "2019-03-23T23:07:37.415Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString": { + "modified": "2019-03-18T21:14:44.198Z", + "contributors": [ + "Mingun", + "teoli", + "kup" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/toLocaleString": { + "modified": "2019-04-25T06:23:31.086Z", + "contributors": [ + "Ferguse", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString": { + "modified": "2019-03-23T23:07:26.983Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/toSource": { + "modified": "2019-03-23T23:07:30.899Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/toString": { + "modified": "2019-03-23T23:07:27.147Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/toTimeString": { + "modified": "2020-10-15T21:30:50.319Z", + "contributors": [ + "art-gur", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/toUTCString": { + "modified": "2019-03-23T23:07:27.719Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/valueOf": { + "modified": "2019-03-23T23:07:24.461Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Error": { + "modified": "2020-10-15T21:30:29.342Z", + "contributors": [ + "Bakosa666", + "boxa6", + "mshutov", + "ZeroUnderscoreOu", + "Drugak", + "KTatyana", + "pk.prog", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Error/Stack": { + "modified": "2019-03-23T23:08:35.216Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Error/columnNumber": { + "modified": "2019-03-23T23:08:51.041Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Error/fileName": { + "modified": "2019-03-23T23:08:50.913Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Error/lineNumber": { + "modified": "2019-03-18T21:16:24.987Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Error/message": { + "modified": "2019-03-23T23:08:49.501Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Error/name": { + "modified": "2019-03-23T23:08:51.293Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Error/toSource": { + "modified": "2019-03-23T23:08:35.807Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Error/toString": { + "modified": "2019-03-23T23:08:36.104Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/EvalError": { + "modified": "2019-03-23T23:08:30.186Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Float32Array": { + "modified": "2020-10-15T21:41:15.793Z", + "contributors": [ + "av-dev", + "pk.prog", + "usernameak", + "savelichalex" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Float64Array": { + "modified": "2020-10-15T21:59:37.641Z", + "contributors": [ + "pk.prog" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function": { + "modified": "2020-10-15T21:14:32.042Z", + "contributors": [ + "benzin_kanister", + "Yialo", + "CROGOT", + "boxa6", + "Mingun", + "teoli", + "Skorney" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/apply": { + "modified": "2020-03-13T10:22:12.516Z", + "contributors": [ + "rookhive", + "EVRUSIN", + "NovikovViktor", + "Natalya_Surikova", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/arguments": { + "modified": "2019-03-23T23:08:58.338Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/bind": { + "modified": "2019-03-23T23:11:14.089Z", + "contributors": [ + "vlad-vorontsov", + "alfaslash", + "IPri", + "mxxn", + "nikbelikov", + "rmaksim", + "Mingun", + "im7mortal", + "teoli", + "AlexyAV" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/call": { + "modified": "2019-10-11T04:40:04.178Z", + "contributors": [ + "vitaminX", + "Natalya_Surikova", + "Mingun", + "teoli", + "fscholz" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/caller": { + "modified": "2019-05-06T13:11:25.305Z", + "contributors": [ + "Neitrin", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/displayName": { + "modified": "2019-03-23T23:08:57.657Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/length": { + "modified": "2019-03-23T23:33:11.930Z", + "contributors": [ + "Mingun", + "teoli", + "maxmaximov" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/name": { + "modified": "2020-10-15T21:28:28.242Z", + "contributors": [ + "Simaleon", + "sashakrauzer", + "MerkUriy", + "volokolamskspb", + "Yialo", + "nakhodkiin", + "SphinxKnight", + "Mingun", + "teoli", + "Lord_Howe" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/toSource": { + "modified": "2019-03-23T23:08:53.546Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/toString": { + "modified": "2019-03-23T23:08:47.306Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Generator": { + "modified": "2020-12-08T04:46:07.883Z", + "contributors": [ + "bskydive", + "ahtohbi4", + "ygkorea" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Generator/next": { + "modified": "2020-10-15T22:22:50.166Z", + "contributors": [ + "ekirpichyov" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Generator/return": { + "modified": "2020-10-15T22:22:51.474Z", + "contributors": [ + "ekirpichyov" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Generator/throw": { + "modified": "2019-03-23T22:14:35.937Z", + "contributors": [ + "deman" + ] + }, + "Web/JavaScript/Reference/Global_Objects/GeneratorFunction": { + "modified": "2020-10-15T21:58:16.652Z", + "contributors": [ + "tilin97" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Infinity": { + "modified": "2020-10-15T21:29:55.866Z", + "contributors": [ + "boxa6", + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Int16Array": { + "modified": "2020-10-15T21:59:37.929Z", + "contributors": [ + "pk.prog" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Int32Array": { + "modified": "2020-10-15T21:59:37.998Z", + "contributors": [ + "sh13max", + "pk.prog" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Int8Array": { + "modified": "2020-10-15T21:57:33.561Z", + "contributors": [ + "Glazomer", + "iliatcymbal" + ] + }, + "Web/JavaScript/Reference/Global_Objects/InternalError": { + "modified": "2019-03-23T23:08:28.849Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl": { + "modified": "2020-10-15T21:30:32.813Z", + "contributors": [ + "kserbez", + "boxa6", + "nrvru", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/Collator": { + "modified": "2020-04-21T07:27:03.712Z", + "contributors": [ + "fscholz", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/Collator/compare": { + "modified": "2020-04-21T07:27:03.594Z", + "contributors": [ + "fscholz", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/Collator/resolvedOptions": { + "modified": "2020-04-21T07:27:03.396Z", + "contributors": [ + "fscholz", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/Collator/supportedLocalesOf": { + "modified": "2020-04-21T07:27:03.568Z", + "contributors": [ + "fscholz", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat": { + "modified": "2020-11-07T18:13:37.841Z", + "contributors": [ + "Vladiatro", + "fscholz", + "Forshortmrmeth", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format": { + "modified": "2020-04-21T09:00:46.926Z", + "contributors": [ + "fscholz", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts": { + "modified": "2020-10-15T22:22:57.636Z", + "contributors": [ + "fscholz", + "ekirpichyov" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions": { + "modified": "2020-04-21T09:00:46.731Z", + "contributors": [ + "fscholz", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf": { + "modified": "2020-04-21T09:00:46.824Z", + "contributors": [ + "fscholz", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/ListFormat": { + "modified": "2020-04-21T09:04:29.446Z", + "contributors": [ + "fscholz", + "Autapomorph" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat": { + "modified": "2020-10-15T21:30:31.049Z", + "contributors": [ + "fscholz", + "DmitryMakhnev", + "RUVATA", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format": { + "modified": "2020-04-21T09:08:24.301Z", + "contributors": [ + "fscholz", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/resolvedOptions": { + "modified": "2020-04-21T09:08:24.157Z", + "contributors": [ + "fscholz", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/supportedLocalesOf": { + "modified": "2020-04-21T09:08:24.144Z", + "contributors": [ + "fscholz", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales": { + "modified": "2020-10-15T22:22:33.577Z", + "contributors": [ + "ekirpichyov" + ] + }, + "Web/JavaScript/Reference/Global_Objects/JSON": { + "modified": "2020-02-26T09:34:47.437Z", + "contributors": [ + "alexandersolovyov", + "deman", + "Mingun", + "fscholz" + ] + }, + "Web/JavaScript/Reference/Global_Objects/JSON/parse": { + "modified": "2019-10-04T12:11:00.231Z", + "contributors": [ + "catsAND", + "Mingun", + "teoli", + "Grundy" + ] + }, + "Web/JavaScript/Reference/Global_Objects/JSON/stringify": { + "modified": "2020-10-15T21:31:10.984Z", + "contributors": [ + "art-gur", + "alerkesi", + "brykov", + "a-tarasyuk", + "Mingun", + "igorklopov84", + "fullfs" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map": { + "modified": "2020-10-15T21:31:18.471Z", + "contributors": [ + "altpoint", + "AndreyGlyan", + "fanich37", + "Dzvonek", + "teryaew", + "xobotyi", + "akmil", + "SphinxKnight", + "WispProxy", + "dtretyakov" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map/@@species": { + "modified": "2019-03-23T22:09:16.930Z", + "contributors": [ + "WispProxy", + "ahtohbi4" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map/clear": { + "modified": "2019-03-23T22:11:36.456Z", + "contributors": [ + "thepocp" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map/delete": { + "modified": "2020-10-15T21:50:15.883Z", + "contributors": [ + "xobotyi", + "ahtohbi4", + "vesai" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map/entries": { + "modified": "2019-09-29T09:44:45.397Z", + "contributors": [ + "evvs", + "rsarov", + "ahtohbi4" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map/forEach": { + "modified": "2020-10-15T21:49:44.007Z", + "contributors": [ + "swa1ps", + "trueanqu", + "SomeoneDeployMe" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map/get": { + "modified": "2020-10-15T21:55:36.338Z", + "contributors": [ + "dimon4ezzz", + "AndreyLipin", + "ahtohbi4" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map/has": { + "modified": "2019-03-23T22:18:58.841Z", + "contributors": [ + "Ignat86" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map/keys": { + "modified": "2019-03-23T22:09:06.332Z", + "contributors": [ + "ahtohbi4" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map/set": { + "modified": "2019-07-08T16:59:23.175Z", + "contributors": [ + "elrostov", + "InoY", + "ahtohbi4" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map/size": { + "modified": "2020-11-28T13:51:01.575Z", + "contributors": [ + "ialexi-bl", + "Yumeiro", + "reilag" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Map/values": { + "modified": "2019-03-23T22:09:12.314Z", + "contributors": [ + "ahtohbi4" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math": { + "modified": "2020-10-15T21:26:14.248Z", + "contributors": [ + "sashakrauzer", + "S-le", + "Sliokkory", + "KSH-audibene", + "boxa6", + "Nexmean", + "MrEfrem", + "Mingun", + "teoli", + "kolyuchii", + "Ladislas", + "fscholz" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/E": { + "modified": "2019-03-23T23:02:51.965Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/LN10": { + "modified": "2019-03-23T23:06:02.231Z", + "contributors": [ + "Mingun", + "RyvkinSergey" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/LN2": { + "modified": "2019-03-23T23:02:57.181Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/LOG10E": { + "modified": "2019-03-23T23:02:52.129Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/LOG2E": { + "modified": "2019-03-23T23:03:01.940Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/PI": { + "modified": "2019-03-23T23:03:00.693Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2": { + "modified": "2019-03-23T23:03:03.049Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/SQRT2": { + "modified": "2019-03-23T23:03:04.344Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/abs": { + "modified": "2020-10-15T21:26:16.639Z", + "contributors": [ + "KiraTheFirebird", + "YozhEzhi", + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/acos": { + "modified": "2019-03-23T23:21:02.503Z", + "contributors": [ + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/acosh": { + "modified": "2019-03-23T23:20:43.526Z", + "contributors": [ + "SphinxKnight", + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/asin": { + "modified": "2019-03-23T23:20:44.722Z", + "contributors": [ + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/asinh": { + "modified": "2019-03-23T23:20:44.301Z", + "contributors": [ + "SphinxKnight", + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/atan": { + "modified": "2019-03-23T23:20:39.232Z", + "contributors": [ + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/atan2": { + "modified": "2019-03-23T23:02:49.535Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/atanh": { + "modified": "2019-03-23T23:02:48.791Z", + "contributors": [ + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/cbrt": { + "modified": "2019-11-18T17:15:18.856Z", + "contributors": [ + "Yaffle", + "SphinxKnight", + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/ceil": { + "modified": "2019-04-20T08:11:10.933Z", + "contributors": [ + "YozhEzhi", + "Minstel", + "kontimir", + "slollo", + "vysheradugi4", + "oPOCCOMAXAo", + "MrEfrem", + "Mingun", + "vskopuk", + "js-user" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/clz32": { + "modified": "2019-03-23T23:02:49.692Z", + "contributors": [ + "SphinxKnight", + "Yaffle", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/cos": { + "modified": "2019-03-23T23:02:49.360Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/cosh": { + "modified": "2019-03-23T23:02:45.491Z", + "contributors": [ + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/exp": { + "modified": "2019-03-23T23:02:39.529Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/expm1": { + "modified": "2019-03-23T23:02:41.113Z", + "contributors": [ + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/floor": { + "modified": "2019-10-07T20:49:57.401Z", + "contributors": [ + "sashakrauzer", + "long76", + "Soheevich", + "oPOCCOMAXAo", + "MrEfrem", + "Mingun", + "sovietmagic" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/fround": { + "modified": "2019-03-18T20:50:54.153Z", + "contributors": [ + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/hypot": { + "modified": "2019-03-23T23:21:18.612Z", + "contributors": [ + "SphinxKnight", + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/imul": { + "modified": "2019-03-23T23:02:47.878Z", + "contributors": [ + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/log": { + "modified": "2019-03-23T23:02:39.934Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/log10": { + "modified": "2019-03-23T23:02:40.124Z", + "contributors": [ + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/log1p": { + "modified": "2019-03-23T23:02:43.071Z", + "contributors": [ + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/log2": { + "modified": "2020-10-15T21:32:32.809Z", + "contributors": [ + "art-gur", + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/max": { + "modified": "2020-01-23T12:52:57.037Z", + "contributors": [ + "Elivin", + "torbasow", + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/min": { + "modified": "2020-08-04T11:38:28.510Z", + "contributors": [ + "sergey.karavaev", + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/pow": { + "modified": "2019-03-23T23:02:42.644Z", + "contributors": [ "fscholz", - "denise", - "Corba" + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/random": { + "modified": "2020-10-15T21:30:33.217Z", + "contributors": [ + "ekirpichyov", + "Mitrr", + "Byte968", + "Flex301", + "Mingun", + "SandStorm" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/round": { + "modified": "2019-10-03T16:35:58.416Z", + "contributors": [ + "YozhEzhi", + "it4joy", + "Mingun", + "bungu" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/sign": { + "modified": "2019-03-23T23:21:05.525Z", + "contributors": [ + "SphinxKnight", + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/sin": { + "modified": "2019-03-23T23:02:45.848Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/sinh": { + "modified": "2019-03-23T23:02:41.582Z", + "contributors": [ + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/sqrt": { + "modified": "2019-03-23T23:21:16.252Z", + "contributors": [ + "Maxim-Bernashevsky", + "Mingun", + "teoli", + "Ladislas" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/tan": { + "modified": "2019-03-23T23:02:44.705Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/tanh": { + "modified": "2019-03-23T23:02:37.791Z", + "contributors": [ + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/trunc": { + "modified": "2020-10-15T21:32:38.007Z", + "contributors": [ + "opereverzeva", + "dkireev", + "SphinxKnight", + "vitaliylag", + "Danakt", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/NaN": { + "modified": "2020-10-15T21:29:55.593Z", + "contributors": [ + "kss555", + "boxa6", + "Gamesurf", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number": { + "modified": "2020-10-15T21:26:52.210Z", + "contributors": [ + "chrisdavidmills", + "boxa6", + "wbamberg", + "peremenov", + "Mingun", + "teoli", + "Softarius" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/EPSILON": { + "modified": "2019-08-25T14:04:12.302Z", + "contributors": [ + "Yialo", + "biggieman", + "nakhodkiin", + "msalv", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER": { + "modified": "2020-10-15T21:30:30.029Z", + "contributors": [ + "bm12", + "art-gur", + "Yialo", + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE": { + "modified": "2019-03-23T23:08:20.580Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER": { + "modified": "2019-08-25T14:03:53.234Z", + "contributors": [ + "Yialo", + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE": { + "modified": "2019-03-23T23:08:15.441Z", + "contributors": [ + "evheniy", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY": { + "modified": "2019-03-23T23:08:17.933Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/NaN": { + "modified": "2019-03-23T23:08:14.519Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY": { + "modified": "2019-03-23T23:08:18.273Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/isFinite": { + "modified": "2019-03-23T23:08:18.639Z", + "contributors": [ + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/isInteger": { + "modified": "2020-10-15T21:30:30.076Z", + "contributors": [ + "art-gur", + "Yialo", + "SphinxKnight", + "parzhitsky", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/isNaN": { + "modified": "2020-10-15T21:30:30.857Z", + "contributors": [ + "JorJeG", + "Mingun" ] }, - "Web/JavaScript/Guide/Functions": { - "modified": "2020-04-18T01:17:09.834Z", + "Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger": { + "modified": "2020-10-19T11:46:39.542Z", "contributors": [ - "Nevelskoy", - "shevchenko", - "trman", - "pirimow", - "BulavkinNN", - "kkxley", - "mikhail.makarov", - "Aparin", - "imalyavskiy", - "KoS57", - "prometium", - "jsteacat", - "yankovskiy", - "osmaav", - "postwj", - "d.zheleznov", - "kan.a", - "Sajag", - "sirkon", - "pathliving", - "thepocp", - "ValdemarTerte", - "GoliafRS", - "AlexeySuprun", - "Mainstand", - "Grumvol", - "DeekHalden", - "alitskevich", - "keffidesign", - "JuGeer", - "serhiyv", - "pashutk", - "roma-derski", + "alekskos", + "art-gur", + "Yialo", + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/parseFloat": { + "modified": "2019-08-25T14:06:12.145Z", + "contributors": [ + "Yialo", + "SphinxKnight", + "KP0H", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/parseInt": { + "modified": "2020-10-15T21:30:29.202Z", + "contributors": [ + "Yialo", + "Fantomhaiv", + "SphinxKnight", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toExponential": { + "modified": "2020-12-14T05:16:23.222Z", + "contributors": [ + "YozhEzhi", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toFixed": { + "modified": "2020-12-14T05:15:41.289Z", + "contributors": [ + "YozhEzhi", + "ch-ms", + "stravin", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toLocaleString": { + "modified": "2020-10-15T21:30:32.073Z", + "contributors": [ + "vanyaErohin", + "mois-ilya", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toPrecision": { + "modified": "2020-12-14T05:16:55.908Z", + "contributors": [ + "YozhEzhi", + "Yialo", + "while0pass", + "nakhodkiin", + "ZeroUnderscoreOu", + "KiraGolub", + "an2323", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toSource": { + "modified": "2019-08-25T13:48:33.955Z", + "contributors": [ + "Yialo", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/toString": { + "modified": "2020-12-14T05:17:27.925Z", + "contributors": [ + "YozhEzhi", + "Yialo", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/valueOf": { + "modified": "2019-03-23T23:08:15.896Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object": { + "modified": "2019-08-26T11:37:18.396Z", + "contributors": [ + "Yialo", + "wbamberg", + "Natalya_Surikova", + "Mingun", + "teoli", + "pashak" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__": { + "modified": "2019-03-23T23:11:22.223Z", + "contributors": [ + "Mingun", + "OleksandrPapchenko" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__": { + "modified": "2019-03-23T23:10:17.035Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__": { + "modified": "2019-03-23T23:10:22.177Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__": { + "modified": "2019-03-23T23:10:20.796Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/assign": { + "modified": "2020-10-15T21:29:38.981Z", + "contributors": [ + "YozhEzhi", + "GraceAredel", + "icw82", + "chulanovskyi", + "BaNru", + "e-omo", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/constructor": { + "modified": "2019-03-23T23:10:17.901Z", + "contributors": [ + "Natalya_Surikova", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/create": { + "modified": "2020-10-15T21:28:49.512Z", + "contributors": [ + "dmarkin", + "Simaleon", + "Akh-rman", + "yedyharova", + "workonika", + "vinogradov", + "Aleksej", + "RinatMullayanov", + "vvwind", + "Mingun", + "SnowLeo" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/defineProperties": { + "modified": "2019-03-23T23:09:30.861Z", + "contributors": [ + "tankakatan", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/defineProperty": { + "modified": "2019-03-23T23:37:49.274Z", + "contributors": [ + "tourman", + "iSokrat", + "gibson", + "RumyantsevMichael", + "uniqueusr", + "Mingun", + "Natalya_Surikova", + "Anton_Arestov", + "akhabibullina", + "teoli", + "dunmaksim", + "my8bit", + "Selvatico" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/entries": { + "modified": "2020-10-15T21:41:30.272Z", + "contributors": [ + "cloudofgeorge", + "KolesnikovR", + "SpawnLeon", + "YozhEzhi", + "Akh-rman", "fscholz", - "andrcmdr", - "dixon2002", + "bobberr", + "XaveScor", + "uazure", + "curdwithraisins", + "risentveber", + "Grinv" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/freeze": { + "modified": "2020-10-15T21:30:06.043Z", + "contributors": [ + "YozhEzhi", + "WispProxy", + "kdex", + "pk.prog", + "chayn1k", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/fromEntries": { + "modified": "2020-10-15T22:14:28.772Z", + "contributors": [ + "ekirpichyov", + "Autapomorph", + "Akh-rman" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor": { + "modified": "2019-03-24T00:14:06.824Z", + "contributors": [ + "Mingun", "teoli", - "uleming" + "pashak" ] }, - "Web/JavaScript/Guide/Grammar_and_types": { - "modified": "2020-03-12T19:37:57.624Z", + "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors": { + "modified": "2020-10-15T22:14:28.295Z", "contributors": [ - "kkxley", - "device25", - "pk.prog", - "rus11", - "xkha", - "Grumvol", - "DeekHalden", - "BychekRU", - "JuGeer", - "fscholz", - "IgorGilyazov", - "ph1ex0n", - "Corba", - "teoli", - "uleming" + "Akh-rman" ] }, - "Web/JavaScript/Guide/Indexed_collections": { - "modified": "2020-03-12T19:41:25.167Z", + "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames": { + "modified": "2020-10-15T21:30:07.880Z", "contributors": [ - "prometium", - "yankovskiy", - "postwj", - "v.bilinskyi", - "pk.prog", - "sergeymakoveev", - "Megabyteceer", - "a302379333", - "Grumvol", - "blitzkrieg393", - "ignusin", - "magetor" + "YozhEzhi", + "nakhodkiin", + "tourman", + "VsevolodTrofimov", + "Mingun" ] }, - "Web/JavaScript/Guide/Ispolzovanie_promisov": { - "modified": "2020-03-12T19:47:08.646Z", + "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols": { + "modified": "2020-10-15T21:30:06.924Z", "contributors": [ - "EgrorBs", - "FrancoisVongue", - "kkxley", - "indalive", - "VitalyTartynov", - "joisadler", - "Lunatic174", - "kefir266", - "yojeek", - "djigach", - "Airomad", - "winexy", - "Geloosa" + "nakhodkiin", + "SphinxKnight", + "Mingun", + "schyzoo" ] }, - "Web/JavaScript/Guide/Iterators_and_Generators": { - "modified": "2020-03-12T19:42:16.480Z", + "Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf": { + "modified": "2019-03-23T23:09:23.592Z", "contributors": [ - "AlexanderShushunov", - "rinbik", - "sivashev", - "deman", - "Megabyteceer", - "pashutk", - "kav137", - "zgordan-vv", - "danratnikov", - "djsuprin", - "uhomira" + "tonyganch", + "Mingun", + "Natalya_Surikova" ] }, - "Web/JavaScript/Guide/JavaScript_Overview": { - "modified": "2019-05-16T14:33:41.396Z", + "Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty": { + "modified": "2020-10-15T21:21:02.788Z", "contributors": [ - "wbamberg", - "ivan.p", - "fscholz", + "Roman-Kosov", + "ihoru", + "Mingun", "teoli", - "smfd", - "uleming" + "Nick_Pershin", + "nurbek.ab" ] }, - "Web/JavaScript/Guide/Keyed_collections": { - "modified": "2020-03-12T19:43:04.309Z", + "Web/JavaScript/Reference/Global_Objects/Object/is": { + "modified": "2020-10-15T21:26:43.137Z", "contributors": [ - "iameax", - "callisto1337", - "pathliving", - "Megabyteceer", - "alitskevich" + "YozhEzhi", + "SphinxKnight", + "Mingun", + "teoli", + "Romanzes", + "franza" ] }, - "Web/JavaScript/Guide/Meta_programming": { - "modified": "2020-03-12T19:45:39.027Z", + "Web/JavaScript/Reference/Global_Objects/Object/isExtensible": { + "modified": "2019-10-09T12:01:13.252Z", "contributors": [ - "E-Fir", - "T1mL3arn", - "TotalAMD", - "Dominionys", - "NickTaporuk", - "Megabyteceer" + "Mingun" ] }, - "Web/JavaScript/Guide/Modules": { - "modified": "2020-11-22T19:25:09.183Z", + "Web/JavaScript/Reference/Global_Objects/Object/isFrozen": { + "modified": "2020-10-15T21:30:08.003Z", "contributors": [ - "rsvato" + "YozhEzhi", + "Mingun" ] }, - "Web/JavaScript/Guide/Numbers_and_dates": { - "modified": "2020-03-12T19:42:19.176Z", + "Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf": { + "modified": "2020-02-04T15:23:51.484Z", "contributors": [ - "pirimow", - "myszkowski", - "Aparin", - "imalyavskiy", - "lemehovskiy", - "yankovskiy", - "rinbik", - "morpharc", - "Sparks", - "TemmyR", - "Megabyteceer", - "Mavricus", - "Letis-1987", - "OojSmile", - "Grumvol", - "serik1987", - "roma-derski" + "bagau", + "Mingun" ] }, - "Web/JavaScript/Guide/Predefined_Core_Objects": { - "modified": "2019-03-23T23:06:22.825Z", + "Web/JavaScript/Reference/Global_Objects/Object/isSealed": { + "modified": "2019-10-09T11:11:04.447Z", "contributors": [ - "wbamberg", - "warsan", - "AlexChuev", - "razarusu" + "Mingun" ] }, - "Web/JavaScript/Guide/Regular_Expressions": { - "modified": "2020-07-27T10:18:25.178Z", + "Web/JavaScript/Reference/Global_Objects/Object/keys": { + "modified": "2020-10-15T21:30:08.678Z", "contributors": [ - "touze147", - "SphinxKnight", - "DASenkiv", - "qqwweeaassdd", - "rinbik", - "Katarzina", - "laion220995", - "kzotoff", - "WispProxy", - "KysaKey", - "Reiider", - "Grumvol", - "indiefishman", - "romannebesny", - "dstereo", - "rin-nas", - "fscholz", - "keika", - "teoli", - "wilddeer", - "uleming", - "Odysseus" + "zhvirblis", + "kdex", + "Mingun" ] }, - "Web/JavaScript/Guide/Regular_Expressions/Assertions": { - "modified": "2020-03-12T19:49:10.003Z", + "Web/JavaScript/Reference/Global_Objects/Object/preventExtensions": { + "modified": "2020-10-15T21:30:08.070Z", "contributors": [ - "AliaksandrZahorski" + "YozhEzhi", + "serzero2007", + "nakhodkiin", + "Mingun" ] }, - "Web/JavaScript/Guide/Regular_Expressions/Character_Classes": { - "modified": "2020-06-17T18:30:16.759Z", + "Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable": { + "modified": "2019-03-23T23:09:13.597Z", "contributors": [ - "dknight" + "Mingun" ] }, - "Web/JavaScript/Guide/Text_formatting": { - "modified": "2020-03-12T19:42:07.543Z", + "Web/JavaScript/Reference/Global_Objects/Object/proto": { + "modified": "2020-10-15T21:29:34.357Z", "contributors": [ - "pirimow", - "Aparin", - "drugoi", - "Grumvol", - "redishko", - "PavelG94", - "Prographer" + "YozhEzhi", + "Sajag", + "Mingun" ] }, - "Web/JavaScript/Guide/Working_with_Objects": { - "modified": "2020-03-12T19:37:53.984Z", + "Web/JavaScript/Reference/Global_Objects/Object/seal": { + "modified": "2020-10-15T21:30:09.594Z", "contributors": [ - "mikhail.makarov", - "dyaroman", - "alex_wert_and", - "logty3", - "tonkushin", - "m0nclous", - "secretarius", - "rinbik", - "injashkin", - "alyokhander", - "pathliving", - "Siteograf", - "Matters", - "Megabyteceer", - "atlonis", - "agrygoriev", - "hawkridge", - "NobbsNobby", - "Grumvol", - "TrigDevelopment", - "jigs12", - "vzhikness", - "fscholz", - "walkman2058", - "yekver", - "teoli", - "Mxtnr", - "dimko_desu", - "Vlad.Abdullin", - "uleming" + "YozhEzhi", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf": { + "modified": "2019-09-11T03:19:06.537Z", + "contributors": [ + "Ichiru123", + "SphinxKnight", + "oziian", + "Mingun" ] }, - "Web/JavaScript/Guide/Введение_в_JavaScript": { - "modified": "2020-03-12T19:40:55.089Z", + "Web/JavaScript/Reference/Global_Objects/Object/toLocaleString": { + "modified": "2019-09-20T08:30:13.696Z", + "contributors": [ + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/toSource": { + "modified": "2020-10-15T21:30:13.861Z", "contributors": [ - "xxphantom", - "device25", "boxa6", - "rinbik", - "vladPovalii", - "IgorGilyazov" + "Mingun" ] }, - "Web/JavaScript/Guide/Об_этом_руководстве": { - "modified": "2019-03-24T00:13:23.720Z", + "Web/JavaScript/Reference/Global_Objects/Object/toString": { + "modified": "2020-10-15T21:30:10.362Z", + "contributors": [ + "ekirpichyov", + "IvanMorkva", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/valueOf": { + "modified": "2019-03-23T23:15:16.213Z", "contributors": [ + "Haosik", + "Natalya_Surikova", + "Mingun", "teoli", - "danielgn96" + "mixture" ] }, - "Web/JavaScript/Guide/Циклы_и_итерации": { - "modified": "2020-03-12T19:42:44.557Z", + "Web/JavaScript/Reference/Global_Objects/Object/values": { + "modified": "2020-10-15T21:50:11.196Z", "contributors": [ - "Aparin", - "Costigans", - "Zinger1988", - "miirinjej", - "bad4iz", - "pathliving", - "EduardKuzhir", - "DeekHalden", - "BychekRU", - "Dvakseno", - "TARTIGA" + "ekirpichyov", + "Yialo", + "XaveScor", + "Biblbrox", + "nllsdfx", + "ozknemoy" ] }, - "Web/JavaScript/Inheritance_and_the_prototype_chain": { - "modified": "2020-08-29T20:34:02.593Z", + "Web/JavaScript/Reference/Global_Objects/Promise": { + "modified": "2020-10-15T21:29:45.619Z", "contributors": [ - "sozdanbogom40", - "shevchenko", - "SadTomCat", - "Nick_Pershin", - "dudinsky", - "Shemil95", - "SedovDP", - "aliaksandr-s", - "ChesterFobitt", - "Saviloff", - "Kapiroska", - "fscholz", - "xxxxx0438", - "SRastrigin", - "Natalya_Surikova", - "Rast1234", - "teoli" + "YuriSn", + "gudkovdanila", + "YozhEzhi", + "alok1", + "AliaksandrZahorski", + "jwhitlock", + "ugncry", + "Geloosa", + "RinatMullayanov", + "AlexKhram", + "applicab", + "prettyGoo", + "dtretyakov", + "Chudesnov" ] }, - "Web/JavaScript/Introduction_to_Object-Oriented_JavaScript": { - "modified": "2019-06-04T15:16:30.349Z", + "Web/JavaScript/Reference/Global_Objects/Promise/all": { + "modified": "2020-10-15T21:33:26.483Z", "contributors": [ - "MiishaG", - "Trubochkin", - "MefistofelUgur", - "rockad", - "susov", - "movasyl", - "forestbird", - "hydrognomik", - "RayzRazko", - "Leo240", - "impetuhant", - "Saviloff", - "VolodymyrKr", - "iegik" + "BakrID", + "YozhEzhi", + "nudaworks", + "rutsky", + "NikIvan", + "AlexKhram", + "Crazymax11", + "f0rmat1k", + "axilirator" ] }, - "Web/JavaScript/JavaScript_technologies_overview": { - "modified": "2020-03-12T19:37:57.231Z", + "Web/JavaScript/Reference/Global_Objects/Promise/allSettled": { + "modified": "2020-10-15T22:22:39.384Z", "contributors": [ - "jynweythek", - "chrisdavidmills", - "miirinjej", - "kulakowka", - "curdwithraisins", - "sersalex", - "fscholz", - "kichik", - "askhat", - "ixidor", - "uleming" + "Neiromaster", + "ekirpichyov" ] }, - "Web/JavaScript/JavaScript_шеллы": { - "modified": "2020-05-02T11:17:13.805Z", + "Web/JavaScript/Reference/Global_Objects/Promise/any": { + "modified": "2020-10-15T22:27:25.562Z", "contributors": [ - "RenJeka", - "helenasilkina", - "fscholz", - "Alex_Howlett", - "teoli", - "Millionnaire" + "ArkadiiRaih" ] }, - "Web/JavaScript/Language_Resources": { - "modified": "2020-03-12T19:37:58.256Z", + "Web/JavaScript/Reference/Global_Objects/Promise/catch": { + "modified": "2020-10-15T21:48:47.444Z", "contributors": [ - "nnragmailcom", + "IgorCH", + "tirli", + "vitya-ne", + "torbasow", + "sergey-shambir", + "LopatkinEvgeniy", + "AlexKhram" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Promise/finally": { + "modified": "2020-10-15T22:01:51.236Z", + "contributors": [ + "kir.gimranov", + "mshipov", + "RussianPhotoGraf", + "IhnatsiS", + "NoviceBlunderer", + "Zudwa", + "x1unix" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Promise/race": { + "modified": "2020-10-15T21:39:40.095Z", + "contributors": [ + "asamofal", + "nakhodkiin", "fscholz", - "teoli", - "uleming" + "nudaworks", + "hawker000", + "thedoctorde", + "AlexKhram", + "forsage" ] }, - "Web/JavaScript/Memory_Management": { - "modified": "2020-07-14T20:08:19.176Z", + "Web/JavaScript/Reference/Global_Objects/Promise/reject": { + "modified": "2020-10-15T21:39:33.387Z", "contributors": [ - "irustm", - "ZeroUnderscoreOu", - "nikolaifedorov", - "vaeum", - "sashashakun", + "sergey-shambir", "fscholz", - "vitkarpov", - "teoli", - "Nick_Pershin", - "nurbek.ab" + "Buggytheclown", + "0xff00ff", + "AlexKhram", + "UnikZ" ] }, - "Web/JavaScript/Reference": { - "modified": "2020-03-12T19:36:05.593Z", + "Web/JavaScript/Reference/Global_Objects/Promise/resolve": { + "modified": "2020-10-15T21:48:52.330Z", "contributors": [ - "Aleksej", - "Mingun", - "teoli", - "Ladislas", - "pashak" + "gusakmarina", + "nudaworks", + "AlexKhram", + "ball00n" ] }, - "Web/JavaScript/Reference/Classes": { - "modified": "2020-11-02T03:27:06.842Z", + "Web/JavaScript/Reference/Global_Objects/Promise/then": { + "modified": "2020-11-03T18:52:52.359Z", "contributors": [ - "ITheCorgi", - "blackbrain2009", - "denys.marytchak", - "PaulineNemchak", - "SphinxKnight", - "AnarhistMS", + "fanich37", + "smlkA", "YozhEzhi", - "sahmildzhakeev", - "jainashur", - "CaptainCrocus", - "domstrueboy", - "Muffassa", - "Sajag", - "Gamesurf", - "Piterden", - "pathliving", - "alienalien13", - "DyckGerman", - "animhotep", - "feonit", - "zasipin", - "InsidiousClu", - "KTatyana", - "ViZhe", - "sergeymakoveev", - "PinkaminaDianePie", - "RoM4iK", - "sasd97", - "seedofjoy", - "torbasow", - "krest88", - "fscholz" + "Kesantielu", + "andreymir", + "AlexKhram", + "LeoVS09", + "ksladkov" ] }, - "Web/JavaScript/Reference/Classes/Class_fields": { - "modified": "2020-11-17T02:37:33.218Z", + "Web/JavaScript/Reference/Global_Objects/Proxy": { + "modified": "2020-11-17T05:36:00.208Z", "contributors": [ "kosarev_va", - "warsambin", - "shmel3" + "sivashev", + "xurshidbekjonwin", + "lmjavascriptprogrammer", + "boxa6", + "DonikaV", + "nakhodkiin", + "Andrey-Bushman", + "kdex", + "torbasow", + "dtretyakov", + "im7mortal" ] }, - "Web/JavaScript/Reference/Classes/constructor": { - "modified": "2020-11-02T06:02:34.419Z", + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy": { + "modified": "2020-11-16T16:36:02.171Z", "contributors": [ - "ITheCorgi", - "S25AI", - "Bobsans", - "Paul_Yuhnovich", - "galynag", - "dood" + "mfuji09" ] }, - "Web/JavaScript/Reference/Classes/extends": { - "modified": "2020-03-12T19:46:03.525Z", + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply": { + "modified": "2020-11-18T06:41:35.789Z", "contributors": [ - "Nexwich", - "Vlad160", - "Piterden", - "meridos", - "Halkyon", - "Kozhemyak", - "slayermass" + "kosarev_va" ] }, - "Web/JavaScript/Reference/Classes/static": { - "modified": "2020-10-15T21:34:19.682Z", + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/get": { + "modified": "2020-11-17T05:45:02.908Z", "contributors": [ - "vydayko", - "Bobsans", - "evilive3000", - "andrey-gnl", - "Hydrock", - "Dmitrii_Aleksandrov", - "torbasow", - "terranisu", - "Witadol" + "kosarev_va" ] }, - "Web/JavaScript/Reference/Classes/Приватные_поля_класса": { - "modified": "2020-10-15T22:33:38.348Z", + "Web/JavaScript/Reference/Global_Objects/Proxy/revocable": { + "modified": "2020-10-15T22:01:47.719Z", "contributors": [ - "cliggen", - "DarkExodusXX" + "HarmlessEvil" ] }, - "Web/JavaScript/Reference/Deprecated_and_obsolete_features": { - "modified": "2020-03-12T19:48:57.173Z", + "Web/JavaScript/Reference/Global_Objects/RangeError": { + "modified": "2019-03-23T23:08:28.070Z", "contributors": [ - "boxa6" + "Mingun", + "fscholz" ] }, - "Web/JavaScript/Reference/Errors": { - "modified": "2020-03-12T19:44:11.764Z", + "Web/JavaScript/Reference/Global_Objects/ReferenceError": { + "modified": "2020-10-15T21:30:26.550Z", "contributors": [ - "superpuper32", - "fscholz" + "dima74", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Already_has_pragma": { - "modified": "2020-03-12T19:48:44.607Z", + "Web/JavaScript/Reference/Global_Objects/Reflect": { + "modified": "2020-11-08T07:48:53.681Z", "contributors": [ - "MakarovDs777" + "parabolabam", + "bakugod", + "Chank1e", + "SphinxKnight", + "Synthesize", + "rajdee", + "C`est la vie" ] }, - "Web/JavaScript/Reference/Errors/Array_sort_argument": { - "modified": "2020-03-12T19:48:40.421Z", + "Web/JavaScript/Reference/Global_Objects/Reflect/apply": { + "modified": "2020-10-15T22:01:47.478Z", "contributors": [ - "MakarovDs777" + "HarmlessEvil" ] }, - "Web/JavaScript/Reference/Errors/Bad_octal": { - "modified": "2020-03-12T19:46:46.233Z", + "Web/JavaScript/Reference/Global_Objects/Reflect/construct": { + "modified": "2020-10-15T22:19:59.737Z", "contributors": [ - "Pandemoniumus" + "bakugod" ] }, - "Web/JavaScript/Reference/Errors/Bad_radix": { - "modified": "2020-03-12T19:47:16.966Z", + "Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty": { + "modified": "2020-10-15T22:19:53.301Z", "contributors": [ - "KTatyana", - "varyag01" + "bakugod" ] }, - "Web/JavaScript/Reference/Errors/Bad_regexp_flag": { - "modified": "2020-03-12T19:47:09.430Z", + "Web/JavaScript/Reference/Global_Objects/Reflect/deleteProperty": { + "modified": "2020-10-15T22:19:49.053Z", "contributors": [ - "hahanova" + "bakugod" ] }, - "Web/JavaScript/Reference/Errors/Bad_return_or_yield": { - "modified": "2020-03-12T19:48:14.916Z", + "Web/JavaScript/Reference/Global_Objects/Reflect/get": { + "modified": "2020-10-15T22:01:46.509Z", "contributors": [ - "KTatyana" + "HarmlessEvil" ] }, - "Web/JavaScript/Reference/Errors/Called_on_incompatible_type": { - "modified": "2020-03-12T19:48:52.848Z", + "Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys": { + "modified": "2020-10-15T22:05:30.827Z", "contributors": [ - "palpich", - "MakarovDs777", - "Toshakins" + "ArturJS" ] }, - "Web/JavaScript/Reference/Errors/Cant_access_lexical_declaration_before_init": { - "modified": "2020-03-12T19:47:46.173Z", + "Web/JavaScript/Reference/Global_Objects/RegExp": { + "modified": "2020-08-25T20:36:26.657Z", "contributors": [ - "rsvato" + "duduindo", + "etonomick", + "needpower", + "username1565", + "PavelKoroteev", + "Zizes", + "kaifonaft", + "wbamberg", + "Express2000", + "WispProxy", + "bobanko", + "sashatexb", + "Grundy", + "dstereo", + "socketpair", + "Hulio", + "Mingun", + "KiraAndMaxim", + "rhyne24" ] }, - "Web/JavaScript/Reference/Errors/Cant_access_property": { - "modified": "2020-03-12T19:48:40.635Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/@@search": { + "modified": "2020-10-15T22:00:22.795Z", "contributors": [ - "MakarovDs777" + "fax1ty" ] }, - "Web/JavaScript/Reference/Errors/Cant_assign_to_property": { - "modified": "2020-11-09T16:55:40.780Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/@@split": { + "modified": "2020-10-15T22:05:39.755Z", "contributors": [ - "tukumann" + "0x0071" ] }, - "Web/JavaScript/Reference/Errors/Cant_define_property_object_not_extensible": { - "modified": "2020-03-12T19:48:37.533Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/exec": { + "modified": "2019-10-03T07:10:20.564Z", "contributors": [ - "Zulcom", - "MakarovDs777" + "Haosik", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Cant_delete": { - "modified": "2020-03-12T19:48:41.016Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/flags": { + "modified": "2019-03-23T23:03:48.545Z", "contributors": [ - "MakarovDs777" + "SphinxKnight", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Cant_redefine_property": { - "modified": "2020-03-12T19:48:43.526Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/global": { + "modified": "2019-03-23T23:03:48.212Z", "contributors": [ - "MakarovDs777" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Cyclic_object_value": { - "modified": "2020-10-19T11:06:58.196Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase": { + "modified": "2019-03-23T23:03:53.037Z", "contributors": [ - "sovushka-utrom", - "MakarovDs777" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Dead_object": { - "modified": "2020-03-12T19:48:38.148Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/input": { + "modified": "2020-10-15T22:21:51.345Z", "contributors": [ - "MakarovDs777" + "gudkovdanila" ] }, - "Web/JavaScript/Reference/Errors/Delete_in_strict_mode": { - "modified": "2020-03-12T19:48:34.125Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex": { + "modified": "2019-03-23T23:03:47.604Z", "contributors": [ - "Akh-rman", - "MakarovDs777" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Deprecated_String_generics": { - "modified": "2020-03-12T19:48:16.347Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch": { + "modified": "2020-10-15T22:21:50.708Z", "contributors": [ - "KTatyana" + "zoodogood", + "gudkovdanila" ] }, - "Web/JavaScript/Reference/Errors/Deprecated_caller_or_arguments_usage": { - "modified": "2020-03-12T19:48:07.207Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/multiline": { + "modified": "2019-03-23T23:03:46.419Z", "contributors": [ - "simonprod", - "MakarovDs777", - "Akh-rman" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Deprecated_expression_closures": { - "modified": "2020-03-12T19:48:53.985Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/n": { + "modified": "2020-10-15T21:54:34.887Z", "contributors": [ - "MakarovDs777" + "ekirpichyov", + "teoli", + "yulllll", + "Mihail15", + "KamilOcean" ] }, - "Web/JavaScript/Reference/Errors/Deprecated_octal": { - "modified": "2020-03-12T19:48:36.042Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/source": { + "modified": "2020-05-04T10:45:02.263Z", "contributors": [ - "MakarovDs777", - "ialexi-bl" + "ellizii", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/RegExp/sticky": { + "modified": "2019-03-23T23:03:51.760Z", + "contributors": [ + "SphinxKnight", + "serj-by", + "WispProxy", + "Mingun" + ] + }, + "Web/JavaScript/Reference/Global_Objects/RegExp/test": { + "modified": "2020-05-25T03:11:01.471Z", + "contributors": [ + "SphinxKnight", + "pohuyebawtak", + "Glazomer", + "waterplea", + "Mingun", + "InoY" ] }, - "Web/JavaScript/Reference/Errors/Deprecated_source_map_pragma": { - "modified": "2020-03-12T19:46:14.659Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/toSource": { + "modified": "2019-08-27T16:00:03.262Z", "contributors": [ - "medianex" + "Yialo", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Deprecated_toLocaleFormat": { - "modified": "2020-03-12T19:48:53.962Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/toString": { + "modified": "2019-03-23T23:03:38.400Z", "contributors": [ - "MakarovDs777" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Equal_as_assign": { - "modified": "2020-03-12T19:48:37.445Z", + "Web/JavaScript/Reference/Global_Objects/RegExp/unicode": { + "modified": "2020-10-15T22:03:35.958Z", "contributors": [ - "MakarovDs777" + "PROPHESSOR" ] }, - "Web/JavaScript/Reference/Errors/For-each-in_loops_are_deprecated": { - "modified": "2020-03-12T19:48:56.664Z", + "Web/JavaScript/Reference/Global_Objects/Set": { + "modified": "2020-10-15T21:31:17.149Z", "contributors": [ - "MakarovDs777" + "andrew_shr", + "YozhEzhi", + "kan.a", + "SphinxKnight", + "dima74", + "papadima", + "vibecode", + "ViZhe", + "dtretyakov" ] }, - "Web/JavaScript/Reference/Errors/Getter_only": { - "modified": "2020-03-12T19:48:43.409Z", + "Web/JavaScript/Reference/Global_Objects/Set/Set": { + "modified": "2020-12-07T09:25:28.434Z", "contributors": [ - "MakarovDs777" + "SphinxKnight", + "knatysik" ] }, - "Web/JavaScript/Reference/Errors/Identifier_after_number": { - "modified": "2020-03-12T19:48:34.042Z", + "Web/JavaScript/Reference/Global_Objects/Set/add": { + "modified": "2020-10-15T22:03:24.314Z", "contributors": [ - "MakarovDs777" + "Siteograf" ] }, - "Web/JavaScript/Reference/Errors/Illegal_character": { - "modified": "2020-03-12T19:46:55.549Z", + "Web/JavaScript/Reference/Global_Objects/Set/clear": { + "modified": "2020-10-15T21:58:59.279Z", "contributors": [ - "Agaff.fm", - "milothea" + "dima74" ] }, - "Web/JavaScript/Reference/Errors/Invalid_array_length": { - "modified": "2020-03-12T19:46:53.627Z", + "Web/JavaScript/Reference/Global_Objects/Set/delete": { + "modified": "2020-10-15T22:04:59.296Z", "contributors": [ - "xenikopa" + "ekirpichyov", + "ArmoGidec" ] }, - "Web/JavaScript/Reference/Errors/Invalid_assignment_left-hand_side": { - "modified": "2020-03-12T19:46:49.095Z", + "Web/JavaScript/Reference/Global_Objects/Set/entries": { + "modified": "2020-10-15T22:22:34.627Z", "contributors": [ - "KTatyana", - "evmnn" + "ekirpichyov" ] }, - "Web/JavaScript/Reference/Errors/Invalid_const_assignment": { - "modified": "2020-03-12T19:48:42.020Z", + "Web/JavaScript/Reference/Global_Objects/Set/forEach": { + "modified": "2020-10-15T22:18:01.267Z", "contributors": [ - "MakarovDs777" + "TatarovAE", + "boulderboy" ] }, - "Web/JavaScript/Reference/Errors/Invalid_date": { - "modified": "2020-03-12T19:47:15.198Z", + "Web/JavaScript/Reference/Global_Objects/Set/has": { + "modified": "2020-10-15T22:10:52.073Z", "contributors": [ - "Logiiiin", - "Cronofaq" + "raylyanway" ] }, - "Web/JavaScript/Reference/Errors/Invalid_for-in_initializer": { - "modified": "2020-03-12T19:48:36.053Z", + "Web/JavaScript/Reference/Global_Objects/Set/size": { + "modified": "2020-10-15T22:22:51.490Z", "contributors": [ - "Akh-rman", - "MakarovDs777" + "ekirpichyov" ] }, - "Web/JavaScript/Reference/Errors/Invalid_for-of_initializer": { - "modified": "2020-03-12T19:47:46.050Z", + "Web/JavaScript/Reference/Global_Objects/Set/values": { + "modified": "2020-10-15T22:22:36.094Z", "contributors": [ - "Akh-rman", - "rsvato" + "ekirpichyov" ] }, - "Web/JavaScript/Reference/Errors/JSON_bad_parse": { - "modified": "2020-03-12T19:47:51.119Z", + "Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer": { + "modified": "2019-03-23T22:09:27.484Z", "contributors": [ - "Akh-rman", - "djigach" + "nikolaysalinder", + "scilganon", + "curdwithraisins" ] }, - "Web/JavaScript/Reference/Errors/Malformed_URI": { - "modified": "2020-03-12T19:47:10.234Z", + "Web/JavaScript/Reference/Global_Objects/String": { + "modified": "2020-11-19T06:55:56.629Z", "contributors": [ - "Logiiiin", - "hunty" + "liubov", + "mangl-auf", + "boxa6", + "wbamberg", + "an2323", + "IvanMorkva", + "Mingun", + "fobo66", + "teoli", + "ethertank" ] }, - "Web/JavaScript/Reference/Errors/Malformed_formal_parameter": { - "modified": "2020-03-12T19:47:59.198Z", + "Web/JavaScript/Reference/Global_Objects/String/@@iterator": { + "modified": "2020-10-14T10:03:26.063Z", "contributors": [ - "KTatyana" + "scrum", + "SphinxKnight", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Missing_bracket_after_list": { - "modified": "2020-03-12T19:47:12.419Z", + "Web/JavaScript/Reference/Global_Objects/String/Trim": { + "modified": "2019-03-23T23:11:20.382Z", "contributors": [ - "KTatyana", - "kolyuchii" + "KiraAndMaxim", + "Mingun", + "Ajooluz" ] }, - "Web/JavaScript/Reference/Errors/Missing_colon_after_property_id": { - "modified": "2020-03-12T19:47:16.697Z", + "Web/JavaScript/Reference/Global_Objects/String/anchor": { + "modified": "2019-03-18T20:48:46.079Z", "contributors": [ - "Logiiiin" + "risenforces", + "DenVdmj", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Missing_curly_after_function_body": { - "modified": "2020-03-12T19:48:03.575Z", + "Web/JavaScript/Reference/Global_Objects/String/big": { + "modified": "2019-03-23T23:06:53.527Z", "contributors": [ - "KTatyana" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Missing_curly_after_property_list": { - "modified": "2020-03-12T19:47:15.796Z", + "Web/JavaScript/Reference/Global_Objects/String/blink": { + "modified": "2019-03-23T23:06:56.834Z", "contributors": [ - "KTatyana", - "varyag01" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Missing_formal_parameter": { - "modified": "2020-03-12T19:48:33.984Z", + "Web/JavaScript/Reference/Global_Objects/String/bold": { + "modified": "2019-03-23T23:06:52.878Z", "contributors": [ - "MakarovDs777" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Missing_initializer_in_const": { - "modified": "2020-03-12T19:47:18.266Z", + "Web/JavaScript/Reference/Global_Objects/String/charAt": { + "modified": "2019-09-05T08:52:29.623Z", "contributors": [ - "Logiiiin" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Missing_name_after_dot_operator": { - "modified": "2020-03-12T19:48:36.581Z", + "Web/JavaScript/Reference/Global_Objects/String/charCodeAt": { + "modified": "2019-10-10T16:47:08.723Z", "contributors": [ - "MakarovDs777" + "WispProxy", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Missing_parenthesis_after_argument_list": { - "modified": "2020-03-12T19:45:27.217Z", + "Web/JavaScript/Reference/Global_Objects/String/codePointAt": { + "modified": "2019-03-23T23:06:49.782Z", "contributors": [ - "richandhandsomeman" + "SphinxKnight", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Missing_parenthesis_after_condition": { - "modified": "2020-03-12T19:47:08.319Z", + "Web/JavaScript/Reference/Global_Objects/String/concat": { + "modified": "2019-03-23T23:06:50.258Z", "contributors": [ - "thepocp" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement": { - "modified": "2020-03-12T19:46:03.538Z", + "Web/JavaScript/Reference/Global_Objects/String/endsWith": { + "modified": "2020-11-30T13:19:02.930Z", "contributors": [ - "KTatyana", - "SedovDP", - "Sparks" + "vedmaque", + "viktishchenko", + "SphinxKnight", + "burashka", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/More_arguments_needed": { - "modified": "2020-03-12T19:46:14.923Z", + "Web/JavaScript/Reference/Global_Objects/String/fixed": { + "modified": "2019-03-23T23:06:56.996Z", "contributors": [ - "thepocp" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Negative_repetition_count": { - "modified": "2020-03-12T19:47:21.952Z", + "Web/JavaScript/Reference/Global_Objects/String/fontcolor": { + "modified": "2019-03-23T23:06:53.696Z", "contributors": [ - "Logiiiin" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/No_non-null_object": { - "modified": "2020-03-12T19:48:41.071Z", + "Web/JavaScript/Reference/Global_Objects/String/fontsize": { + "modified": "2019-03-23T23:06:55.867Z", "contributors": [ - "MakarovDs777" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/No_properties": { - "modified": "2020-03-12T19:48:10.284Z", + "Web/JavaScript/Reference/Global_Objects/String/fromCharCode": { + "modified": "2020-02-26T00:26:26.501Z", "contributors": [ - "KTatyana" + "kurbanovjasur", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/No_variable_name": { - "modified": "2020-03-12T19:47:58.181Z", + "Web/JavaScript/Reference/Global_Objects/String/fromCodePoint": { + "modified": "2019-03-23T23:07:12.216Z", "contributors": [ - "KTatyana" + "SphinxKnight", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Non_configurable_array_element": { - "modified": "2020-03-12T19:48:37.262Z", + "Web/JavaScript/Reference/Global_Objects/String/includes": { + "modified": "2020-10-15T21:31:11.231Z", "contributors": [ - "MakarovDs777" + "Therrance", + "fscholz", + "dima74", + "PetrBorisov", + "kdex", + "burashka", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Not_a_codepoint": { - "modified": "2020-03-12T19:47:08.221Z", + "Web/JavaScript/Reference/Global_Objects/String/indexOf": { + "modified": "2019-04-10T16:45:26.467Z", "contributors": [ - "KTatyana", - "milothea" + "danielvinogradov", + "expeerd", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Not_a_constructor": { - "modified": "2020-03-12T19:48:26.755Z", + "Web/JavaScript/Reference/Global_Objects/String/italics": { + "modified": "2019-03-23T23:06:57.747Z", "contributors": [ - "grebenyukov" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Not_a_function": { - "modified": "2020-03-12T19:44:14.870Z", + "Web/JavaScript/Reference/Global_Objects/String/lastIndexOf": { + "modified": "2019-03-23T23:06:47.724Z", "contributors": [ - "merelj", - "elscept", - "winvano", - "vladyslavnes", - "MonX94", - "eedmast", - "s1lver" + "expeerd", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Not_defined": { - "modified": "2020-03-12T19:45:01.771Z", + "Web/JavaScript/Reference/Global_Objects/String/length": { + "modified": "2019-03-23T23:07:11.163Z", "contributors": [ - "Nik1tasm", - "irodger", - "MrDaedra", - "KurumiToki", - "alexfromvl", - "topcomfort" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Precision_range": { - "modified": "2020-03-12T19:46:12.947Z", + "Web/JavaScript/Reference/Global_Objects/String/link": { + "modified": "2019-03-23T23:06:52.727Z", "contributors": [ - "KTatyana", - "rbetristha" + "RumyantsevMichael", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Property_access_denied": { - "modified": "2020-03-12T19:46:14.706Z", + "Web/JavaScript/Reference/Global_Objects/String/localeCompare": { + "modified": "2019-03-23T23:06:31.683Z", "contributors": [ - "thepocp" + "ovvn", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Read-only": { - "modified": "2020-03-12T19:48:38.316Z", + "Web/JavaScript/Reference/Global_Objects/String/match": { + "modified": "2019-08-27T15:10:06.292Z", "contributors": [ - "MakarovDs777" + "Yialo", + "ArmoGidec", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Redeclared_parameter": { - "modified": "2020-03-12T19:48:00.985Z", + "Web/JavaScript/Reference/Global_Objects/String/matchAll": { + "modified": "2020-10-15T22:15:55.263Z", "contributors": [ - "KTatyana" + "atmobox66", + "Yialo", + "nakhodkiin" ] }, - "Web/JavaScript/Reference/Errors/Reduce_of_empty_array_with_no_initial_value": { - "modified": "2020-03-12T19:48:40.523Z", + "Web/JavaScript/Reference/Global_Objects/String/normalize": { + "modified": "2019-08-27T15:13:41.527Z", "contributors": [ - "MakarovDs777" + "Yialo", + "Seresigo", + "borschsergey", + "SphinxKnight", + "Metotron", + "Mingun", + "dtretyakov" ] }, - "Web/JavaScript/Reference/Errors/Reserved_identifier": { - "modified": "2020-03-12T19:48:30.540Z", + "Web/JavaScript/Reference/Global_Objects/String/padEnd": { + "modified": "2019-08-27T15:13:11.473Z", "contributors": [ - "FromQwghlm" + "Yialo", + "teoli", + "a-chepugov" ] }, - "Web/JavaScript/Reference/Errors/Resulting_string_too_large": { - "modified": "2020-03-12T19:47:15.830Z", + "Web/JavaScript/Reference/Global_Objects/String/padStart": { + "modified": "2020-10-15T21:55:08.745Z", "contributors": [ - "Logiiiin" + "Yialo", + "vladimircreative", + "wa-Nadoo", + "timbset" ] }, - "Web/JavaScript/Reference/Errors/Stmt_after_return": { - "modified": "2020-03-12T19:44:12.151Z", + "Web/JavaScript/Reference/Global_Objects/String/raw": { + "modified": "2019-03-23T23:06:30.098Z", "contributors": [ - "Logiiiin", - "pk.prog", - "naudachu", - "s1lver" + "SphinxKnight", + "oleg_s", + "Mingun", + "dtretyakov" ] }, - "Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params": { - "modified": "2020-03-12T19:48:33.429Z", + "Web/JavaScript/Reference/Global_Objects/String/repeat": { + "modified": "2020-10-15T21:31:18.222Z", "contributors": [ - "ialexi-bl", - "MakarovDs777" + "KTatyana", + "Mingun", + "dtretyakov" ] }, - "Web/JavaScript/Reference/Errors/Too_much_recursion": { - "modified": "2020-03-12T19:46:15.435Z", + "Web/JavaScript/Reference/Global_Objects/String/replace": { + "modified": "2020-10-15T21:24:19.735Z", "contributors": [ - "thepocp" + "YozhEzhi", + "dimakovalevskyi", + "igorkusoff", + "Mingun", + "Lambrusco.pro", + "teoli", + "andrey_d" ] }, - "Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments": { - "modified": "2020-03-12T19:48:42.436Z", + "Web/JavaScript/Reference/Global_Objects/String/replaceAll": { + "modified": "2020-10-15T22:34:38.094Z", "contributors": [ - "fuggy", - "MakarovDs777" + "GuyFox70" ] }, - "Web/JavaScript/Reference/Errors/Undeclared_var": { - "modified": "2020-03-12T19:47:38.776Z", + "Web/JavaScript/Reference/Global_Objects/String/search": { + "modified": "2019-10-03T07:09:20.235Z", "contributors": [ - "Akh-rman", - "Matthew11770" + "Glazomer", + "nakhodkiin", + "atna", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Undefined_prop": { - "modified": "2020-03-12T19:47:58.221Z", + "Web/JavaScript/Reference/Global_Objects/String/slice": { + "modified": "2020-12-02T04:52:58.834Z", "contributors": [ - "KTatyana" + "inva8de", + "bestwebdeveloper", + "Andrii-Oleksyshyn", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Unexpected_token": { - "modified": "2020-03-12T19:46:02.532Z", + "Web/JavaScript/Reference/Global_Objects/String/small": { + "modified": "2019-03-23T23:06:51.754Z", "contributors": [ - "KTatyana", - "NemchinovSergey", - "Sparks" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Unexpected_type": { - "modified": "2020-03-12T19:45:23.586Z", + "Web/JavaScript/Reference/Global_Objects/String/split": { + "modified": "2020-11-30T06:21:03.966Z", "contributors": [ - "DanyaSWorlD" + "DarkGoanna", + "Ect0PzG4m1ng", + "IgorSkvortsov", + "bruha", + "terranisu", + "Mingun", + "FRiMN" ] }, - "Web/JavaScript/Reference/Errors/Unnamed_function_statement": { - "modified": "2020-03-12T19:48:37.361Z", + "Web/JavaScript/Reference/Global_Objects/String/startsWith": { + "modified": "2020-10-15T21:31:11.246Z", "contributors": [ - "Akh-rman", - "MakarovDs777" + "ilyasidorchik", + "viktishchenko", + "Simaleon", + "dmitryorly", + "SphinxKnight", + "AtataUruru", + "burashka", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Unterminated_string_literal": { - "modified": "2020-03-12T19:48:38.047Z", + "Web/JavaScript/Reference/Global_Objects/String/strike": { + "modified": "2019-09-05T08:52:44.580Z", "contributors": [ - "MakarovDs777" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/in_operator_no_object": { - "modified": "2020-03-12T19:48:40.403Z", + "Web/JavaScript/Reference/Global_Objects/String/sub": { + "modified": "2019-03-23T23:07:01.566Z", "contributors": [ - "MakarovDs777" + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/invalid_right_hand_side_instanceof_operand": { - "modified": "2020-03-12T19:48:41.158Z", + "Web/JavaScript/Reference/Global_Objects/String/substr": { + "modified": "2020-10-15T21:31:19.515Z", "contributors": [ - "MakarovDs777" + "art-gur", + "lugovov", + "Halkyon", + "fscholz", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/is_not_iterable": { - "modified": "2020-03-12T19:48:36.606Z", + "Web/JavaScript/Reference/Global_Objects/String/substring": { + "modified": "2019-03-23T23:06:24.574Z", "contributors": [ - "MakarovDs777" + "Barkhat26", + "Mingun" ] }, - "Web/JavaScript/Reference/Errors/Переменные_скрывают_аргумент": { - "modified": "2020-03-12T19:48:55.415Z", + "Web/JavaScript/Reference/Global_Objects/String/sup": { + "modified": "2019-03-23T23:06:59.702Z", "contributors": [ - "MakarovDs777" + "Mingun" ] }, - "Web/JavaScript/Reference/Functions": { - "modified": "2020-03-12T19:39:49.358Z", + "Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase": { + "modified": "2019-03-23T23:06:20.649Z", "contributors": [ - "KoS57", - "nikbelikov", - "SmogHard", - "forestbird", - "teoli", - "dtretyakov" + "Mingun" ] }, - "Web/JavaScript/Reference/Functions/Arrow_functions": { - "modified": "2020-10-15T21:31:20.608Z", + "Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase": { + "modified": "2019-03-23T23:06:18.129Z", "contributors": [ - "MerkUriy", - "iFeltz", - "kliuchyk", - "kkxley", - "coxdn", - "Sajag", - "animhotep", - "vibecode", - "Neiromaster", - "Siteograf", - "TotalAMD", - "bskydive", - "seriouslyfluffy", - "dst", - "vitya-ne", - "theViktor1990", - "uleming", - "kutase123", - "pashutk", - "dtretyakov" + "Mingun" ] }, - "Web/JavaScript/Reference/Functions/Default_parameters": { - "modified": "2020-10-15T21:31:19.263Z", + "Web/JavaScript/Reference/Global_Objects/String/toLowerCase": { + "modified": "2019-03-23T23:06:20.814Z", "contributors": [ - "torbasow", - "ic8550", - "ekirpichyov", - "SphinxKnight", - "I-O", - "esusekov", - "dtretyakov" + "Mingun" ] }, - "Web/JavaScript/Reference/Functions/Rest_parameters": { - "modified": "2020-11-24T01:31:54.419Z", + "Web/JavaScript/Reference/Global_Objects/String/toSource": { + "modified": "2019-03-23T23:06:17.942Z", "contributors": [ - "almaceleste", - "CLoud-Maker", - "ekirpichyov", - "jt3k", - "IlyaMokin", - "forestbird", - "dtretyakov", - "fscholz", - "EgorSinitcin" + "Mingun" ] }, - "Web/JavaScript/Reference/Functions/arguments": { - "modified": "2020-10-15T21:34:47.356Z", + "Web/JavaScript/Reference/Global_Objects/String/toString": { + "modified": "2019-03-23T23:06:15.157Z", "contributors": [ - "sashakrauzer", - "Ziserman", - "boxa6", - "dima74", - "KTatyana", - "Olovyanch", - "uleming", - "BychekRU", - "fscholz" + "Mingun" ] }, - "Web/JavaScript/Reference/Functions/arguments/callee": { - "modified": "2020-03-12T19:44:41.002Z", + "Web/JavaScript/Reference/Global_Objects/String/toUpperCase": { + "modified": "2019-03-23T23:06:22.989Z", "contributors": [ - "madsps", - "lkazberova", - "In4in" + "Mingun" ] }, - "Web/JavaScript/Reference/Functions/arguments/length": { - "modified": "2020-03-12T19:41:22.682Z", + "Web/JavaScript/Reference/Global_Objects/String/valueOf": { + "modified": "2019-05-17T04:11:09.851Z", "contributors": [ - "evgenevna22", - "BychekRU" + "dankochetov", + "Mingun" ] }, - "Web/JavaScript/Reference/Functions/get": { - "modified": "2020-10-15T21:43:29.042Z", + "Web/JavaScript/Reference/Global_Objects/Symbol": { + "modified": "2020-10-15T21:30:42.254Z", "contributors": [ - "ankormoreankor", - "WinterSilence", - "YozhEzhi", - "ipoluhin", - "metelskiy", - "kukuruznik04", - "ArtyomGilevich", - "andrey-gnl", - "pierreneter", - "etokareva" + "mux-mux", + "boxa6", + "pk.prog", + "smurf", + "neutral", + "schyzoo" ] }, - "Web/JavaScript/Reference/Functions/set": { - "modified": "2020-10-15T21:49:47.173Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/@@toPrimitive": { + "modified": "2020-10-15T22:24:20.085Z", "contributors": [ - "SerzN1", - "severin-d", - "PaulineNemchak", - "serzero2007", - "d4rkm3z" + "faramozzayw" ] }, - "Web/JavaScript/Reference/Functions/Определиние_методов": { - "modified": "2020-03-12T19:41:39.567Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/for": { + "modified": "2019-03-23T22:50:59.073Z", "contributors": [ "SphinxKnight", - "sergeymakoveev", - "BatenkovT" + "neutral" ] }, - "Web/JavaScript/Reference/Global_Objects": { - "modified": "2020-03-12T19:36:07.217Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance": { + "modified": "2020-10-15T21:56:25.834Z", "contributors": [ - "AynurShauerman", - "InoY", - "akrom123", - "Mingun", - "teoli", - "pashak" + "boxa6", + "vitaliylag", + "shlangus" ] }, - "Web/JavaScript/Reference/Global_Objects/Array": { - "modified": "2020-10-15T21:21:43.377Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable": { + "modified": "2019-03-23T22:10:03.691Z", "contributors": [ - "wbamberg", - "geek10010", - "rinbik", - "dima74", - "Yumeiro", - "superpuper32", - "kdex", - "terranisu", - "Mingun", - "teoli", - "yakovlevigorek", - "icw82", - "BedyNN", - "dbruant" + "Samotugo" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/@@iterator": { - "modified": "2019-03-23T23:03:21.064Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/iterator": { + "modified": "2019-03-23T22:50:51.621Z", "contributors": [ "SphinxKnight", - "Mingun" + "neutral" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/@@species": { - "modified": "2020-10-15T22:06:58.667Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/keyFor": { + "modified": "2020-10-15T21:50:47.387Z", "contributors": [ - "DwarfMason" + "boxa6", + "nakhodkiin", + "Ohar" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/@@unscopables": { - "modified": "2020-10-15T22:00:26.446Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/match": { + "modified": "2019-03-23T22:50:55.400Z", "contributors": [ - "fax1ty" + "SphinxKnight", + "neutral" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/Reduce": { - "modified": "2020-10-15T21:28:31.597Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/replace": { + "modified": "2019-04-02T08:34:58.523Z", "contributors": [ - "sborenko", - "nikolai-shabalin", - "likerRr", - "Ant-VAV", - "Metotron", - "fxrbfg", - "Ohar", - "slavablind91", - "AliaksandrSith", - "Riim", - "Mingun", - "NikitaK", - "Anton_Arestov" + "shlangus" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/concat": { - "modified": "2020-10-15T21:29:20.106Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/search": { + "modified": "2020-10-15T22:00:25.665Z", "contributors": [ - "rookhive", - "nikolai-shabalin", - "AlekseiTarasov", - "KTatyana", - "Mingun" + "fax1ty" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/copyWithin": { - "modified": "2019-03-23T23:11:15.223Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/species": { + "modified": "2019-03-23T22:50:55.253Z", "contributors": [ - "burashka", - "Mingun" + "nakhodkiin", + "pk.prog", + "neutral" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/entries": { - "modified": "2019-09-20T08:30:17.656Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/split": { + "modified": "2020-10-15T22:05:40.003Z", "contributors": [ - "burashka", - "Mingun" + "0x0071" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/every": { - "modified": "2020-10-15T21:22:11.253Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive": { + "modified": "2020-10-15T21:55:06.866Z", "contributors": [ - "VovanR", - "YozhEzhi", - "burashka", - "Mingun", - "teoli", - "hel-galdr" + "boxa6", + "nakhodkiin", + "gibson" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/fill": { - "modified": "2020-10-15T21:29:20.455Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag": { + "modified": "2020-10-15T22:22:55.953Z", "contributors": [ - "iandr", - "nakhodkiin", - "nikolai-shabalin", - "alt-j", - "dima74", - "burashka", - "Mingun" + "vkorzhova" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/filter": { - "modified": "2020-10-15T21:29:22.486Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/unscopables": { + "modified": "2020-10-15T22:00:25.901Z", "contributors": [ - "almaceleste", - "Darth-pioner", - "nikolai-shabalin", - "Sinfiotli", - "burashka", - "Aleksej", - "Mingun" + "fax1ty" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/find": { - "modified": "2020-10-15T21:29:21.073Z", + "Web/JavaScript/Reference/Global_Objects/Symbol/valueOf": { + "modified": "2019-03-23T22:50:49.481Z", "contributors": [ - "tcheburator", - "drunk", - "matveyson", - "JorJeG", - "Metotron", - "sv-kozlov", - "OksanaKaragicheva", - "AlexeyMM", - "burashka", - "torbasow", + "SphinxKnight", + "neutral" + ] + }, + "Web/JavaScript/Reference/Global_Objects/SyntaxError": { + "modified": "2019-03-23T23:08:27.309Z", + "contributors": [ + "VladimirDeminenko", "Mingun" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/findIndex": { - "modified": "2020-10-15T21:29:19.823Z", + "Web/JavaScript/Reference/Global_Objects/TypeError": { + "modified": "2020-10-15T21:30:28.885Z", "contributors": [ - "zhvirblis", - "S-le", - "burashka", + "Roman-Kosov", "Mingun" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/flat": { - "modified": "2020-12-06T17:04:44.757Z", + "Web/JavaScript/Reference/Global_Objects/TypedArray": { + "modified": "2020-10-15T21:48:29.544Z", "contributors": [ - "PaulineNemchak", - "ekirpichyov", - "geekjob", - "Akh-rman", - "Fellzo", - "vjachet" + "pk.prog", + "arai" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/flatMap": { - "modified": "2020-10-15T22:10:06.829Z", + "Web/JavaScript/Reference/Global_Objects/TypedArray/@@species": { + "modified": "2019-03-23T22:25:44.388Z", "contributors": [ - "dsrtF0x-git", - "InoY", - "taxidermic", - "Akh-rman", - "eof273", - "etroynov", - "dood" + "pk.prog" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/forEach": { - "modified": "2020-10-15T21:21:41.065Z", + "Web/JavaScript/Reference/Global_Objects/TypedArray/BYTES_PER_ELEMENT": { + "modified": "2019-03-23T22:25:40.817Z", "contributors": [ - "almaceleste", - "nikolai-shabalin", - "JorJeG", - "paulvoloschuk", - "kusonka", - "Mingun", - "Ajooluz", - "teoli", - "dunmaksim", - "IgorKlopov", - "ipetropolsky", - "John Wehin" + "pk.prog" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/from": { - "modified": "2020-10-15T21:28:50.020Z", + "Web/JavaScript/Reference/Global_Objects/TypedArray/join": { + "modified": "2019-03-23T22:26:41.183Z", "contributors": [ - "ekirpichyov", - "drwatson1", - "JorJeG", - "kdex", - "Sergey.Stolnikov", - "burashka", - "Mingun" + "pk.prog" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/includes": { - "modified": "2020-10-15T21:30:12.634Z", + "Web/JavaScript/Reference/Global_Objects/TypedArray/set": { + "modified": "2019-03-23T22:28:36.546Z", "contributors": [ - "Yialo", - "Hronex", - "nikolai-shabalin", - "dima74", - "Setol", - "burashka", - "jwhitlock", - "dema", - "Mingun", - "fscholz" + "Mototroller", + "dickclaus" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/indexOf": { - "modified": "2020-10-15T21:29:27.163Z", + "Web/JavaScript/Reference/Global_Objects/URIError": { + "modified": "2019-03-23T23:08:25.974Z", "contributors": [ - "zhvirblis", - "vlad-vorontsov", - "burashka", "Mingun" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/isArray": { - "modified": "2020-10-15T21:29:00.463Z", + "Web/JavaScript/Reference/Global_Objects/Uint16Array": { + "modified": "2020-10-15T21:59:37.871Z", "contributors": [ - "dudd1ts", - "JorJeG", - "Mingun", - "ivan_k" + "pk.prog" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/join": { - "modified": "2020-10-15T21:29:17.685Z", + "Web/JavaScript/Reference/Global_Objects/Uint32Array": { + "modified": "2020-10-15T21:59:38.707Z", "contributors": [ - "pk.prog", - "AlexeyOm", - "IslamA", - "Radiansz", - "mshykov", - "Mingun", - "teoli", - "Ajooluz" + "pk.prog" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/keys": { - "modified": "2020-10-15T21:29:27.000Z", + "Web/JavaScript/Reference/Global_Objects/Uint8Array": { + "modified": "2020-10-15T21:59:38.914Z", "contributors": [ - "nikolai-shabalin", - "burashka", - "Mingun" + "MuradAz", + "pk.prog" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf": { - "modified": "2020-10-15T21:29:27.046Z", + "Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray": { + "modified": "2019-03-18T21:10:47.382Z", "contributors": [ - "nikolai-shabalin", - "burashka", - "Mingun" + "InoY", + "tz4678" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/length": { - "modified": "2020-10-15T21:29:17.654Z", + "Web/JavaScript/Reference/Global_Objects/WeakMap": { + "modified": "2020-10-15T21:33:46.571Z", "contributors": [ - "ierehon1905", - "smlkA", - "Roman-Kosov", - "JorJeG", - "Mingun" + "oleksandrstarov", + "altpoint", + "lexxl", + "YozhEzhi", + "kan.a", + "icw82", + "zamuka", + "RumyantsevMichael", + "casfcitizen", + "restrry", + "shvaikalesh", + "hellboy81" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/map": { - "modified": "2020-10-15T21:25:02.588Z", + "Web/JavaScript/Reference/Global_Objects/WeakMap/clear": { + "modified": "2019-03-23T22:45:00.856Z", "contributors": [ - "Dvash", - "nikolai-shabalin", - "JorJeG", - "ZeroUnderscoreOu", - "Jemdo", - "torbasow", - "Mingun", "teoli", - "ilyamilosevic", - "Vhornets" + "WispProxy", + "casfcitizen" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/of": { - "modified": "2020-10-15T21:29:22.065Z", + "Web/JavaScript/Reference/Global_Objects/WeakMap/delete": { + "modified": "2019-03-23T22:44:55.757Z", "contributors": [ - "ekirpichyov", - "Natalya_Surikova", - "burashka", - "Mingun" + "SphinxKnight", + "casfcitizen" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/pop": { - "modified": "2020-10-15T21:29:28.268Z", + "Web/JavaScript/Reference/Global_Objects/WeakMap/get": { + "modified": "2019-03-23T22:44:52.022Z", "contributors": [ - "art-gur", - "KTatyana", - "torbasow", - "Mingun" + "SphinxKnight", + "casfcitizen" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/prototype": { - "modified": "2020-10-15T21:23:46.631Z", + "Web/JavaScript/Reference/Global_Objects/WeakMap/has": { + "modified": "2019-03-23T22:44:53.494Z", "contributors": [ - "boxa6", - "Mingun", - "teoli", - "BedyNN" + "SphinxKnight", + "casfcitizen" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/push": { - "modified": "2020-10-15T21:29:29.342Z", + "Web/JavaScript/Reference/Global_Objects/WeakMap/set": { + "modified": "2019-03-23T22:44:54.866Z", "contributors": [ - "art-gur", - "roma-derski", - "Mingun" + "SphinxKnight", + "casfcitizen" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/reduceRight": { - "modified": "2019-03-23T23:10:37.299Z", + "Web/JavaScript/Reference/Global_Objects/WeakSet": { + "modified": "2020-10-15T21:46:04.634Z", "contributors": [ - "Mingun" + "YozhEzhi", + "stRavens", + "fscholz" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/reverse": { - "modified": "2020-10-15T21:29:30.196Z", + "Web/JavaScript/Reference/Global_Objects/WeakSet/add": { + "modified": "2020-10-15T21:46:05.423Z", "contributors": [ - "nikolai-shabalin", - "Mingun" + "YozhEzhi", + "stRavens" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/shift": { - "modified": "2019-03-18T21:11:15.103Z", + "Web/JavaScript/Reference/Global_Objects/WeakSet/delete": { + "modified": "2019-03-23T22:33:36.783Z", "contributors": [ - "UriShlomov", - "Mingun" + "stRavens" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/slice": { - "modified": "2020-11-30T07:23:00.434Z", + "Web/JavaScript/Reference/Global_Objects/WeakSet/has": { + "modified": "2019-03-23T22:33:37.092Z", "contributors": [ - "chmsv", - "rulevadim", - "nikolai-shabalin", - "GraceAredel", - "Ollemesh", - "kdex", - "xaosxaos", - "Mol4ok", - "BychekRU", - "kroleg", - "Mingun" + "stRavens" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/some": { - "modified": "2020-10-15T21:22:10.601Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly": { + "modified": "2019-03-23T22:09:24.539Z", "contributors": [ - "ekirpichyov", - "VovanR", - "zhvirblis", - "Mingun", - "teoli", - "hel-galdr" + "warsan", + "Fingasss", + "curdwithraisins" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/sort": { - "modified": "2020-11-19T16:34:13.947Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Table": { + "modified": "2020-10-15T22:28:03.728Z", "contributors": [ - "deepdarkness", - "YozhEzhi", - "dmivtr", - "JorJeG", - "Denis-Yeromenko", - "borm", - "vlad-vorontsov", - "grabus", - "Mingun" + "amuzalevskiy" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WebAssembly/compile": { + "modified": "2020-10-15T22:05:22.747Z", + "contributors": [ + "warsan" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/splice": { - "modified": "2020-12-02T07:24:33.321Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming": { + "modified": "2020-10-15T22:05:24.687Z", "contributors": [ - "inva8de", - "Eskinnikita", - "zhvirblis", - "dimaqw", - "JohnnyJustDo", - "mshipov", - "terranisu", - "Mingun" + "warsan" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/toLocaleString": { - "modified": "2019-03-23T23:10:25.595Z", + "Web/JavaScript/Reference/Global_Objects/decodeURI": { + "modified": "2020-10-15T21:36:41.028Z", "contributors": [ - "IvanMorkva", - "Mingun" + "boxa6", + "KTatyana", + "dimon.durak" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/toSource": { - "modified": "2019-03-23T23:10:31.696Z", + "Web/JavaScript/Reference/Global_Objects/decodeURIComponent": { + "modified": "2020-10-15T21:32:41.332Z", "contributors": [ - "Mingun" + "boxa6", + "KTatyana", + "hellboy81" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/toString": { - "modified": "2019-09-15T17:12:05.770Z", + "Web/JavaScript/Reference/Global_Objects/encodeURI": { + "modified": "2020-10-15T21:32:41.734Z", "contributors": [ - "Glazomer", - "Ilya33", - "Mingun" + "CoruNethron", + "boxa6", + "gvammer", + "RuslanKurtjanyk", + "BychekRU", + "johniek" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/unshift": { - "modified": "2020-10-15T21:29:32.715Z", + "Web/JavaScript/Reference/Global_Objects/encodeURIComponent": { + "modified": "2020-03-12T19:42:09.083Z", "contributors": [ - "muxmux.ryzhinskiy", - "YozhEzhi", - "Mingun" + "ivanson", + "SlavaJan", + "alx-khramov", + "redveronika", + "BychekRU" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/values": { - "modified": "2019-03-23T23:07:58.684Z", + "Web/JavaScript/Reference/Global_Objects/escape": { + "modified": "2020-03-12T19:42:22.847Z", "contributors": [ - "nakhodkiin", - "burashka", - "Mingun" + "L-st" ] }, - "Web/JavaScript/Reference/Global_Objects/ArrayBuffer": { - "modified": "2019-04-21T10:54:59.612Z", + "Web/JavaScript/Reference/Global_Objects/eval": { + "modified": "2020-10-15T21:36:50.892Z", "contributors": [ - "solncebro", - "Bargamut", - "PaulShestakov", - "pashutk" + "teleskop150750", + "rookhive", + "nochnoy", + "boxa6", + "Kassaila", + "Mumin0v", + "Stejok", + "lazy-code", + "Kesantielu", + "pankov", + "BychekRU", + "KTatyana", + "Bogdan92" ] }, - "Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView": { - "modified": "2020-10-15T22:21:50.519Z", + "Web/JavaScript/Reference/Global_Objects/globalThis": { + "modified": "2020-10-15T22:22:38.335Z", "contributors": [ - "shmel3" + "almaceleste", + "ekirpichyov" ] }, - "Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice": { - "modified": "2019-03-23T22:15:54.709Z", + "Web/JavaScript/Reference/Global_Objects/isFinite": { + "modified": "2020-10-15T21:34:22.861Z", "contributors": [ - "lazyexpert" + "boxa6", + "pk.prog", + "keepon99", + "RinatMullayanov" ] }, - "Web/JavaScript/Reference/Global_Objects/AsyncFunction": { - "modified": "2019-03-23T22:09:52.218Z", + "Web/JavaScript/Reference/Global_Objects/isNaN": { + "modified": "2020-10-15T21:18:00.962Z", "contributors": [ - "Saiberbest" + "boxa6", + "deadem", + "arogachev", + "DrTantal", + "toxahak", + "igor4949i", + "torbasow", + "SphinxKnight", + "fscholz", + "Troynov", + "teoli", + "Dionys", + "Sheppy" ] }, - "Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype": { - "modified": "2020-10-15T22:21:51.709Z", + "Web/JavaScript/Reference/Global_Objects/null": { + "modified": "2020-10-15T21:29:52.036Z", "contributors": [ - "AliaksandrZahorski" + "yar85", + "YozhEzhi", + "boxa6", + "SphinxKnight", + "Mingun" ] }, - "Web/JavaScript/Reference/Global_Objects/Atomics": { - "modified": "2019-03-23T22:09:35.332Z", + "Web/JavaScript/Reference/Global_Objects/parseFloat": { + "modified": "2020-10-15T21:31:40.524Z", "contributors": [ - "Kazakoff", - "Exseption", - "curdwithraisins" + "boxa6", + "iota77", + "zhvirblis", + "pk.prog", + "KTatyana", + "schoonc", + "PC-Contra" ] }, - "Web/JavaScript/Reference/Global_Objects/Atomics/add": { - "modified": "2019-03-23T22:09:42.443Z", + "Web/JavaScript/Reference/Global_Objects/parseInt": { + "modified": "2020-10-15T21:31:24.544Z", "contributors": [ - "curdwithraisins" + "boxa6", + "pk.prog", + "Natalya_Surikova", + "KTatyana", + "Acknowhow", + "oshilan", + "raspberry59" ] }, - "Web/JavaScript/Reference/Global_Objects/Atomics/sub": { - "modified": "2019-03-23T22:09:32.642Z", + "Web/JavaScript/Reference/Global_Objects/undefined": { + "modified": "2020-10-15T21:29:55.851Z", "contributors": [ - "curdwithraisins" + "almaceleste", + "boxa6", + "YozhEzhi", + "sasd97", + "SphinxKnight", + "Mingun" ] }, - "Web/JavaScript/Reference/Global_Objects/BigInt": { - "modified": "2020-10-15T22:19:09.504Z", + "Web/JavaScript/Reference/Global_Objects/unescape": { + "modified": "2020-03-12T19:40:42.425Z", "contributors": [ - "art-gur", - "bm12", - "sh7dm", - "3bl3gamer", - "Anna-Myzukina" + "Mishman" ] }, - "Web/JavaScript/Reference/Global_Objects/BigInt/asIntN": { - "modified": "2020-10-15T22:20:36.621Z", + "Web/JavaScript/Reference/Global_Objects/uneval": { + "modified": "2020-10-15T21:32:06.154Z", "contributors": [ - "faramozzayw" + "boxa6", + "teoli", + "maxbarbul", + "fscholz", + "Correcter" ] }, - "Web/JavaScript/Reference/Global_Objects/BigInt/asUintN": { - "modified": "2020-10-15T22:31:22.153Z", + "Web/JavaScript/Reference/Iteration_protocols": { + "modified": "2020-03-12T19:40:23.617Z", "contributors": [ - "ascker0087" + "Ostanioni", + "AliaksandrZahorski", + "nikolai-shabalin", + "SphinxKnight", + "asaskevich", + "petanisimov", + "fscholz", + "hindmost" ] }, - "Web/JavaScript/Reference/Global_Objects/Boolean": { - "modified": "2019-07-22T13:06:53.919Z", + "Web/JavaScript/Reference/Lexical_grammar": { + "modified": "2020-10-09T04:21:50.644Z", "contributors": [ - "wbamberg", - "Denis-Yeromenko", - "villager", - "Aleksej", - "AlexChuev", + "demid.kopan", + "salaiyuliya", + "almaceleste", + "uxenus", + "Vukto", + "maxno62", + "Pandemoniumus", + "AlexeyVasilievE", + "glum-psyche", + "ValdemarTerte", + "kdex", + "pk.prog", + "Frenk1", + "MichaelBag", + "gremlinLee" + ] + }, + "Web/JavaScript/Reference/Operators": { + "modified": "2020-03-12T19:38:03.910Z", + "contributors": [ + "the-toxic", + "pk.prog", + "SphinxKnight", + "teoli", "Mingun", - "Troynov" + "ethertank" ] }, - "Web/JavaScript/Reference/Global_Objects/Boolean/prototype": { - "modified": "2019-03-23T23:08:22.785Z", + "Web/JavaScript/Reference/Operators/Addition": { + "modified": "2020-10-15T22:31:44.228Z", "contributors": [ - "Mingun" + "DarkExodusXX", + "Lifamen" ] }, - "Web/JavaScript/Reference/Global_Objects/Boolean/toSource": { - "modified": "2019-03-23T23:08:31.932Z", + "Web/JavaScript/Reference/Operators/Addition_assignment": { + "modified": "2020-10-15T22:33:40.126Z", "contributors": [ - "Mingun" + "DarkExodusXX" ] }, - "Web/JavaScript/Reference/Global_Objects/Boolean/toString": { - "modified": "2019-03-23T23:08:25.305Z", + "Web/JavaScript/Reference/Operators/Bitwise_AND": { + "modified": "2020-10-19T04:55:04.550Z", + "contributors": [ + "elkabelaya" + ] + }, + "Web/JavaScript/Reference/Operators/Decrement": { + "modified": "2020-10-15T22:35:06.680Z", "contributors": [ - "Mingun" + "dikovinki" ] }, - "Web/JavaScript/Reference/Global_Objects/Boolean/valueOf": { - "modified": "2019-03-23T23:08:35.008Z", + "Web/JavaScript/Reference/Operators/Destructuring_assignment": { + "modified": "2019-03-18T20:41:31.882Z", "contributors": [ - "Mingun" + "zziger", + "Beliarh", + "InoY", + "kdex", + "shapkarin", + "he11b0rn", + "wa-Nadoo", + "e-omo", + "y.ivashchenko", + "SphinxKnight", + "dtretyakov" ] }, - "Web/JavaScript/Reference/Global_Objects/DataView": { - "modified": "2020-10-15T22:07:01.854Z", + "Web/JavaScript/Reference/Operators/Nullish_coalescing_operator": { + "modified": "2020-11-06T20:31:05.880Z", "contributors": [ - "MuradAz" + "qwerty.wasd.dev", + "notacircle" ] }, - "Web/JavaScript/Reference/Global_Objects/DataView/setInt16": { - "modified": "2020-10-15T22:26:51.553Z", + "Web/JavaScript/Reference/Operators/Object_initializer": { + "modified": "2020-03-12T19:46:20.455Z", "contributors": [ - "A-Zalt" + "EduardBedratyi", + "Nymph", + "severn101", + "curdwithraisins" ] }, - "Web/JavaScript/Reference/Global_Objects/Date": { - "modified": "2020-10-15T21:21:23.873Z", + "Web/JavaScript/Reference/Operators/Operator_Precedence": { + "modified": "2020-06-21T17:36:11.552Z", "contributors": [ - "Lutsko.Aleksandr", - "sashakrauzer", - "denis_dubovitskiy", - "prinze77", - "boxa6", - "wbamberg", - "MerkUriy", - "dvapelnik", - "lanedis", - "Mingun", - "zasipin", - "liloi", + "Yialo", + "nakhodkiin", + "synth", + "Ihor92", + "BychekRU", + "Aleksej", + "fscholz", + "mcmimik", "teoli", - "Funkill", - "bvc3at" + "TotalAMD", + "hazestalker" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/UTC": { - "modified": "2020-10-15T21:30:36.314Z", + "Web/JavaScript/Reference/Operators/Optional_chaining": { + "modified": "2020-10-15T22:22:53.487Z", "contributors": [ - "art-gur", - "Kogoruhn", - "Mingun" + "InoY", + "rookhive", + "Kassaila", + "Dimon24021993" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getDate": { - "modified": "2020-11-23T09:29:17.949Z", + "Web/JavaScript/Reference/Operators/Property_Accessors": { + "modified": "2020-11-28T14:23:33.816Z", "contributors": [ - "Thr0TT1e", - "YozhEzhi", - "Mingun" + "ialexi-bl", + "injashkin", + "sbadulin", + "karatheodory", + "BychekRU" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getDay": { - "modified": "2020-11-23T09:40:35.418Z", + "Web/JavaScript/Reference/Operators/Spread_syntax": { + "modified": "2020-10-15T22:09:59.030Z", "contributors": [ - "Thr0TT1e", - "YozhEzhi", - "pushandplay", - "Mingun" + "Next-Ra", + "khikmat1970", + "s0da", + "AliaksandrZahorski", + "svezr", + "Ostanioni", + "Acrom7", + "R-Oscar", + "DenisIgnatchenko", + "dev1am", + "ue4prog" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getFullYear": { - "modified": "2020-11-23T09:25:53.294Z", + "Web/JavaScript/Reference/Operators/async_function": { + "modified": "2020-03-12T19:46:03.207Z", "contributors": [ - "Thr0TT1e", - "YozhEzhi", - "Mingun" + "utlov", + "myscode", + "nakhodkiin", + "ahtohbi4" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getHours": { - "modified": "2020-11-23T09:42:06.437Z", + "Web/JavaScript/Reference/Operators/await": { + "modified": "2020-03-12T19:46:19.108Z", "contributors": [ - "Thr0TT1e", - "YozhEzhi", - "Mingun" + "Ignat", + "nakhodkiin", + "Vladimir-Vinogradov", + "matvey-b", + "XaveScor", + "redishko" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds": { - "modified": "2020-11-23T09:43:47.925Z", + "Web/JavaScript/Reference/Operators/class": { + "modified": "2020-10-07T05:22:57.052Z", "contributors": [ - "Thr0TT1e", - "Mingun" + "nikolasmelui", + "utlov", + "aliaksandr-s" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getMinutes": { - "modified": "2020-11-23T09:46:11.501Z", + "Web/JavaScript/Reference/Operators/delete": { + "modified": "2020-03-12T19:38:01.140Z", "contributors": [ - "Thr0TT1e", - "Mingun" + "tarasovAG", + "nurbek-ab", + "fscholz", + "teoli", + "nurbek.ab" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getMonth": { - "modified": "2020-11-23T09:48:49.474Z", + "Web/JavaScript/Reference/Operators/function": { + "modified": "2020-10-15T21:29:24.840Z", "contributors": [ - "Thr0TT1e", - "Mingun" + "utlov", + "aleksandrpnshkn", + "severyanov", + "KTatyana", + "SphinxKnight", + "teoli", + "AlexyAV" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getSeconds": { - "modified": "2020-11-23T09:50:13.502Z", + "Web/JavaScript/Reference/Operators/function*": { + "modified": "2020-03-12T19:43:34.797Z", "contributors": [ - "Thr0TT1e", - "Mingun" + "utlov", + "KTatyana", + "nurbek-ab" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getTime": { - "modified": "2020-11-23T10:07:21.665Z", + "Web/JavaScript/Reference/Operators/in": { + "modified": "2020-10-15T21:34:23.027Z", "contributors": [ - "Thr0TT1e", - "YozhEzhi", - "Mingun" + "ekirpichyov", + "utlov", + "Nvisual", + "vitaliylag", + "Natalya_Surikova", + "Frenk1" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset": { - "modified": "2019-03-23T23:08:01.324Z", + "Web/JavaScript/Reference/Operators/instanceof": { + "modified": "2020-10-15T21:42:40.346Z", "contributors": [ - "Mingun" + "iGanza429", + "dima74", + "vitaliylag", + "lenkasoft", + "c01nd01r", + "spmpl" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getUTCDate": { - "modified": "2019-03-23T23:07:51.614Z", + "Web/JavaScript/Reference/Operators/new": { + "modified": "2020-03-12T19:42:17.777Z", "contributors": [ - "Mingun" + "mikhail.makarov", + "msherstobitow", + "FlashbangSW", + "pk.prog", + "Guria", + "svarnoi420", + "mazhuravlev" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getUTCDay": { - "modified": "2019-03-23T23:07:47.611Z", + "Web/JavaScript/Reference/Operators/new.target": { + "modified": "2020-03-12T19:42:44.140Z", "contributors": [ - "Mingun" + "bakugod", + "vitaliylag", + "Isk1n", + "uleming" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear": { - "modified": "2019-03-23T23:07:46.134Z", + "Web/JavaScript/Reference/Operators/super": { + "modified": "2020-11-02T05:32:18.854Z", "contributors": [ - "Mingun" + "ITheCorgi", + "almaceleste", + "boxa6", + "chuckis", + "YozhEzhi", + "Eugene", + "Renay", + "Axepuff", + "rinbik", + "quassnoi", + "sgrogov", + "adamgrey28", + "loki2d", + "spmpl", + "uleming" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getUTCHours": { - "modified": "2019-03-23T23:07:53.266Z", + "Web/JavaScript/Reference/Operators/this": { + "modified": "2020-10-15T21:34:17.291Z", "contributors": [ - "Mingun" + "almaceleste", + "dmarkin", + "HermesC", + "smlkA", + "JS_Johny", + "marinazareka", + "sbadulin", + "Stejok", + "aprostya", + "dChunikhin", + "DayFan", + "olegkarpovich", + "alexfromvl", + "Viktoria_Slesarchuk", + "eXukraine", + "AlexO", + "AliaksandrSith", + "AlexKhram", + "vovek", + "wertlex", + "Mary_Gorgol" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds": { - "modified": "2019-03-23T23:07:39.074Z", + "Web/JavaScript/Reference/Operators/typeof": { + "modified": "2020-10-15T21:29:57.988Z", "contributors": [ - "Mingun" + "Bonerdelli", + "dima74", + "Sergey.Vdovareize", + "Ohar", + "SphinxKnight", + "teoli", + "kvantor" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes": { - "modified": "2019-03-23T23:07:42.061Z", + "Web/JavaScript/Reference/Operators/void": { + "modified": "2020-03-12T19:40:33.655Z", "contributors": [ - "Mingun" + "artskar", + "hlomzik", + "AlexChuev" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth": { - "modified": "2019-03-23T23:07:45.367Z", + "Web/JavaScript/Reference/Operators/yield": { + "modified": "2020-11-07T03:00:56.468Z", "contributors": [ - "Mingun" + "antonzahariev", + "ekirpichyov", + "YozhEzhi", + "dtretyakov" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds": { - "modified": "2019-03-23T23:07:43.174Z", + "Web/JavaScript/Reference/Operators/yield*": { + "modified": "2020-10-10T05:41:53.806Z", "contributors": [ - "Mingun" + "ialexi-bl", + "utlov", + "d4rkm3z" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/getYear": { - "modified": "2020-10-15T21:30:40.324Z", + "Web/JavaScript/Reference/Statements": { + "modified": "2020-03-12T19:38:08.960Z", "contributors": [ - "YozhEzhi", - "Mingun" + "SphinxKnight", + "teoli", + "Mingun", + "trevorh" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/now": { - "modified": "2020-10-15T21:30:36.867Z", + "Web/JavaScript/Reference/Statements/Empty": { + "modified": "2020-04-12T07:22:12.597Z", "contributors": [ - "art-gur", - "Mingun" + "arnoldovich", + "otj40", + "nakhodkiin", + "BychekRU" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/parse": { - "modified": "2019-10-24T09:44:34.488Z", + "Web/JavaScript/Reference/Statements/async_function": { + "modified": "2020-10-15T21:52:51.275Z", "contributors": [ - "alx-khramov", - "Mingun" + "AppleAlex", + "nikolai-shabalin", + "parusev", + "sazhnevdunice", + "mmameko", + "epodivilov", + "rsvato", + "glowlh", + "torbasow", + "nakhodkiin", + "BondarenkoAlex", + "tcheburator", + "curdwithraisins" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/prototype": { - "modified": "2020-02-07T02:50:13.993Z", + "Web/JavaScript/Reference/Statements/break": { + "modified": "2020-03-12T19:39:49.381Z", "contributors": [ - "alexbs", - "deepdarkness", - "Mingun" + "ConstantineZz", + "SphinxKnight", + "4eb0da" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setDate": { - "modified": "2020-10-15T21:30:41.423Z", + "Web/JavaScript/Reference/Statements/class": { + "modified": "2020-10-07T05:30:01.345Z", "contributors": [ - "YozhEzhi", - "webkumo", - "Mingun" + "nikolasmelui", + "torbasow", + "utlov", + "curdwithraisins" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setFullYear": { - "modified": "2019-03-23T23:07:39.254Z", + "Web/JavaScript/Reference/Statements/const": { + "modified": "2020-10-15T21:30:33.647Z", "contributors": [ - "kirilloid", - "Mingun" + "DASenkiv", + "pepelsbey", + "pk.prog", + "torbasow", + "WispProxy", + "Grumvol", + "xfg", + "gibson", + "crvst", + "SphinxKnight", + "KiraAndMaxim" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setHours": { - "modified": "2019-03-23T23:07:43.801Z", + "Web/JavaScript/Reference/Statements/continue": { + "modified": "2020-04-11T02:20:58.132Z", "contributors": [ - "Mingun" + "pefbrute", + "alextretyak", + "SphinxKnight", + "4eb0da" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds": { - "modified": "2019-03-23T23:07:39.901Z", + "Web/JavaScript/Reference/Statements/debugger": { + "modified": "2020-03-12T19:45:32.750Z", "contributors": [ - "Mingun" + "Svetzayats", + "david-baghdasaryan", + "paratagas" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setMinutes": { - "modified": "2019-03-23T23:07:42.239Z", + "Web/JavaScript/Reference/Statements/do...while": { + "modified": "2020-10-15T21:50:00.301Z", "contributors": [ - "Grundy", - "Mingun" + "Kilzar", + "ekirpichyov", + "102" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setMonth": { - "modified": "2019-08-28T08:27:33.855Z", + "Web/JavaScript/Reference/Statements/export": { + "modified": "2020-10-15T21:44:56.789Z", "contributors": [ - "Mingun" + "almaceleste", + "SphinxKnight", + "ravbetsky", + "Roman-Kosov", + "marat-curious", + "maksugr", + "HaffASE", + "Checkmatez", + "maxmind", + "M1rotvorez", + "sunsetninja", + "frodomogoni", + "jeneg" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setSeconds": { - "modified": "2019-03-23T23:07:43.395Z", + "Web/JavaScript/Reference/Statements/for": { + "modified": "2020-03-12T19:40:21.266Z", "contributors": [ - "Mingun" + "farvater2", + "romankrru", + "BychekRU", + "ascheyloven" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setTime": { - "modified": "2019-03-23T23:07:49.178Z", + "Web/JavaScript/Reference/Statements/for-await...of": { + "modified": "2020-10-15T22:21:30.706Z", "contributors": [ - "Mingun" + "imciflam" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setUTCDate": { - "modified": "2019-03-23T23:07:49.535Z", + "Web/JavaScript/Reference/Statements/for...in": { + "modified": "2020-03-12T19:42:44.128Z", "contributors": [ - "Mingun" + "camelos", + "Miracle93", + "olvin-hh", + "AliaksandrZahorski", + "Jarith", + "UriShlomov", + "a1ia5", + "BychekRU" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear": { - "modified": "2019-03-23T23:07:46.690Z", + "Web/JavaScript/Reference/Statements/for...of": { + "modified": "2020-10-15T21:31:19.454Z", "contributors": [ - "Mingun" + "iacade", + "alx-khramov", + "rookhive", + "AliaksandrZahorski", + "becha", + "SphinxKnight", + "iomtt94", + "babichss", + "ZeroUnderscoreOu", + "BychekRU", + "dtretyakov" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setUTCHours": { - "modified": "2019-03-23T23:07:41.747Z", + "Web/JavaScript/Reference/Statements/function": { + "modified": "2020-10-15T21:39:37.186Z", "contributors": [ - "Mingun" + "YozhEzhi", + "4rontender", + "KTatyana", + "forestbird", + "BychekRU" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds": { - "modified": "2019-03-23T23:07:43.019Z", + "Web/JavaScript/Reference/Statements/function*": { + "modified": "2020-03-12T19:39:52.436Z", "contributors": [ - "Mingun" + "SphinxKnight", + "Sajag", + "mrOrlando", + "MaksymI", + "kdex", + "deman", + "MalkavianMax", + "BychekRU", + "dtretyakov" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes": { - "modified": "2019-03-23T23:07:52.228Z", + "Web/JavaScript/Reference/Statements/if...else": { + "modified": "2020-03-12T19:42:47.988Z", "contributors": [ - "Mingun" + "satansdeer", + "GraceAredel", + "alexbaumgertner", + "ultrinnan" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth": { - "modified": "2019-03-23T23:07:49.014Z", + "Web/JavaScript/Reference/Statements/import": { + "modified": "2020-10-15T21:32:02.235Z", "contributors": [ - "Mingun" + "Akmatworld", + "almaceleste", + "flancer64", + "Yialo", + "SphinxKnight", + "ZzDmitry", + "Reinerok", + "InoY", + "pibodi", + "torbasow", + "Ingverd", + "papadima", + "bad4iz", + "nikolaifedorov", + "maxmind", + "standy", + "vvalgis", + "sutangu", + "kurzgame" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds": { - "modified": "2019-03-23T23:07:49.949Z", + "Web/JavaScript/Reference/Statements/import.meta": { + "modified": "2020-10-15T22:22:14.576Z", "contributors": [ - "Mingun" + "Luanre" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/setYear": { - "modified": "2020-10-15T21:30:50.607Z", + "Web/JavaScript/Reference/Statements/label": { + "modified": "2020-10-15T21:30:43.430Z", "contributors": [ - "YozhEzhi", - "Mingun" + "ekirpichyov", + "SphinxKnight", + "4eb0da" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/toDateString": { - "modified": "2019-03-23T23:07:29.510Z", + "Web/JavaScript/Reference/Statements/let": { + "modified": "2020-03-12T19:38:07.887Z", "contributors": [ - "Mingun" + "DASenkiv", + "skrikl", + "rinbik", + "avernikoz", + "Stejok", + "Kostandy", + "GaidaiAndrii", + "kdex", + "Yumeiro", + "WispProxy", + "titanium-iridium", + "andbas", + "iseeyou911", + "smichrissoft", + "stek29", + "Tvortsa", + "fscholz", + "teoli", + "nurbek.ab" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/toGMTString": { - "modified": "2019-03-23T23:07:35.386Z", + "Web/JavaScript/Reference/Statements/return": { + "modified": "2020-10-15T21:38:04.879Z", "contributors": [ - "Mingun" + "ekirpichyov", + "KTatyana", + "Biosneakers", + "BychekRU", + "janemel", + "The-Raven" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/toISOString": { - "modified": "2019-03-23T23:07:33.750Z", + "Web/JavaScript/Reference/Statements/switch": { + "modified": "2020-10-15T21:31:26.209Z", "contributors": [ - "Mingun" + "almaceleste", + "alfill", + "Stejok", + "Natalya_Surikova", + "4eb0da" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/toJSON": { - "modified": "2019-03-23T23:07:37.415Z", + "Web/JavaScript/Reference/Statements/throw": { + "modified": "2020-03-12T19:39:43.115Z", "contributors": [ - "Mingun" + "albrin", + "Roovwhite", + "ZavodPodushek", + "Natalya_Surikova", + "sergey.bakaev", + "SphinxKnight", + "hellboy81" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString": { - "modified": "2019-03-18T21:14:44.198Z", + "Web/JavaScript/Reference/Statements/try...catch": { + "modified": "2020-05-24T09:50:11.525Z", "contributors": [ - "Mingun", - "teoli", - "kup" + "ialexi-bl", + "smitt14ua", + "DeekHalden", + "YaroslavSelevanov", + "illya-s", + "x1unix", + "DavidWebb", + "nikitaermishin", + "NikitaCoder" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/toLocaleString": { - "modified": "2019-04-25T06:23:31.086Z", + "Web/JavaScript/Reference/Statements/var": { + "modified": "2020-10-15T21:40:16.057Z", "contributors": [ - "Ferguse", - "Mingun" + "ekirpichyov", + "letulip", + "AlexKhram", + "shalimski", + "Saviloff" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString": { - "modified": "2019-03-23T23:07:26.983Z", + "Web/JavaScript/Reference/Statements/while": { + "modified": "2020-03-12T19:44:53.115Z", "contributors": [ - "Mingun" + "KTatyana" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/toSource": { - "modified": "2019-03-23T23:07:30.899Z", + "Web/JavaScript/Reference/Statements/with": { + "modified": "2020-03-12T19:46:20.775Z", "contributors": [ - "Mingun" + "asv7780", + "superpuper32", + "Waleron96", + "animhotep" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/toString": { - "modified": "2019-03-23T23:07:27.147Z", + "Web/JavaScript/Reference/Strict_mode": { + "modified": "2020-03-12T19:37:59.459Z", "contributors": [ - "Mingun" + "almaceleste", + "Yialo", + "alexbs", + "coxdn", + "randomnf", + "ris58h", + "spixe37", + "Sheppy", + "karmagood", + "alexdarc", + "egor-sorokin", + "hatroman", + "Megabyteceer", + "dimitryony", + "WispProxy", + "Natalya_Surikova", + "compsphere", + "Grumvol", + "torbasow", + "fscholz", + "zlumyo", + "akudiyar", + "fvtsfedu", + "r00ger", + "egml", + "AntonBezrukov", + "uleming" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/toTimeString": { - "modified": "2020-10-15T21:30:50.319Z", + "Web/JavaScript/Reference/Strict_mode/Transitioning_to_strict_mode": { + "modified": "2020-03-12T19:42:24.126Z", "contributors": [ - "art-gur", - "Mingun" + "almaceleste", + "coxdn", + "nakhodkiin", + "akmil", + "tselishev-semen" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/toUTCString": { - "modified": "2019-03-23T23:07:27.719Z", + "Web/JavaScript/Reference/Trailing_commas": { + "modified": "2020-10-15T22:22:53.977Z", "contributors": [ - "Mingun" + "leshkin", + "ekirpichyov" ] }, - "Web/JavaScript/Reference/Global_Objects/Date/valueOf": { - "modified": "2019-03-23T23:07:24.461Z", + "Web/JavaScript/Typed_arrays": { + "modified": "2020-03-12T19:45:54.627Z", "contributors": [ - "Mingun" + "shevchenko", + "Imperat", + "Bargamut", + "redishko", + "WispProxy", + "Anomeon", + "some_vlad", + "Megabyteceer" ] }, - "Web/JavaScript/Reference/Global_Objects/Error": { - "modified": "2020-10-15T21:30:29.342Z", + "Web/Manifest": { + "modified": "2020-10-15T21:52:44.707Z", "contributors": [ - "Bakosa666", - "boxa6", - "mshutov", - "ZeroUnderscoreOu", - "Drugak", - "KTatyana", - "pk.prog", - "Mingun" + "almaceleste", + "chrisdavidmills", + "bershanskiy", + "ZolotoArtem", + "Encamy", + "SergeyMirvoda", + "Eugeno", + "Katarzina", + "Kidsman", + "suncitygirl", + "curdwithraisins" ] }, - "Web/JavaScript/Reference/Global_Objects/Error/Stack": { - "modified": "2019-03-23T23:08:35.216Z", + "Web/Manifest/background_color": { + "modified": "2020-10-15T22:28:08.267Z", "contributors": [ - "Mingun" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Error/columnNumber": { - "modified": "2019-03-23T23:08:51.041Z", + "Web/Manifest/categories": { + "modified": "2020-10-15T22:28:07.809Z", "contributors": [ - "Mingun" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Error/fileName": { - "modified": "2019-03-23T23:08:50.913Z", + "Web/Manifest/description": { + "modified": "2020-10-15T22:28:07.733Z", "contributors": [ - "Mingun" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Error/lineNumber": { - "modified": "2019-03-18T21:16:24.987Z", + "Web/Manifest/dir": { + "modified": "2020-10-15T22:28:08.586Z", "contributors": [ - "Mingun" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Error/message": { - "modified": "2019-03-23T23:08:49.501Z", + "Web/Manifest/display": { + "modified": "2020-10-15T22:28:07.850Z", "contributors": [ - "Mingun" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Error/name": { - "modified": "2019-03-23T23:08:51.293Z", + "Web/Manifest/iarc_rating_id": { + "modified": "2020-10-15T22:28:08.596Z", "contributors": [ - "Mingun" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Error/prototype": { - "modified": "2019-03-23T23:08:50.114Z", - "contributors": [ - "rinbik", - "Mingun" + "Web/Manifest/icons": { + "modified": "2020-10-15T22:28:09.358Z", + "contributors": [ + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Error/toSource": { - "modified": "2019-03-23T23:08:35.807Z", + "Web/Manifest/lang": { + "modified": "2020-10-15T22:28:09.577Z", "contributors": [ - "Mingun" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Error/toString": { - "modified": "2019-03-23T23:08:36.104Z", + "Web/Manifest/name": { + "modified": "2020-10-15T22:28:09.359Z", "contributors": [ - "Mingun" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/EvalError": { - "modified": "2019-03-23T23:08:30.186Z", + "Web/Manifest/orientation": { + "modified": "2020-10-15T22:28:08.826Z", "contributors": [ - "Mingun" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/EvalError/prototype": { - "modified": "2019-03-23T23:08:32.207Z", + "Web/Manifest/prefer_related_applications": { + "modified": "2020-10-15T22:28:08.735Z", "contributors": [ - "Mingun" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Float32Array": { - "modified": "2020-10-15T21:41:15.793Z", + "Web/Manifest/related_applications": { + "modified": "2020-10-15T22:28:09.294Z", "contributors": [ - "av-dev", - "pk.prog", - "usernameak", - "savelichalex" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Float64Array": { - "modified": "2020-10-15T21:59:37.641Z", + "Web/Manifest/scope": { + "modified": "2020-10-15T22:28:09.050Z", "contributors": [ - "pk.prog" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Function": { - "modified": "2020-10-15T21:14:32.042Z", + "Web/Manifest/screenshots": { + "modified": "2020-10-15T22:28:09.543Z", "contributors": [ - "benzin_kanister", - "Yialo", - "CROGOT", - "boxa6", - "Mingun", - "teoli", - "Skorney" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/apply": { - "modified": "2020-03-13T10:22:12.516Z", + "Web/Manifest/short_name": { + "modified": "2020-10-15T22:21:30.619Z", "contributors": [ - "rookhive", - "EVRUSIN", - "NovikovViktor", - "Natalya_Surikova", - "Mingun" + "almaceleste", + "chrisdavidmills", + "bershanskiy" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/arguments": { - "modified": "2019-03-23T23:08:58.338Z", + "Web/Manifest/start_url": { + "modified": "2020-10-15T22:28:10.438Z", "contributors": [ - "Mingun" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/bind": { - "modified": "2019-03-23T23:11:14.089Z", + "Web/Manifest/theme_color": { + "modified": "2020-10-15T22:28:10.250Z", "contributors": [ - "vlad-vorontsov", - "alfaslash", - "IPri", - "mxxn", - "nikbelikov", - "rmaksim", - "Mingun", - "im7mortal", - "teoli", - "AlexyAV" + "almaceleste", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/call": { - "modified": "2019-10-11T04:40:04.178Z", + "Web/MathML": { + "modified": "2019-10-06T11:07:41.869Z", "contributors": [ - "vitaminX", - "Natalya_Surikova", - "Mingun", - "teoli", - "fscholz" + "valtaranets", + "bsergey", + "fider", + "koska", + "joemix" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/caller": { - "modified": "2019-05-06T13:11:25.305Z", + "Web/MathML/Authoring": { + "modified": "2019-03-23T22:08:43.986Z", "contributors": [ - "Neitrin", - "Mingun" + "bsergey", + "kimesik" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/displayName": { - "modified": "2019-03-23T23:08:57.657Z", + "Web/MathML/Element": { + "modified": "2019-03-23T23:02:16.227Z", "contributors": [ - "Mingun" + "bsergey", + "splewako" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/length": { - "modified": "2019-03-23T23:33:11.930Z", + "Web/MathML/Element/maction": { + "modified": "2020-10-15T22:14:19.571Z", "contributors": [ - "Mingun", - "teoli", - "maxmaximov" + "bsergey" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/name": { - "modified": "2020-10-15T21:28:28.242Z", + "Web/MathML/Element/math": { + "modified": "2019-03-23T23:02:16.927Z", "contributors": [ - "Simaleon", - "sashakrauzer", - "MerkUriy", - "volokolamskspb", - "Yialo", - "nakhodkiin", - "SphinxKnight", - "Mingun", - "teoli", - "Lord_Howe" + "Sykoku" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/prototype": { - "modified": "2019-03-24T00:03:59.291Z", + "Web/MathML/Element/menclose": { + "modified": "2020-10-15T22:15:07.763Z", "contributors": [ - "Devinora", - "pk.prog", - "Mingun", - "teoli", - "fscholz", - "Skorney" + "bsergey" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/toSource": { - "modified": "2019-03-23T23:08:53.546Z", + "Web/MathML/Element/merror": { + "modified": "2020-10-15T22:15:45.168Z", "contributors": [ - "Mingun" + "bsergey" ] }, - "Web/JavaScript/Reference/Global_Objects/Function/toString": { - "modified": "2019-03-23T23:08:47.306Z", + "Web/MathML/Element/mfenced": { + "modified": "2020-10-15T22:16:56.742Z", "contributors": [ - "Mingun" + "bsergey" ] }, - "Web/JavaScript/Reference/Global_Objects/Generator": { - "modified": "2020-12-08T04:46:07.883Z", + "Web/MathML/Element/mglyph": { + "modified": "2020-10-30T16:27:27.508Z", "contributors": [ - "bskydive", - "ahtohbi4", - "ygkorea" + "d0rj" ] }, - "Web/JavaScript/Reference/Global_Objects/Generator/next": { - "modified": "2020-10-15T22:22:50.166Z", + "Web/MathML/Element/mn": { + "modified": "2020-10-30T16:23:01.293Z", "contributors": [ - "ekirpichyov" + "d0rj" ] }, - "Web/JavaScript/Reference/Global_Objects/Generator/return": { - "modified": "2020-10-15T22:22:51.474Z", + "Web/MathML/Element/mover": { + "modified": "2020-12-10T17:16:05.910Z", "contributors": [ - "ekirpichyov" + "d0rj" ] }, - "Web/JavaScript/Reference/Global_Objects/Generator/throw": { - "modified": "2019-03-23T22:14:35.937Z", + "Web/MathML/Element/mstyle": { + "modified": "2020-10-30T15:38:27.824Z", "contributors": [ - "deman" + "d0rj" ] }, - "Web/JavaScript/Reference/Global_Objects/GeneratorFunction": { - "modified": "2020-10-15T21:58:16.652Z", + "Web/Media": { + "modified": "2020-02-16T05:07:41.773Z", "contributors": [ - "tilin97" + "Sheppy" ] }, - "Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype": { - "modified": "2020-10-15T22:22:51.990Z", + "Web/Media/Formats": { + "modified": "2020-02-16T05:07:42.083Z", "contributors": [ - "ekirpichyov" + "Sheppy" ] }, - "Web/JavaScript/Reference/Global_Objects/Infinity": { - "modified": "2020-10-15T21:29:55.866Z", + "Web/Media/Formats/codecs_parameter": { + "modified": "2020-03-16T06:34:09.362Z", "contributors": [ - "boxa6", - "SphinxKnight", - "Mingun" + "mechtool" ] }, - "Web/JavaScript/Reference/Global_Objects/Int16Array": { - "modified": "2020-10-15T21:59:37.929Z", + "Web/Performance": { + "modified": "2020-04-21T12:10:15.645Z", "contributors": [ - "pk.prog" + "D.Lesnik", + "chrisdavidmills" ] }, - "Web/JavaScript/Reference/Global_Objects/Int32Array": { - "modified": "2020-10-15T21:59:37.998Z", + "Web/Performance/CSS_JavaScript_animation_performance": { + "modified": "2020-04-02T11:47:32.867Z", "contributors": [ - "sh13max", - "pk.prog" + "D.Lesnik" ] }, - "Web/JavaScript/Reference/Global_Objects/Int8Array": { - "modified": "2020-10-15T21:57:33.561Z", + "Web/Performance/Critical_rendering_path": { + "modified": "2020-03-30T19:35:11.484Z", "contributors": [ - "Glazomer", - "iliatcymbal" + "D.Lesnik" ] }, - "Web/JavaScript/Reference/Global_Objects/InternalError": { - "modified": "2019-03-23T23:08:28.849Z", + "Web/Performance/How_browsers_work": { + "modified": "2020-12-07T17:11:39.900Z", "contributors": [ - "Mingun" + "SamTLT", + "vlad-vorontsov", + "D.Lesnik" ] }, - "Web/JavaScript/Reference/Global_Objects/InternalError/prototype": { - "modified": "2019-03-23T23:08:27.124Z", + "Web/Performance/How_long_is_too_long": { + "modified": "2020-05-15T10:59:03.931Z", "contributors": [ - "Mingun" + "D.Lesnik" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl": { - "modified": "2020-10-15T21:30:32.813Z", - "contributors": [ - "kserbez", - "boxa6", - "nrvru", - "Mingun" + "Web/Performance/Lazy_loading": { + "modified": "2020-05-23T10:12:03.445Z", + "contributors": [ + "mfranzke", + "D.Lesnik" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/Collator": { - "modified": "2020-04-21T07:27:03.712Z", + "Web/Performance/Navigation_and_resource_timings": { + "modified": "2020-04-02T11:43:41.543Z", "contributors": [ - "fscholz", - "Mingun" + "D.Lesnik" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/Collator/compare": { - "modified": "2020-04-21T07:27:03.594Z", + "Web/Performance/Optimizing_startup_performance": { + "modified": "2020-04-03T10:03:42.671Z", "contributors": [ - "fscholz", - "Mingun" + "D.Lesnik" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/Collator/prototype": { - "modified": "2020-04-21T07:27:03.529Z", + "Web/Performance/Performance_budgets": { + "modified": "2020-04-06T12:41:24.362Z", "contributors": [ - "fscholz", - "Mingun" + "D.Lesnik" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/Collator/resolvedOptions": { - "modified": "2020-04-21T07:27:03.396Z", + "Web/Performance/Rum-vs-Synthetic": { + "modified": "2020-04-17T19:39:30.304Z", "contributors": [ - "fscholz", - "Mingun" + "D.Lesnik" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/Collator/supportedLocalesOf": { - "modified": "2020-04-21T07:27:03.568Z", + "Web/Performance/Understanding_latency": { + "modified": "2020-05-28T07:49:08.019Z", "contributors": [ - "fscholz", - "Mingun" + "D.Lesnik" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat": { - "modified": "2020-11-07T18:13:37.841Z", + "Web/Performance/dns-prefetch": { + "modified": "2020-12-13T17:12:00.849Z", "contributors": [ - "Vladiatro", - "fscholz", - "Forshortmrmeth", - "Mingun" + "iozee", + "it4joy", + "D.Lesnik" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format": { - "modified": "2020-04-21T09:00:46.926Z", + "Web/Progressive_web_apps": { + "modified": "2019-04-20T03:25:44.859Z", "contributors": [ - "fscholz", - "Mingun" + "webmaxru", + "chrisdavidmills", + "ruslan_g02" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts": { - "modified": "2020-10-15T22:22:57.636Z", + "Web/Progressive_web_apps/Installable_PWAs": { + "modified": "2020-05-31T18:38:14.629Z", "contributors": [ - "fscholz", - "ekirpichyov" + "AlexandrKoliukh", + "chrisdavidmills", + "WhiteApfel" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/prototype": { - "modified": "2020-04-21T09:00:46.875Z", + "Web/Reference": { + "modified": "2019-03-18T20:37:11.659Z", "contributors": [ - "fscholz", - "Mingun" + "mmbl", + "Shychara", + "vostvesh", + "AlexLog", + "uri-uri222", + "slaykovsky", + "Nuzland" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions": { - "modified": "2020-04-21T09:00:46.731Z", + "Web/Reference/API": { + "modified": "2019-03-23T23:10:40.925Z", "contributors": [ - "fscholz", - "Mingun" + "olyaknyaz", + "filutkie", + "dimFora", + "BychekRU", + "varstt", + "uleming", + "AlexLog", + "eb-gh-cr", + "ARleKino", + "Tihoem", + "takto", + "bariys18" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf": { - "modified": "2020-04-21T09:00:46.824Z", + "Web/SVG": { + "modified": "2019-11-01T15:48:17.103Z", "contributors": [ - "fscholz", - "Mingun" + "hisbvdis", + "AdelNorberg", + "Solj", + "Roman-Kosov", + "warsan", + "dima74", + "AlexeyFedotof", + "romanalesenkov", + "sputnik1986", + "Mingun", + "Dyvik" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/ListFormat": { - "modified": "2020-04-21T09:04:29.446Z", + "Web/SVG/Applying_SVG_effects_to_HTML_content": { + "modified": "2019-04-10T04:51:15.356Z", "contributors": [ - "fscholz", - "Autapomorph" + "warsan" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat": { - "modified": "2020-10-15T21:30:31.049Z", + "Web/SVG/Attribute": { + "modified": "2019-03-23T23:20:13.909Z", "contributors": [ - "fscholz", - "DmitryMakhnev", - "RUVATA", - "Mingun" + "Solj", + "Vasiliy.Poddubny", + "BychekRU", + "kscarfone" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format": { - "modified": "2020-04-21T09:08:24.301Z", + "Web/SVG/Attribute/Core": { + "modified": "2020-10-15T22:34:58.576Z", "contributors": [ - "fscholz", - "Mingun" + "osipov_s" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/prototype": { - "modified": "2020-04-21T09:08:23.861Z", + "Web/SVG/Attribute/additive": { + "modified": "2019-03-23T22:07:14.939Z", "contributors": [ - "fscholz", - "Mingun" + "Solj", + "warsan", + "Vasiliy.Poddubny" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/resolvedOptions": { - "modified": "2020-04-21T09:08:24.157Z", + "Web/SVG/Attribute/attributeName": { + "modified": "2019-09-17T04:44:27.460Z", "contributors": [ - "fscholz", - "Mingun" + "ekirpichyov", + "Solj", + "warsan", + "theykillimmortal" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/supportedLocalesOf": { - "modified": "2020-04-21T09:08:24.144Z", + "Web/SVG/Attribute/attributeType": { + "modified": "2019-03-23T22:07:14.824Z", "contributors": [ - "fscholz", - "Mingun" + "Solj", + "warsan", + "theykillimmortal", + "Vasiliy.Poddubny" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales": { - "modified": "2020-10-15T22:22:33.577Z", + "Web/SVG/Attribute/class": { + "modified": "2019-03-23T22:24:12.240Z", "contributors": [ - "ekirpichyov" + "Vitaligo", + "dmitron1036" ] }, - "Web/JavaScript/Reference/Global_Objects/JSON": { - "modified": "2020-02-26T09:34:47.437Z", + "Web/SVG/Attribute/cx": { + "modified": "2019-03-18T21:39:26.378Z", "contributors": [ - "alexandersolovyov", - "deman", - "Mingun", - "fscholz" + "Solj", + "AlexandrNikolaichev" ] }, - "Web/JavaScript/Reference/Global_Objects/JSON/parse": { - "modified": "2019-10-04T12:11:00.231Z", + "Web/SVG/Attribute/cy": { + "modified": "2019-03-18T21:39:30.503Z", "contributors": [ - "catsAND", - "Mingun", - "teoli", - "Grundy" + "Solj", + "AlexandrNikolaichev" ] }, - "Web/JavaScript/Reference/Global_Objects/JSON/stringify": { - "modified": "2020-10-15T21:31:10.984Z", + "Web/SVG/Attribute/d": { + "modified": "2019-10-17T06:49:06.860Z", "contributors": [ - "art-gur", - "alerkesi", - "brykov", - "a-tarasyuk", - "Mingun", - "igorklopov84", - "fullfs" + "andruhovski", + "warsan", + "vKuka", + "annaSchugay" ] }, - "Web/JavaScript/Reference/Global_Objects/Map": { - "modified": "2020-10-15T21:31:18.471Z", + "Web/SVG/Attribute/dur": { + "modified": "2020-10-15T21:56:33.845Z", "contributors": [ - "altpoint", - "AndreyGlyan", - "fanich37", - "Dzvonek", - "teryaew", - "xobotyi", - "akmil", - "SphinxKnight", - "WispProxy", - "dtretyakov" + "ekirpichyov", + "Solj", + "theykillimmortal", + "Vasiliy.Poddubny" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/@@species": { - "modified": "2019-03-23T22:09:16.930Z", + "Web/SVG/Attribute/end": { + "modified": "2019-03-23T22:07:08.160Z", "contributors": [ - "WispProxy", - "ahtohbi4" + "Vasiliy.Poddubny" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/clear": { - "modified": "2019-03-23T22:11:36.456Z", + "Web/SVG/Attribute/fill": { + "modified": "2019-03-28T08:38:38.419Z", "contributors": [ - "thepocp" + "boxa6", + "Solj", + "theykillimmortal", + "Vasiliy.Poddubny" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/delete": { - "modified": "2020-10-15T21:50:15.883Z", + "Web/SVG/Attribute/fill-opacity": { + "modified": "2019-03-23T22:46:24.495Z", "contributors": [ - "xobotyi", - "ahtohbi4", - "vesai" + "Solj", + "Mikke" ] - }, - "Web/JavaScript/Reference/Global_Objects/Map/entries": { - "modified": "2019-09-29T09:44:45.397Z", + }, + "Web/SVG/Attribute/fill-rule": { + "modified": "2020-10-15T22:29:32.056Z", "contributors": [ - "evvs", - "rsarov", - "ahtohbi4" + "ellizii" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/forEach": { - "modified": "2020-10-15T21:49:44.007Z", + "Web/SVG/Attribute/font-weight": { + "modified": "2020-10-15T21:59:48.037Z", "contributors": [ - "swa1ps", - "trueanqu", - "SomeoneDeployMe" + "boxa6", + "kasperyan" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/get": { - "modified": "2020-10-15T21:55:36.338Z", + "Web/SVG/Attribute/id": { + "modified": "2020-10-24T12:47:37.053Z", "contributors": [ - "dimon4ezzz", - "AndreyLipin", - "ahtohbi4" + "osipov_s" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/has": { - "modified": "2019-03-23T22:18:58.841Z", + "Web/SVG/Attribute/keyTimes": { + "modified": "2019-05-03T20:37:52.946Z", "contributors": [ - "Ignat86" + "DyominMV", + "zzzunyazz", + "Vasiliy.Poddubny" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/keys": { - "modified": "2019-03-23T22:09:06.332Z", + "Web/SVG/Attribute/lang": { + "modified": "2020-10-24T13:21:41.808Z", "contributors": [ - "ahtohbi4" + "osipov_s" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/prototype": { - "modified": "2019-04-17T08:32:17.620Z", + "Web/SVG/Attribute/lengthAdjust": { + "modified": "2019-03-23T22:04:51.651Z", "contributors": [ - "craby-c", - "SphinxKnight", - "Grinv" + "theykillimmortal" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/set": { - "modified": "2019-07-08T16:59:23.175Z", + "Web/SVG/Attribute/letter-spacing": { + "modified": "2019-03-23T22:09:36.832Z", "contributors": [ - "elrostov", - "InoY", - "ahtohbi4" + "missis-sippi", + "Solj", + "theykillimmortal", + "alex7852" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/size": { - "modified": "2020-11-28T13:51:01.575Z", + "Web/SVG/Attribute/lighting-color": { + "modified": "2019-03-23T22:04:44.084Z", "contributors": [ - "ialexi-bl", - "Yumeiro", - "reilag" + "Solj", + "theykillimmortal" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/values": { - "modified": "2019-03-23T22:09:12.314Z", + "Web/SVG/Attribute/overflow": { + "modified": "2019-03-23T23:20:06.881Z", "contributors": [ - "ahtohbi4" + "Solj", + "glizer", + "torbasow" ] }, - "Web/JavaScript/Reference/Global_Objects/Math": { - "modified": "2020-10-15T21:26:14.248Z", + "Web/SVG/Attribute/patternContentUnits": { + "modified": "2019-03-23T22:06:23.667Z", "contributors": [ - "sashakrauzer", - "S-le", - "Sliokkory", - "KSH-audibene", - "boxa6", - "Nexmean", - "MrEfrem", - "Mingun", - "teoli", - "kolyuchii", - "Ladislas", - "fscholz" + "artemzwinger" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/E": { - "modified": "2019-03-23T23:02:51.965Z", + "Web/SVG/Attribute/r": { + "modified": "2019-03-18T21:29:41.005Z", "contributors": [ - "Mingun" + "igor-khramko" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/LN10": { - "modified": "2019-03-23T23:06:02.231Z", + "Web/SVG/Attribute/repeatCount": { + "modified": "2019-03-23T22:24:33.265Z", "contributors": [ - "Mingun", - "RyvkinSergey" + "Solj", + "VitaliiKotliar" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/LN2": { - "modified": "2019-03-23T23:02:57.181Z", + "Web/SVG/Attribute/rx": { + "modified": "2019-09-27T12:00:57.972Z", "contributors": [ - "Mingun" + "Solj" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/LOG10E": { - "modified": "2019-03-23T23:02:52.129Z", + "Web/SVG/Attribute/ry": { + "modified": "2019-09-27T12:42:00.928Z", "contributors": [ - "Mingun" + "Solj" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/LOG2E": { - "modified": "2019-03-23T23:03:01.940Z", + "Web/SVG/Attribute/shape-rendering": { + "modified": "2019-03-23T23:20:17.223Z", "contributors": [ - "Mingun" + "theykillimmortal", + "BaNru" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/PI": { - "modified": "2019-03-23T23:03:00.693Z", + "Web/SVG/Attribute/stop-color": { + "modified": "2019-03-23T22:04:50.665Z", "contributors": [ - "Mingun" + "theykillimmortal" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2": { - "modified": "2019-03-23T23:03:03.049Z", + "Web/SVG/Attribute/stroke": { + "modified": "2019-03-23T22:07:06.951Z", "contributors": [ - "Mingun" + "Solj", + "Vasiliy.Poddubny" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/SQRT2": { - "modified": "2019-03-23T23:03:04.344Z", + "Web/SVG/Attribute/stroke-dashoffset": { + "modified": "2019-10-13T18:23:50.855Z", "contributors": [ - "Mingun" + "warsan", + "Solj", + "maxnnn1900" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/abs": { - "modified": "2020-10-15T21:26:16.639Z", + "Web/SVG/Attribute/stroke-linecap": { + "modified": "2020-10-15T22:14:34.059Z", "contributors": [ - "KiraTheFirebird", - "YozhEzhi", - "Mingun", - "teoli", - "Ladislas" + "warsan" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/acos": { - "modified": "2019-03-23T23:21:02.503Z", + "Web/SVG/Attribute/stroke-width": { + "modified": "2019-03-23T22:01:11.603Z", "contributors": [ - "Mingun", - "teoli", - "Ladislas" + "Solj", + "Snikard" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/acosh": { - "modified": "2019-03-23T23:20:43.526Z", + "Web/SVG/Attribute/text-anchor": { + "modified": "2020-10-15T21:56:48.973Z", "contributors": [ - "SphinxKnight", - "Mingun", - "teoli", - "Ladislas" + "mencerz", + "warsan", + "leonrom", + "theykillimmortal" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/asin": { - "modified": "2019-03-23T23:20:44.722Z", + "Web/SVG/Attribute/text-rendering": { + "modified": "2019-03-23T23:20:14.491Z", "contributors": [ - "Mingun", - "teoli", - "Ladislas" + "BaNru" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/asinh": { - "modified": "2019-03-23T23:20:44.301Z", + "Web/SVG/Attribute/transform": { + "modified": "2019-03-23T22:46:36.351Z", "contributors": [ - "SphinxKnight", - "Mingun", - "teoli", - "Ladislas" + "a1ip", + "Solj", + "Lexeii", + "antisergey", + "Aleksov" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/atan": { - "modified": "2019-03-23T23:20:39.232Z", + "Web/SVG/Attribute/values": { + "modified": "2019-03-23T22:06:49.462Z", "contributors": [ - "Mingun", - "teoli", - "Ladislas" + "Vasiliy.Poddubny" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/atan2": { - "modified": "2019-03-23T23:02:49.535Z", + "Web/SVG/Attribute/viewBox": { + "modified": "2020-07-17T23:39:00.663Z", "contributors": [ - "Mingun" + "ialexi-bl", + "dimitrius-brest", + "annekorti", + "pepsikat" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/atanh": { - "modified": "2019-03-23T23:02:48.791Z", + "Web/SVG/Attribute/width": { + "modified": "2019-05-12T12:39:52.350Z", "contributors": [ - "SphinxKnight", - "Mingun" + "opereverzeva" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/cbrt": { - "modified": "2019-11-18T17:15:18.856Z", + "Web/SVG/Attribute/x": { + "modified": "2019-03-23T22:05:16.429Z", "contributors": [ - "Yaffle", - "SphinxKnight", - "Mingun", - "teoli", - "Ladislas" + "Solj" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/ceil": { - "modified": "2019-04-20T08:11:10.933Z", + "Web/SVG/Attribute/xml:space": { + "modified": "2019-03-23T22:23:51.290Z", "contributors": [ - "YozhEzhi", - "Minstel", - "kontimir", - "slollo", - "vysheradugi4", - "oPOCCOMAXAo", - "MrEfrem", - "Mingun", - "vskopuk", - "js-user" + "lautsevich" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/clz32": { - "modified": "2019-03-23T23:02:49.692Z", + "Web/SVG/Attribute/y": { + "modified": "2019-03-23T22:05:20.840Z", "contributors": [ - "SphinxKnight", - "Yaffle", - "Mingun" + "Solj" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/cos": { - "modified": "2019-03-23T23:02:49.360Z", + "Web/SVG/SVG_1.1_Support_in_Firefox": { + "modified": "2019-03-18T21:33:59.744Z", "contributors": [ - "Mingun" + "warsan" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/cosh": { - "modified": "2019-03-23T23:02:45.491Z", + "Web/SVG/SVG_as_an_Image": { + "modified": "2019-04-24T01:52:04.782Z", "contributors": [ - "SphinxKnight", - "Mingun" + "opereverzeva" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/exp": { - "modified": "2019-03-23T23:02:39.529Z", + "Web/SVG/Tutorial": { + "modified": "2020-08-16T23:33:41.513Z", "contributors": [ - "Mingun" + "fqf", + "Ivan961", + "hisbvdis", + "theykillimmortal", + "dima74", + "mboris1", + "MaxManchak", + "Eugene_Ishchenko" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/expm1": { - "modified": "2019-03-23T23:02:41.113Z", + "Web/SVG/Tutorial/Clipping_and_masking": { + "modified": "2019-03-18T21:33:27.085Z", "contributors": [ - "SphinxKnight", - "Mingun" + "theykillimmortal" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/floor": { - "modified": "2019-10-07T20:49:57.401Z", + "Web/SVG/Tutorial/Fills_and_Strokes": { + "modified": "2019-11-05T15:39:42.604Z", "contributors": [ - "sashakrauzer", - "long76", - "Soheevich", - "oPOCCOMAXAo", - "MrEfrem", - "Mingun", - "sovietmagic" + "hisbvdis", + "valery-paschenkov", + "tavira" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/fround": { - "modified": "2019-03-18T20:50:54.153Z", + "Web/SVG/Tutorial/Filter_effects": { + "modified": "2019-03-18T21:33:29.713Z", "contributors": [ - "SphinxKnight", - "Mingun" + "theykillimmortal" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/hypot": { - "modified": "2019-03-23T23:21:18.612Z", + "Web/SVG/Tutorial/Getting_Started": { + "modified": "2019-11-04T17:28:30.391Z", "contributors": [ - "SphinxKnight", - "Mingun", - "teoli", - "Ladislas" + "hisbvdis", + "alexbs", + "warsan", + "komuroe", + "valery-paschenkov", + "tavira", + "mboris1", + "Eugene_Ishchenko" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/imul": { - "modified": "2019-03-23T23:02:47.878Z", + "Web/SVG/Tutorial/Gradients": { + "modified": "2020-08-11T09:48:48.660Z", "contributors": [ - "SphinxKnight", - "Mingun" + "wBureshGitHub", + "u.gantimurov", + "warsan", + "valery-paschenkov", + "tavira" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/log": { - "modified": "2019-03-23T23:02:39.934Z", + "Web/SVG/Tutorial/Other_content_in_SVG": { + "modified": "2019-12-31T04:23:04.282Z", "contributors": [ - "Mingun" + "ekirpichyov", + "warsan" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/log10": { - "modified": "2019-03-23T23:02:40.124Z", + "Web/SVG/Tutorial/Paths": { + "modified": "2019-10-08T05:57:38.968Z", "contributors": [ - "SphinxKnight", - "Mingun" + "hellvesper", + "red5tart", + "devfedorenko", + "komuroe", + "tavira", + "sonnenhaft", + "reflash", + "riseremi", + "mboris1", + "scaint" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/log1p": { - "modified": "2019-03-23T23:02:43.071Z", + "Web/SVG/Tutorial/Patterns": { + "modified": "2019-11-06T13:03:01.053Z", "contributors": [ - "SphinxKnight", - "Mingun" + "hisbvdis", + "warsan", + "valery-paschenkov" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/log2": { - "modified": "2020-10-15T21:32:32.809Z", + "Web/SVG/Tutorial/SVG_Image_Tag": { + "modified": "2019-03-23T22:09:37.959Z", "contributors": [ - "art-gur", - "SphinxKnight", - "Mingun" + "x-in" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/max": { - "modified": "2020-01-23T12:52:57.037Z", + "Web/SVG/Tutorial/SVG_In_HTML_Introduction": { + "modified": "2019-03-23T22:42:40.887Z", "contributors": [ - "Elivin", - "torbasow", - "Mingun", - "teoli", - "Ladislas" + "chrisdavidmills", + "warsan", + "karpulix" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/min": { - "modified": "2020-08-04T11:38:28.510Z", + "Web/SVG/Tutorial/SVG_fonts": { + "modified": "2019-03-18T21:33:26.235Z", "contributors": [ - "sergey.karavaev", - "Mingun", - "teoli", - "Ladislas" + "theykillimmortal" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/pow": { - "modified": "2019-03-23T23:02:42.644Z", + "Web/SVG/Tutorial/Texts": { + "modified": "2019-03-18T21:43:56.017Z", "contributors": [ - "fscholz", - "Mingun" + "theykillimmortal" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/random": { - "modified": "2020-10-15T21:30:33.217Z", + "Web/SVG/Tutorial/Tools_for_SVG": { + "modified": "2019-06-06T06:15:16.270Z", "contributors": [ - "ekirpichyov", - "Mitrr", - "Byte968", - "Flex301", - "Mingun", - "SandStorm" + "Evaphobia", + "Roman-Kosov" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/round": { - "modified": "2019-10-03T16:35:58.416Z", + "Web/Security": { + "modified": "2019-11-20T21:39:44.381Z", "contributors": [ - "YozhEzhi", - "it4joy", - "Mingun", - "bungu" + "wbamberg", + "SphinxKnight", + "pepelsbey", + "Tihoem", + "Sheppy" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/sign": { - "modified": "2019-03-23T23:21:05.525Z", + "Web/Security/Same-origin_policy": { + "modified": "2020-10-20T11:28:42.439Z", "contributors": [ - "SphinxKnight", - "Mingun", - "teoli", - "Ladislas" + "niklimoff01", + "hisbvdis", + "WhiteApfel", + "iamvector", + "vladlipski", + "ZVanoZ" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/sin": { - "modified": "2019-03-23T23:02:45.848Z", + "Web/Security/Securing_your_site": { + "modified": "2019-12-18T06:44:18.277Z", "contributors": [ - "Mingun" + "mfuji09" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/sinh": { - "modified": "2019-03-23T23:02:41.582Z", + "Web/Security/Securing_your_site/Turning_off_form_autocompletion": { + "modified": "2019-12-18T06:44:21.121Z", "contributors": [ - "SphinxKnight", - "Mingun" + "KolesnikovR" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/sqrt": { - "modified": "2019-03-23T23:21:16.252Z", + "Web/Tutorials": { + "modified": "2019-10-02T16:11:49.043Z", "contributors": [ - "Maxim-Bernashevsky", - "Mingun", - "teoli", - "Ladislas" + "Termaro", + "mmbl", + "ukrlex01", + "rhiter", + "anastasiya-solodkaya", + "GraceAredel", + "Tihoem", + "uleming", + "Steln", + "aleks_root" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/tan": { - "modified": "2019-03-23T23:02:44.705Z", + "Web/Web_Components": { + "modified": "2020-09-03T10:16:00.956Z", "contributors": [ - "Mingun" + "m.tven18", + "Loosefer", + "Akh-rman", + "shmel115", + "newbornfrontender", + "Peccansy", + "alinofka", + "curdwithraisins", + "dmitrykurmanov", + "Kalita-Roman" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/tanh": { - "modified": "2019-03-23T23:02:37.791Z", + "Web/Web_Components/HTML_Imports": { + "modified": "2019-03-18T21:40:10.986Z", "contributors": [ - "SphinxKnight", - "Mingun" + "PaulineNemchak" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/trunc": { - "modified": "2020-10-15T21:32:38.007Z", + "Web/XML": { + "modified": "2019-03-24T13:24:33.354Z" + }, + "Web/XML/XML_introduction": { + "modified": "2019-03-25T08:08:08.506Z", "contributors": [ - "opereverzeva", - "dkireev", - "SphinxKnight", - "vitaliylag", - "Danakt", - "Mingun" + "boxa6" ] }, - "Web/JavaScript/Reference/Global_Objects/Math/Метод_Math.max()_": { - "modified": "2019-03-23T22:37:24.165Z", + "Web/XPath": { + "modified": "2019-01-16T14:55:34.456Z", "contributors": [ - "srvoland" + "ExE-Boss", + "wbamberg", + "teoli", + "Android" ] }, - "Web/JavaScript/Reference/Global_Objects/NaN": { - "modified": "2020-10-15T21:29:55.593Z", + "Web/XSLT": { + "modified": "2019-03-23T23:58:47.674Z", "contributors": [ - "kss555", - "boxa6", - "Gamesurf", - "Mingun" + "niktariy", + "ExE-Boss", + "teoli", + "iliacmd" ] }, - "Web/JavaScript/Reference/Global_Objects/Number": { - "modified": "2020-10-15T21:26:52.210Z", + "WebAssembly": { + "modified": "2020-10-15T22:05:07.172Z", "contributors": [ - "chrisdavidmills", - "boxa6", - "wbamberg", - "peremenov", - "Mingun", - "teoli", - "Softarius" + "sharpist", + "deadblackclover", + "vkorniiko", + "warsan", + "thatlldo" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/EPSILON": { - "modified": "2019-08-25T14:04:12.302Z", + "WebAssembly/C_to_wasm": { + "modified": "2019-03-18T21:33:56.809Z", "contributors": [ - "Yialo", - "biggieman", - "nakhodkiin", - "msalv", - "Mingun" + "thatlldo" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER": { - "modified": "2020-10-15T21:30:30.029Z", + "WebAssembly/Concepts": { + "modified": "2019-03-18T21:10:19.900Z", "contributors": [ - "bm12", - "art-gur", - "Yialo", - "SphinxKnight", - "Mingun" + "vkorniiko" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE": { - "modified": "2019-03-23T23:08:20.580Z", + "WebAssembly/Exported_functions": { + "modified": "2020-03-04T19:06:28.386Z", "contributors": [ - "Mingun" + "amuzalevskiy", + "thatlldo" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER": { - "modified": "2019-08-25T14:03:53.234Z", + "WebAssembly/Loading_and_running": { + "modified": "2019-06-12T11:14:54.085Z", "contributors": [ - "Yialo", - "SphinxKnight", - "Mingun" + "deadblackclover" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE": { - "modified": "2019-03-23T23:08:15.441Z", + "WebAssembly/Rust_to_wasm": { + "modified": "2020-06-11T14:27:31.970Z", "contributors": [ - "evheniy", - "Mingun" + "DuckerMan", + "idkravitz", + "dlukanin", + "curdwithraisins", + "VLDSLW" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY": { - "modified": "2019-03-23T23:08:17.933Z", + "WebAssembly/Understanding_the_text_format": { + "modified": "2019-03-18T21:09:18.859Z", "contributors": [ - "Mingun" + "vkorniiko" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/NaN": { - "modified": "2019-03-23T23:08:14.519Z", + "WebAssembly/Using_the_JavaScript_API": { + "modified": "2019-06-12T07:08:20.267Z", "contributors": [ - "Mingun" + "deadblackclover", + "vkorniiko" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY": { - "modified": "2019-03-23T23:08:18.273Z", + "conflicting/Web/API/Canvas_API/A_basic_ray-caster": { + "modified": "2019-03-23T23:52:15.954Z", "contributors": [ - "Mingun" + "warsan", + "Chernetsky" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/isFinite": { - "modified": "2019-03-23T23:08:18.639Z", + "conflicting/Mozilla/Add-ons": { + "modified": "2019-03-23T23:58:39.567Z", "contributors": [ - "SphinxKnight", - "Mingun" + "topskill", + "fscholz", + "iliacmd" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/isInteger": { - "modified": "2020-10-15T21:30:30.076Z", + "Web/API/Document/createElement": { + "modified": "2020-05-24T05:32:15.624Z", "contributors": [ - "art-gur", - "Yialo", - "SphinxKnight", - "parzhitsky", - "Mingun" + "MyWay2IT", + "ArtemStudio", + "ellizii", + "RblSb", + "kothique", + "Veers", + "itslooklike", + "Madzi", + "lemurio", + "Guria", + "khalid32", + "Norville", + "teoli", + "icw82", + "Alego" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/isNaN": { - "modified": "2020-10-15T21:30:30.857Z", + "Web/API/Document/images": { + "modified": "2019-03-24T00:04:21.348Z", "contributors": [ - "JorJeG", - "Mingun" + "khalid32", + "Norville", + "teoli", + "RAP1D" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger": { - "modified": "2020-10-19T11:46:39.542Z", + "Web/API/Document_Object_Model/Events": { + "modified": "2019-03-18T21:18:44.250Z", "contributors": [ - "alekskos", - "art-gur", - "Yialo", - "SphinxKnight", - "Mingun" + "SphinxKnight" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/parseFloat": { - "modified": "2019-08-25T14:06:12.145Z", + "Web/API/Document_Object_Model/Examples": { + "modified": "2019-09-25T18:36:16.946Z", "contributors": [ - "Yialo", - "SphinxKnight", - "KP0H", - "Mingun" + "Problemon", + "paxarpp", + "Bargamut" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/parseInt": { - "modified": "2020-10-15T21:30:29.202Z", + "Web/API/Document_Object_Model": { + "modified": "2020-08-25T05:36:15.194Z", "contributors": [ - "Yialo", - "Fantomhaiv", - "SphinxKnight", - "Mingun" + "tix836", + "shmel3", + "shvedovskiy", + "BychekRU", + "teoli", + "Newser", + "mayconrem" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/prototype": { - "modified": "2019-03-23T23:08:18.833Z", + "Web/API/Document_object_model/Locating_DOM_elements_using_selectors": { + "modified": "2019-03-23T22:13:41.294Z", "contributors": [ - "Mingun" + "tavira" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/toExponential": { - "modified": "2020-12-14T05:16:23.222Z", + "Web/API/Document_Object_Model/Introduction": { + "modified": "2019-10-02T12:18:01.287Z", "contributors": [ - "YozhEzhi", - "Mingun" + "shmel3", + "newbornfrontender", + "GraceAredel", + "hardsoncore", + "Flaeron", + "paxarpp", + "rapaich", + "miirinjej", + "tavira", + "sersalex", + "tvitcom", + "Y-Taras", + "Azijkes" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/toFixed": { - "modified": "2020-12-14T05:15:41.289Z", + "Web/API/Fullscreen_API": { + "modified": "2020-10-15T21:22:05.646Z", "contributors": [ - "YozhEzhi", - "ch-ms", - "stravin", - "Mingun" + "dartraiden", + "wbamberg", + "sosnovskyas", + "mzhel" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/toLocaleString": { - "modified": "2020-10-15T21:30:32.073Z", + "Web/API/Web_Workers_API/Using_web_workers": { + "modified": "2020-06-15T09:56:56.839Z", "contributors": [ - "vanyaErohin", - "mois-ilya", - "Mingun" + "sekrittt", + "S-inTheory", + "KVAnton-WEB", + "demyanovs", + "Akh-rman", + "warsan", + "Corey-Maler", + "citizen55", + "S-le", + "vorobeez", + "namikiri", + "evhandel", + "alex-misch", + "Sajag", + "Anomeon", + "3lvcz", + "x1unix", + "nsine", + "sanarise", + "arvitaly", + "AlexanderTserkovniy", + "sergeiDruzhinin", + "kav137", + "Forshortmrmeth", + "MuradAz", + "ahtohbi4", + "padenot", + "finalex" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/toPrecision": { - "modified": "2020-12-14T05:16:55.908Z", + "Web/API/window/requestAnimationFrame": { + "modified": "2020-10-15T21:21:09.538Z", "contributors": [ - "YozhEzhi", + "BehemothOz", + "S-inTheory", + "Kiryhas", + "ekirpichyov", "Yialo", - "while0pass", - "nakhodkiin", - "ZeroUnderscoreOu", - "KiraGolub", - "an2323", - "Mingun" + "YozhEzhi", + "RoBit", + "alexsanqp", + "Bargamut", + "torbasow", + "Beliarh", + "nyk0r" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/toSource": { - "modified": "2019-08-25T13:48:33.955Z", + "Mozilla/Firefox/Releases/3": { + "modified": "2019-03-23T23:57:24.524Z", "contributors": [ - "Yialo", - "Mingun" + "wbamberg", + "teoli", + "Destruction", + "Alm0" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/toString": { - "modified": "2020-12-14T05:17:27.925Z", + "Mozilla/Firefox/Releases/3.5": { + "modified": "2019-03-24T00:00:48.916Z", "contributors": [ - "YozhEzhi", - "Yialo", - "Mingun" + "wbamberg", + "teoli", + "Dionys" ] }, - "Web/JavaScript/Reference/Global_Objects/Number/valueOf": { - "modified": "2019-03-23T23:08:15.896Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Finishing_up": { + "modified": "2020-05-27T13:39:22.186Z", "contributors": [ - "Mingun" + "S-inTheory", + "fedev", + "ekirpichyov", + "netmag" ] }, - "Web/JavaScript/Reference/Global_Objects/Object": { - "modified": "2019-08-26T11:37:18.396Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Collision_detection": { + "modified": "2020-05-27T13:47:02.328Z", "contributors": [ - "Yialo", + "S-inTheory", + "alexerisov", + "ekirpichyov", + "BrightsDays", "wbamberg", - "Natalya_Surikova", - "Mingun", - "teoli", - "pashak" + "DanInSpace104" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__": { - "modified": "2019-03-23T23:11:22.223Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Move_the_ball": { + "modified": "2019-09-05T03:56:26.312Z", "contributors": [ - "Mingun", - "OleksandrPapchenko" + "ekirpichyov", + "Horbach_Andrii", + "wbamberg", + "W-A-D", + "HellLena" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__": { - "modified": "2019-03-23T23:10:17.035Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Build_the_brick_field": { + "modified": "2019-09-05T04:00:55.487Z", "contributors": [ - "Mingun" + "ekirpichyov", + "netmag", + "wbamberg", + "DanInSpace104" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__": { - "modified": "2019-03-23T23:10:22.177Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Create_the_Canvas_and_draw_on_it": { + "modified": "2019-09-05T03:54:58.102Z", "contributors": [ - "Mingun" + "ekirpichyov", + "wbamberg", + "W-A-D", + "HellLena" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__": { - "modified": "2019-03-23T23:10:20.796Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Mouse_controls": { + "modified": "2020-05-27T13:59:03.040Z", "contributors": [ - "Mingun" + "S-inTheory", + "ekirpichyov", + "Merius", + "netmag" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/assign": { - "modified": "2020-10-15T21:29:38.981Z", + "Games/Tutorials/2D_breakout_game_Phaser/Bounce_off_the_walls": { + "modified": "2019-07-13T11:04:44.018Z", "contributors": [ - "YozhEzhi", - "GraceAredel", - "icw82", - "chulanovskyi", - "BaNru", - "e-omo", - "Mingun" + "BVaflick", + "AntonySawyer" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/constructor": { - "modified": "2019-03-23T23:10:17.901Z", + "Games/Tutorials/2D_breakout_game_Phaser/Game_over": { + "modified": "2019-07-04T10:47:35.001Z", "contributors": [ - "Natalya_Surikova", - "Mingun" + "BVaflick" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/create": { - "modified": "2020-10-15T21:28:49.512Z", + "Games/Tutorials/2D_breakout_game_Phaser": { + "modified": "2020-02-21T09:29:06.831Z", "contributors": [ - "dmarkin", - "Simaleon", - "Akh-rman", - "yedyharova", - "workonika", - "vinogradov", - "Aleksej", - "RinatMullayanov", - "vvwind", - "Mingun", - "SnowLeo" + "SpawnLeon", + "BVaflick", + "wbamberg", + "djigach" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/defineProperties": { - "modified": "2019-03-23T23:09:30.861Z", + "Games/Tutorials/2D_breakout_game_Phaser/Initialize_the_framework": { + "modified": "2020-05-27T14:06:50.271Z", "contributors": [ - "tankakatan", - "Mingun" + "S-inTheory", + "BVaflick", + "VsevolodIvanov", + "wbamberg", + "djigach" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/defineProperty": { - "modified": "2019-03-23T23:37:49.274Z", + "Games/Tutorials/2D_breakout_game_Phaser/Load_the_assets_and_print_them_on_screen": { + "modified": "2020-05-27T14:16:50.797Z", "contributors": [ - "tourman", - "iSokrat", - "gibson", - "RumyantsevMichael", - "uniqueusr", - "Mingun", - "Natalya_Surikova", - "Anton_Arestov", - "akhabibullina", - "teoli", - "dunmaksim", - "my8bit", - "Selvatico" + "S-inTheory", + "Surf12", + "BVaflick", + "wbamberg", + "djigach" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/entries": { - "modified": "2020-10-15T21:41:30.272Z", + "Games/Tutorials/2D_breakout_game_Phaser/Move_the_ball": { + "modified": "2020-05-27T14:22:37.560Z", "contributors": [ - "cloudofgeorge", - "KolesnikovR", - "SpawnLeon", - "YozhEzhi", - "Akh-rman", - "fscholz", - "bobberr", - "XaveScor", - "uazure", - "curdwithraisins", - "risentveber", - "Grinv" + "S-inTheory", + "BVaflick", + "wbamberg", + "djigach" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/freeze": { - "modified": "2020-10-15T21:30:06.043Z", + "Games/Tutorials/2D_breakout_game_Phaser/Physics": { + "modified": "2019-07-13T11:03:00.205Z", "contributors": [ - "YozhEzhi", - "WispProxy", - "kdex", - "pk.prog", - "chayn1k", - "Mingun" + "BVaflick", + "juliasheleva", + "wbamberg", + "djigach" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/fromEntries": { - "modified": "2020-10-15T22:14:28.772Z", + "Games/Tutorials/2D_breakout_game_Phaser/Scaling": { + "modified": "2020-05-27T14:30:34.825Z", "contributors": [ - "ekirpichyov", - "Autapomorph", - "Akh-rman" + "S-inTheory", + "BVaflick", + "wbamberg", + "djigach" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor": { - "modified": "2019-03-24T00:14:06.824Z", + "Games/Tutorials/2D_breakout_game_Phaser/Extra_lives": { + "modified": "2020-07-02T08:17:43.022Z", "contributors": [ - "Mingun", - "teoli", - "pashak" + "f1reSong", + "BVaflick" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors": { - "modified": "2020-10-15T22:14:28.295Z", + "Games/Tutorials/2D_breakout_game_Phaser/Collision_detection": { + "modified": "2019-07-13T11:08:36.093Z", "contributors": [ - "Akh-rman" + "BVaflick" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames": { - "modified": "2020-10-15T21:30:07.880Z", + "Games/Tutorials/2D_breakout_game_Phaser/The_score": { + "modified": "2019-07-13T11:09:17.012Z", "contributors": [ - "YozhEzhi", - "nakhodkiin", - "tourman", - "VsevolodTrofimov", - "Mingun" + "BVaflick" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols": { - "modified": "2020-10-15T21:30:06.924Z", + "Games/Tutorials/2D_breakout_game_Phaser/Player_paddle_and_controls": { + "modified": "2019-07-13T11:05:39.887Z", "contributors": [ - "nakhodkiin", - "SphinxKnight", - "Mingun", - "schyzoo" + "BVaflick" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf": { - "modified": "2019-03-23T23:09:23.592Z", + "Games/Tutorials/2D_breakout_game_Phaser/Win_the_game": { + "modified": "2019-07-04T12:16:45.863Z", "contributors": [ - "tonyganch", - "Mingun", - "Natalya_Surikova" + "BVaflick" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty": { - "modified": "2020-10-15T21:21:02.788Z", + "Games/Tutorials/2D_breakout_game_Phaser/Build_the_brick_field": { + "modified": "2019-07-13T11:07:30.266Z", "contributors": [ - "Roman-Kosov", - "ihoru", - "Mingun", - "teoli", - "Nick_Pershin", - "nurbek.ab" + "BVaflick" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/is": { - "modified": "2020-10-15T21:26:43.137Z", + "Games/Anatomy": { + "modified": "2020-09-16T08:22:06.866Z", "contributors": [ - "YozhEzhi", - "SphinxKnight", - "Mingun", - "teoli", - "Romanzes", - "franza" + "T-EVA-01", + "achernin+" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/isExtensible": { - "modified": "2019-10-09T12:01:13.252Z", + "Games/Introduction": { + "modified": "2020-01-09T13:42:58.936Z", "contributors": [ - "Mingun" + "idushii", + "nomo3919", + "BVaflick", + "RFG-G" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/isFrozen": { - "modified": "2020-10-15T21:30:08.003Z", + "Games/Tools/asm.js": { + "modified": "2019-06-20T10:10:26.692Z", "contributors": [ - "YozhEzhi", - "Mingun" + "jkulvich", + "wbamberg", + "Cyganov" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf": { - "modified": "2020-02-04T15:23:51.484Z", + "Games/Tools": { + "modified": "2019-01-17T01:51:17.038Z", "contributors": [ - "bagau", - "Mingun" + "wbamberg", + "Cyganov" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/isSealed": { - "modified": "2019-10-09T11:11:04.447Z", + "Glossary/Block/Scripting": { + "modified": "2019-03-23T22:09:52.830Z", "contributors": [ - "Mingun" + "DashPisareva" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/keys": { - "modified": "2020-10-15T21:30:08.678Z", + "orphaned/Glossary/Polifill": { + "modified": "2019-03-23T22:18:26.835Z", "contributors": [ - "zhvirblis", - "kdex", - "Mingun" + "pk.prog" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/preventExtensions": { - "modified": "2020-10-15T21:30:08.070Z", + "Web/Guide/HTML/HTML5/Constraint_validation": { + "modified": "2019-03-23T22:20:23.601Z", "contributors": [ - "YozhEzhi", - "serzero2007", - "nakhodkiin", - "Mingun" + "lautsevich", + "Pescao" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable": { - "modified": "2019-03-23T23:09:13.597Z", + "Web/Guide/HTML/HTML5": { + "modified": "2020-11-05T05:54:38.208Z", "contributors": [ - "Mingun" + "ksam", + "nikolay94", + "SphinxKnight", + "duhas1993", + "CrawlOverYou", + "Hamelion-gm", + "MuradAz", + "teoli", + "BychekRU", + "syam1123", + "M57", + "Jmunb", + "repby", + "uleming", + "askhat", + "andygol", + "Grakov", + "AxDaim" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/proto": { - "modified": "2020-10-15T21:29:34.357Z", + "Web/Guide/HTML/HTML5/Introduction_to_HTML5": { + "modified": "2019-03-23T23:32:08.971Z", "contributors": [ - "YozhEzhi", - "Sajag", - "Mingun" + "Jmunb", + "Grakov" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/prototype": { - "modified": "2020-03-13T11:04:21.413Z", + "Learn/CSS/Building_blocks/Cascade_tasks": { + "modified": "2020-10-01T14:31:53.395Z", "contributors": [ - "fishr-flash", - "AMurkin", - "Mingun", - "teoli", - "kreshikhin" + "at940266" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/seal": { - "modified": "2020-10-15T21:30:09.594Z", + "Learn/CSS/Building_blocks/Selectors/Attribute_selectors": { + "modified": "2020-10-08T15:38:42.541Z", "contributors": [ - "YozhEzhi", - "Mingun" + "at940266", + "k0w4lk", + "Ivan961" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf": { - "modified": "2019-09-11T03:19:06.537Z", + "Learn/CSS/Building_blocks/Selectors/Combinators": { + "modified": "2020-12-07T19:30:35.658Z", "contributors": [ - "Ichiru123", - "SphinxKnight", - "oziian", - "Mingun" + "RoPy73", + "at940266", + "anna.bunakova", + "sovushka-utrom", + "Ivan961" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/toLocaleString": { - "modified": "2019-09-20T08:30:13.696Z", + "Learn/CSS/Building_blocks/Selectors": { + "modified": "2020-07-19T06:45:12.608Z", "contributors": [ - "Mingun" + "k0w4lk", + "Ivan961", + "BADNaMe-RK" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/toSource": { - "modified": "2020-10-15T21:30:13.861Z", + "Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements": { + "modified": "2020-10-14T14:08:41.639Z", "contributors": [ - "boxa6", - "Mingun" + "at940266", + "anna.bunakova", + "Ivan961" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/toString": { - "modified": "2020-10-15T21:30:10.362Z", + "Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors": { + "modified": "2020-10-07T14:15:51.046Z", "contributors": [ - "ekirpichyov", - "IvanMorkva", - "Mingun" + "at940266", + "ctmyxa", + "k0w4lk", + "Ivan961" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/valueOf": { - "modified": "2019-03-23T23:15:16.213Z", + "Learn/CSS/Building_blocks/Selectors/Selectors_Tasks": { + "modified": "2020-10-28T14:57:16.890Z", "contributors": [ - "Haosik", - "Natalya_Surikova", - "Mingun", - "teoli", - "mixture" + "at940266" ] }, - "Web/JavaScript/Reference/Global_Objects/Object/values": { - "modified": "2020-10-15T21:50:11.196Z", + "Learn/CSS/CSS_layout/Multiple-column_Layout": { + "modified": "2020-09-06T07:21:18.080Z", "contributors": [ - "ekirpichyov", - "Yialo", - "XaveScor", - "Biblbrox", - "nllsdfx", - "ozknemoy" + "shade0602" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise": { - "modified": "2020-10-15T21:29:45.619Z", + "Learn/CSS/CSS_layout/Multicol_skills": { + "modified": "2020-09-07T06:45:08.142Z", "contributors": [ - "YuriSn", - "gudkovdanila", - "YozhEzhi", - "alok1", - "AliaksandrZahorski", - "jwhitlock", - "ugncry", - "Geloosa", - "RinatMullayanov", - "AlexKhram", - "applicab", - "prettyGoo", - "dtretyakov", - "Chudesnov" + "shade0602" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/all": { - "modified": "2020-10-15T21:33:26.483Z", + "Learn/CSS/CSS_layout/Position_skills": { + "modified": "2020-09-07T06:09:02.193Z", "contributors": [ - "BakrID", - "YozhEzhi", - "nudaworks", - "rutsky", - "NikIvan", - "AlexKhram", - "Crazymax11", - "f0rmat1k", - "axilirator" + "shade0602" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/allSettled": { - "modified": "2020-10-15T22:22:39.384Z", + "Learn/CSS/CSS_layout/Normal_Flow": { + "modified": "2020-10-13T15:21:40.503Z", "contributors": [ - "Neiromaster", - "ekirpichyov" + "mvictorl", + "nsvintitskiy", + "SoMuchEffort" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/any": { - "modified": "2020-10-15T22:27:25.562Z", + "Learn/CSS/CSS_layout/Responsive_Design": { + "modified": "2020-10-31T07:15:02.288Z", "contributors": [ - "ArkadiiRaih" + "shade0602" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/catch": { - "modified": "2020-10-15T21:48:47.444Z", + "Learn/CSS/First_steps/How_CSS_is_structured": { + "modified": "2020-11-30T19:42:39.732Z", "contributors": [ - "IgorCH", - "tirli", - "vitya-ne", - "torbasow", - "sergey-shambir", - "LopatkinEvgeniy", - "AlexKhram" + "RoPy73", + "shade0602", + "Ivan961", + "Ultron5" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/finally": { - "modified": "2020-10-15T22:01:51.236Z", + "Learn/CSS/First_steps/What_is_CSS": { + "modified": "2020-10-15T22:23:15.801Z", "contributors": [ - "kir.gimranov", - "mshipov", - "RussianPhotoGraf", - "IhnatsiS", - "NoviceBlunderer", - "Zudwa", - "x1unix" + "Ivan961", + "fedev", + "Tortik217" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/prototype": { - "modified": "2019-10-16T18:35:40.649Z", + "Learn/CSS/Building_blocks/Fundamental_CSS_comprehension": { + "modified": "2020-07-16T22:28:13.122Z", "contributors": [ - "tsimafey", - "viosng", - "alexicum", - "AlexKhram" + "maxbo8", + "trman", + "VyacheslavLobanov" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/race": { - "modified": "2020-10-15T21:39:40.095Z", + "Learn/CSS/Styling_text/Web_fonts": { + "modified": "2020-07-19T10:10:59.329Z", "contributors": [ - "asamofal", - "nakhodkiin", - "fscholz", - "nudaworks", - "hawker000", - "thedoctorde", - "AlexKhram", - "forsage" + "nsvintitskiy", + "shade0602" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/reject": { - "modified": "2020-10-15T21:39:33.387Z", + "Learn/CSS/Styling_text/Typesetting_a_homepage": { + "modified": "2020-07-16T22:26:27.408Z", "contributors": [ - "sergey-shambir", - "fscholz", - "Buggytheclown", - "0xff00ff", - "AlexKhram", - "UnikZ" + "shade0602" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/resolve": { - "modified": "2020-10-15T21:48:52.330Z", + "Learn/CSS/Styling_text/Styling_lists": { + "modified": "2020-07-16T22:26:14.698Z", "contributors": [ - "gusakmarina", - "nudaworks", - "AlexKhram", - "ball00n" + "shade0602", + "vedmibot" ] }, - "Web/JavaScript/Reference/Global_Objects/Promise/then": { - "modified": "2020-11-03T18:52:52.359Z", + "Learn/CSS/Howto": { + "modified": "2020-07-16T22:25:44.184Z", "contributors": [ - "fanich37", - "smlkA", - "YozhEzhi", - "Kesantielu", - "andreymir", - "AlexKhram", - "LeoVS09", - "ksladkov" + "code-timer", + "Shychara" ] }, - "Web/JavaScript/Reference/Global_Objects/Proxy": { - "modified": "2020-11-17T05:36:00.208Z", + "Learn/Common_questions/What_are_browser_developer_tools": { + "modified": "2020-07-16T22:35:48.058Z", "contributors": [ - "kosarev_va", - "sivashev", - "xurshidbekjonwin", - "lmjavascriptprogrammer", - "boxa6", - "DonikaV", - "nakhodkiin", - "Andrey-Bushman", - "kdex", - "torbasow", - "dtretyakov", - "im7mortal" + "mirajane23", + "fox67rus", + "Metallman", + "Dante103" ] }, - "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy": { - "modified": "2020-11-16T16:36:02.171Z", + "Learn/Getting_started_with_the_web/The_web_and_web_standards": { + "modified": "2020-08-13T10:56:47.304Z", "contributors": [ - "mfuji09" + "bogpok" ] }, - "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply": { - "modified": "2020-11-18T06:41:35.789Z", + "Learn/Getting_started_with_the_web/Installing_basic_software": { + "modified": "2020-07-16T22:34:11.219Z", "contributors": [ - "kosarev_va" + "Anonymous", + "skapesec", + "rapaich", + "Egokorok", + "gitzizou", + "boddik", + "BychekRU", + "Evgeny_Kurkin", + "Unregistered45", + "Neir" ] }, - "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/get": { - "modified": "2020-11-17T05:45:02.908Z", + "Learn/Common_questions/How_does_the_Internet_work": { + "modified": "2020-08-13T11:15:09.762Z", "contributors": [ - "kosarev_va" + "bogpok", + "S-Sukhin", + "kss555", + "Sturmtiger", + "OrkVasya", + "andrey_fm", + "TinaSuhanovskaya", + "elcamlost" ] }, - "Web/JavaScript/Reference/Global_Objects/Proxy/handler": { - "modified": "2020-11-18T06:44:17.889Z", + "Learn/Forms/How_to_build_custom_form_controls": { + "modified": "2020-07-16T22:21:58.194Z", "contributors": [ - "kosarev_va", - "SphinxKnight" + "Avrisia", + "outdever" ] }, - "Web/JavaScript/Reference/Global_Objects/Proxy/handler/deleteProperty": { - "modified": "2020-10-15T22:14:52.334Z", + "Learn/Forms/How_to_structure_a_web_form": { + "modified": "2020-09-23T12:04:06.961Z", "contributors": [ - "smlkA" + "ryabv", + "BADNaMe-RK", + "outdever", + "Lapagirl", + "vedmibot", + "SeryiMysh" ] }, - "Web/JavaScript/Reference/Global_Objects/Proxy/handler/set": { - "modified": "2020-11-17T05:50:39.778Z", + "Learn/Forms": { + "modified": "2020-07-16T22:21:01.609Z", "contributors": [ - "kosarev_va", - "Vilafox" + "ryabv", + "shmel3", + "Zekkler", + "neizerth", + "PWasiliy", + "SeryiMysh", + "chrisdavidmills", + "GaidaiAndrii", + "bracket", + "Dmitrij" ] }, - "Web/JavaScript/Reference/Global_Objects/Proxy/revocable": { - "modified": "2020-10-15T22:01:47.719Z", + "Learn/Forms/Sending_forms_through_JavaScript": { + "modified": "2020-11-20T12:05:04.254Z", "contributors": [ - "HarmlessEvil" + "lazyelf472" ] }, - "Web/JavaScript/Reference/Global_Objects/RangeError": { - "modified": "2019-03-23T23:08:28.070Z", + "Learn/Forms/Styling_web_forms": { + "modified": "2020-07-16T22:21:32.230Z", "contributors": [ - "Mingun", - "fscholz" + "8nabo" ] }, - "Web/JavaScript/Reference/Global_Objects/RangeError/prototype": { - "modified": "2019-03-23T23:08:28.689Z", + "Learn/Forms/Form_validation": { + "modified": "2020-10-17T05:54:59.534Z", "contributors": [ - "Mingun" + "raylyanway", + "NadinHub", + "Hydrock", + "nikolai-shabalin", + "JediKnightIT", + "Ishayahu", + "LbIdarka", + "ivandoroshenko" ] }, - "Web/JavaScript/Reference/Global_Objects/ReferenceError": { - "modified": "2020-10-15T21:30:26.550Z", + "Learn/Forms/Your_first_form": { + "modified": "2020-07-16T22:21:06.805Z", "contributors": [ - "dima74", - "Mingun" + "ryabv", + "deicer" ] }, - "Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype": { - "modified": "2019-03-23T23:08:22.399Z", + "Learn/Forms/Sending_and_retrieving_form_data": { + "modified": "2020-07-16T22:21:29.080Z", "contributors": [ - "Mingun" + "Shabu-Dabi", + "taletski", + "isetpro", + "melission", + "Kamikadze4GAME", + "ZveRuss", + "Dzmitry_K" ] }, - "Web/JavaScript/Reference/Global_Objects/Reflect": { - "modified": "2020-11-08T07:48:53.681Z", + "Learn/Forms/Basic_native_form_controls": { + "modified": "2020-12-02T02:50:19.864Z", "contributors": [ - "parabolabam", - "bakugod", - "Chank1e", - "SphinxKnight", - "Synthesize", - "rajdee", - "C`est la vie" + "kan0neego", + "lazyelf472", + "Галина", + "shade0602", + "outdever", + "Instantrec" ] }, - "Web/JavaScript/Reference/Global_Objects/Reflect/apply": { - "modified": "2020-10-15T22:01:47.478Z", + "Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web": { + "modified": "2020-12-10T10:10:26.376Z", "contributors": [ - "HarmlessEvil" + "Simkin", + "Khaidarov-Dinar", + "nepiravno", + "AlexChebanenko", + "shade0602", + "Why-are-you-crying", + "vedmibot" ] }, - "Web/JavaScript/Reference/Global_Objects/Reflect/construct": { - "modified": "2020-10-15T22:19:59.737Z", + "Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page": { + "modified": "2020-12-01T05:21:19.875Z", "contributors": [ - "bakugod" + "Furestry", + "RoPy73", + "Zekkler", + "AlekseyCorsello" ] }, - "Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty": { - "modified": "2020-10-15T22:19:53.301Z", + "Learn/HTML/Multimedia_and_embedding/Images_in_HTML": { + "modified": "2020-12-10T06:02:16.441Z", "contributors": [ - "bakugod" + "valandis", + "qafarov33", + "shade0602", + "wizardbil", + "WorpSeal", + "xHelloverx", + "Zekller", + "Corba", + "orcee", + "nowember", + "Aleksey_Esev", + "KoS57", + "InRedikaWB", + "Kouler", + "AliyevHrn", + "sowdfr", + "tav1313" ] }, - "Web/JavaScript/Reference/Global_Objects/Reflect/deleteProperty": { - "modified": "2020-10-15T22:19:49.053Z", + "Learn/HTML/Multimedia_and_embedding/Images_in_HTML/Test_your_skills:_HTML_images": { + "modified": "2020-12-10T07:17:32.470Z", "contributors": [ - "bakugod" + "valandis" ] }, - "Web/JavaScript/Reference/Global_Objects/Reflect/get": { - "modified": "2020-10-15T22:01:46.509Z", + "Learn/HTML/Introduction_to_HTML/Advanced_text_formatting": { + "modified": "2020-12-07T12:01:12.996Z", "contributors": [ - "HarmlessEvil" + "valandis", + "avdalyan", + "Ivan961", + "streetsummit", + "dkrukouski", + "boxa6", + "Bodyhealer", + "s.g.matinyan", + "Dzhabarovm", + "xap", + "Chugou9", + "slychai85", + "glebsc", + "pythonmag", + "FeruzOripov" ] }, - "Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys": { - "modified": "2020-10-15T22:05:30.827Z", + "Learn/HTML/Introduction_to_HTML/Debugging_HTML": { + "modified": "2020-07-16T22:24:16.076Z", "contributors": [ - "ArturJS" + "IlyaDanilovich", + "ekirpichyov", + "boxa6", + "krempson", + "thoughtspile", + "CruOne", + "MariyaSka" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp": { - "modified": "2020-08-25T20:36:26.657Z", + "Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals": { + "modified": "2020-12-07T02:44:19.544Z", "contributors": [ - "duduindo", - "etonomick", - "needpower", - "username1565", - "PavelKoroteev", - "Zizes", - "kaifonaft", - "wbamberg", - "Express2000", - "WispProxy", - "bobanko", - "sashatexb", - "Grundy", - "dstereo", - "socketpair", - "Hulio", - "Mingun", - "KiraAndMaxim", - "rhyne24" + "valandis", + "Vir", + "Ivan961", + "streetsummit", + "CLoud-Maker", + "exarces", + "4Realit", + "ndrxie", + "Hemonugi", + "boxa6", + "screenspace", + "a-klimantow", + "Tuman", + "nikin93" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/@@search": { - "modified": "2020-10-15T22:00:22.795Z", + "Learn/HTML/Introduction_to_HTML": { + "modified": "2020-07-16T22:22:52.967Z", "contributors": [ - "fax1ty" + "boxa6", + "skapesec", + "VAskel", + "SedovDP", + "SergeyIrk", + "s1lver", + "alekaru", + "Denispok", + "AKonia", + "pk.prog", + "Vosik", + "Cyganov" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/@@split": { - "modified": "2020-10-15T22:05:39.755Z", + "Learn/HTML/Introduction_to_HTML/Marking_up_a_letter": { + "modified": "2020-12-07T13:58:43.781Z", "contributors": [ - "0x0071" + "valandis", + "Khaidarov-Dinar", + "shade0602", + "Janivar05", + "Darbestor", + "boxa6", + "Tuman", + "thoughtspile", + "saniaky" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/exec": { - "modified": "2019-10-03T07:10:20.564Z", + "Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content": { + "modified": "2020-12-08T12:05:46.465Z", "contributors": [ - "Haosik", - "Mingun" + "valandis", + "shade0602", + "H3llaFresh", + "boxa6", + "SenkevichEvgenii", + "Dzhabarovm", + "thoughtspile" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/flags": { - "modified": "2019-03-23T23:03:48.545Z", + "Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML": { + "modified": "2020-12-06T13:02:48.159Z", "contributors": [ - "SphinxKnight", - "Mingun" + "valandis", + "Ivan961", + "streetsummit", + "AlexKost700", + "trman", + "boxa6", + "Bapen1k", + "SoMuchEffort", + "AlexeyIoffe", + "DenisYaschenko", + "hornuglan", + "reksar", + "AkulinaShark", + "saniaky", + "SergeyIrk", + "SergeySM", + "thoughtspile", + "nikin93", + "kolanski" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/global": { - "modified": "2019-03-23T23:03:48.212Z", + "Learn/HTML/Introduction_to_HTML/Getting_started": { + "modified": "2020-12-06T12:25:35.513Z", "contributors": [ - "Mingun" + "valandis", + "avdalyan", + "mirzoevtt", + "Ivan961", + "OlehMrB", + "boxa6", + "HelpVPS", + "SedovDP", + "Smekh", + "SoMuchEffort", + "AlexeyIoffe", + "buhman1974", + "Christisrisen", + "lexachsar", + "5iv1i73", + "SelenIT", + "SergeyIrk", + "ax2mx", + "StrixG", + "nikin93", + "thoughtspile", + "katerina_ti", + "zloyKrolik", + "Startsev", + "kolanski", + "AKonia" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase": { - "modified": "2019-03-23T23:03:53.037Z", + "Learn/HTML/Introduction_to_HTML/Creating_hyperlinks": { + "modified": "2020-12-07T04:48:22.214Z", "contributors": [ - "Mingun" + "valandis", + "Ivan961", + "Aalexashka", + "Hemonugi", + "boxa6", + "Bob-chemist", + "xap", + "Klevtcov", + "reksar", + "skapesec", + "Potemkiin", + "Nerill", + "Cruseir", + "thoughtspile", + "arturparkhisenko", + "nikin93" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/input": { - "modified": "2020-10-15T22:21:51.345Z", + "Learn/HTML/Introduction_to_HTML/Document_and_website_structure": { + "modified": "2020-12-07T13:21:17.650Z", "contributors": [ - "gudkovdanila" + "valandis", + "ana-karp", + "Ivan961", + "sergeyshulzhenko", + "Merius", + "boxa6", + "thoughtspile", + "Potemkiin", + "beloglazof", + "IrinaShv" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex": { - "modified": "2019-03-23T23:03:47.604Z", + "Learn/HTML/Howto": { + "modified": "2020-07-16T22:22:30.849Z", "contributors": [ - "Mingun" + "PaRaD0XCORP", + "Rendjey", + "AKonia" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch": { - "modified": "2020-10-15T22:21:50.708Z", + "Learn/JavaScript/Asynchronous/Timeouts_and_intervals": { + "modified": "2020-12-09T10:32:13.319Z", "contributors": [ - "zoodogood", - "gudkovdanila" + "WhoRlyCares", + "velheor24" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/multiline": { - "modified": "2019-03-23T23:03:46.419Z", + "Learn/JavaScript/Building_blocks/Events": { + "modified": "2020-08-14T06:15:51.092Z", "contributors": [ - "Mingun" + "bogpok", + "Bb1cTpeJI", + "artamonster", + "chergav", + "kryukalexander", + "ConstantineZz", + "Zibroff", + "vOICe-xx", + "CharlyLovegood", + "slychai85", + "Paul_Yuhnovich" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/n": { - "modified": "2020-10-15T21:54:34.887Z", + "Learn/JavaScript/Objects/Adding_bouncing_balls_features": { + "modified": "2020-07-16T22:32:35.948Z", "contributors": [ - "ekirpichyov", - "teoli", - "yulllll", - "Mihail15", - "KamilOcean" + "Stexe", + "slychai85" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/prototype": { - "modified": "2019-03-23T23:05:56.982Z", + "Learn/JavaScript/Objects": { + "modified": "2020-07-16T22:31:52.750Z", "contributors": [ - "Mingun" + "VoropN", + "injashkin", + "KomarovSergey", + "george-04" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/source": { - "modified": "2020-05-04T10:45:02.263Z", + "Learn/JavaScript/Objects/Inheritance": { + "modified": "2020-10-17T04:55:20.992Z", "contributors": [ - "ellizii", - "Mingun" + "raylyanway", + "masawik", + "wind-of", + "injashkin", + "Aparin", + "AntonySawyer", + "slychai85" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/sticky": { - "modified": "2019-03-23T23:03:51.760Z", + "Learn/JavaScript/Objects/JSON": { + "modified": "2020-07-16T22:32:28.868Z", "contributors": [ - "SphinxKnight", - "serj-by", - "WispProxy", - "Mingun" + "Tatyana-c", + "pm3512", + "wind-of", + "NikitaOstapenko1205", + "boxa6", + "Lirikklimov", + "slychai85" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/test": { - "modified": "2020-05-25T03:11:01.471Z", + "Learn/JavaScript/Objects/Object_building_practice": { + "modified": "2020-07-16T22:32:32.476Z", "contributors": [ - "SphinxKnight", - "pohuyebawtak", - "Glazomer", - "waterplea", - "Mingun", - "InoY" + "Slowball", + "benzin_kanister", + "ellegre", + "boxa6", + "slychai85" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/toSource": { - "modified": "2019-08-27T16:00:03.262Z", + "Learn/JavaScript/Objects/Object_prototypes": { + "modified": "2020-07-16T22:32:22.353Z", "contributors": [ - "Yialo", - "Mingun" + "wind-of", + "sahmildzhakeev", + "injashkin", + "Aparin", + "kplatova", + "NooNoo1337", + "VaselisaS", + "slychai85", + "arnoldovich", + "AndreySushentsov" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/toString": { - "modified": "2019-03-23T23:03:38.400Z", + "Learn/JavaScript/Objects/Object-oriented_JS": { + "modified": "2020-11-28T15:15:40.063Z", "contributors": [ - "Mingun" + "Tartalon", + "Viatcheslav-Malahov", + "wind-of", + "Detrimon", + "BadLame", + "ConstantineZz", + "ellegre", + "injashkin", + "NooNoo1337", + "Roman-Halenko", + "sergeomak", + "Elena_Petrenko", + "uandrew", + "slychai85", + "superpuper32", + "GennadyGlushenkov" ] }, - "Web/JavaScript/Reference/Global_Objects/RegExp/unicode": { - "modified": "2020-10-15T22:03:35.958Z", + "Learn/JavaScript/Objects/Basics": { + "modified": "2020-11-25T08:55:51.454Z", "contributors": [ - "PROPHESSOR" + "Tartalon", + "alexpikuta", + "wind-of", + "jynweythek", + "iwanttobealight", + "ConstantineZz", + "genesky", + "boxa6", + "injashkin", + "NooNoo1337", + "Dusmatoff", + "KoS57", + "slychai85", + "Jony_e", + "slowpokex", + "DoRightt", + "superpuper32" ] }, - "Web/JavaScript/Reference/Global_Objects/Set": { - "modified": "2020-10-15T21:31:17.149Z", + "Learn/JavaScript/First_steps/A_first_splash": { + "modified": "2020-09-18T19:59:13.793Z", "contributors": [ - "andrew_shr", - "YozhEzhi", - "kan.a", + "aashch1", "SphinxKnight", - "dima74", - "papadima", - "vibecode", - "ViZhe", - "dtretyakov" + "sirartemis", + "TurtleOld", + "wanvo", + "Novo", + "Shadow86", + "slychai85", + "TaizoGem", + "Rodionoff", + "st4nislava", + "AndrewSamofalov", + "warsan", + "SergeySM", + "lipav", + "InternetShelteredBoy", + "HaukIce", + "maicom64", + "fragmentbyte", + "kirabt123", + "Segyn", + "FIJN", + "alekaru" ] }, - "Web/JavaScript/Reference/Global_Objects/Set/Set": { - "modified": "2020-12-07T09:25:28.434Z", + "Learn/JavaScript/First_steps/Arrays": { + "modified": "2020-07-16T22:30:57.680Z", "contributors": [ "SphinxKnight", - "knatysik" + "Immdevrov", + "chergav", + "ConstantineZz", + "maksolimp", + "AliyevHrn", + "slychai85", + "10486", + "samofand", + "ArtyomIv" ] }, - "Web/JavaScript/Reference/Global_Objects/Set/add": { - "modified": "2020-10-15T22:03:24.314Z", + "Learn/JavaScript/First_steps": { + "modified": "2020-07-16T22:29:55.165Z", "contributors": [ - "Siteograf" + "chrisdavidmills", + "boxa6", + "maxno62", + "Jertej", + "pepsikat", + "alekaru", + "a13xk", + "campside", + "werreour", + "tagir000" ] }, - "Web/JavaScript/Reference/Global_Objects/Set/clear": { - "modified": "2020-10-15T21:58:59.279Z", + "Learn/JavaScript/First_steps/Math": { + "modified": "2020-07-16T22:30:28.347Z", "contributors": [ - "dima74" + "podocenov", + "SphinxKnight", + "bsanzhiev", + "xxphantom", + "EugeneSvetlakov", + "ConstantineZz", + "galaxy3user", + "BerezkinBerezkin", + "y2k", + "Froris", + "AndrewSamofalov", + "FIJN" ] }, - "Web/JavaScript/Reference/Global_Objects/Set/delete": { - "modified": "2020-10-15T22:04:59.296Z", + "Learn/JavaScript/First_steps/Useful_string_methods": { + "modified": "2020-12-02T10:07:41.183Z", "contributors": [ - "ekirpichyov", - "ArmoGidec" + "nyood", + "SphinxKnight", + "Ivan961", + "Anonymous", + "RedKvothe", + "ConstantineZz", + "boxa6", + "chrisdavidmills", + "AsVit", + "AliyevHrn", + "slychai85", + "MariyaSka", + "samofand", + "AndrewSamofalov" ] }, - "Web/JavaScript/Reference/Global_Objects/Set/entries": { - "modified": "2020-10-15T22:22:34.627Z", + "Learn/JavaScript/First_steps/Variables": { + "modified": "2020-07-23T12:20:59.443Z", "contributors": [ - "ekirpichyov" + "k0w4lk", + "SphinxKnight", + "goyalion17", + "ConstantineZz", + "hasiev-elchin", + "Froris", + "AliyevHrn", + "slychai85", + "AndrewSamofalov", + "laion220995", + "HaukIce" ] }, - "Web/JavaScript/Reference/Global_Objects/Set/forEach": { - "modified": "2020-10-15T22:18:01.267Z", + "Learn/JavaScript/First_steps/What_is_JavaScript": { + "modified": "2020-07-16T22:30:12.291Z", "contributors": [ - "TatarovAE", - "boulderboy" + "hisbvdis", + "SphinxKnight", + "Avdros", + "ana-karp", + "EugeneSvetlakov", + "goyalion17", + "AlexanderSpivak", + "KrasPvP", + "Kirill20123", + "chrisdavidmills", + "DmitryYev", + "Sherxan", + "DraXXX", + "s0nly", + "InternetShelteredBoy", + "Jertej", + "fragmentbyte", + "YanaGord", + "pathliving", + "perevalova", + "dkireev", + "susov", + "pust0ta", + "Badpioneer", + "MrCopying", + "DRuslan", + "Mikhail_Eltekov", + "alekaru", + "lawyer12" ] }, - "Web/JavaScript/Reference/Global_Objects/Set/has": { - "modified": "2020-10-15T22:10:52.073Z", + "Learn/JavaScript/First_steps/Silly_story_generator": { + "modified": "2020-11-24T09:51:12.035Z", "contributors": [ - "raylyanway" + "tetragidrohlorid", + "SphinxKnight", + "ikzsl", + "AntonySawyer", + "ConstantineZz", + "vasja-slvm", + "AliyevHrn", + "slychai85", + "epidersis", + "DonVeds" ] }, - "Web/JavaScript/Reference/Global_Objects/Set/prototype": { - "modified": "2020-10-15T22:08:32.198Z", + "Learn/JavaScript/First_steps/Strings": { + "modified": "2020-09-30T14:12:03.725Z", "contributors": [ - "AndreyGlyan", - "qqwweeaassdd", - "paramoshkinandrew" + "artsimon555", + "SphinxKnight", + "maxbo8", + "ConstantineZz", + "boxa6", + "galaxy3user", + "CharlyLovegood", + "mironovartem" ] }, - "Web/JavaScript/Reference/Global_Objects/Set/size": { - "modified": "2020-10-15T22:22:51.490Z", + "Learn/JavaScript/First_steps/What_went_wrong": { + "modified": "2020-07-16T22:30:36.453Z", "contributors": [ - "ekirpichyov" + "SphinxKnight", + "Immdevrov", + "chrisdavidmills", + "SedovDP", + "ArturWer", + "hasiev-elchin", + "Froris", + "AliyevHrn", + "MariyaSka", + "AndrewSamofalov", + "SergeySM", + "nikitapoly" ] }, - "Web/JavaScript/Reference/Global_Objects/Set/values": { - "modified": "2020-10-15T22:22:36.094Z", + "Learn/Common_questions/Pages_sites_servers_and_search_engines": { + "modified": "2020-09-27T11:42:16.769Z", "contributors": [ - "ekirpichyov" + "sailonely", + "PinkDeer", + "beloglazof", + "OrkVasya", + "Kipelych", + "TinaSuhanovskaya", + "Hasyama", + "elcamlost" ] }, - "Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer": { - "modified": "2019-03-23T22:09:27.484Z", + "Learn/Server-side/Django/Authentication": { + "modified": "2020-10-09T09:34:14.083Z", "contributors": [ - "nikolaysalinder", - "scilganon", - "curdwithraisins" + "hustonCun", + "i0tool5", + "Andrey.Chichak", + "SYSchel", + "Maksimka101", + "ivkainova", + "VyacheslavLobanov", + "DIAMONDinc", + "warsan", + "Flygrounder", + "kivaschenko", + "MariyaSka", + "zet694", + "al+chernin" ] }, - "Web/JavaScript/Reference/Global_Objects/String": { - "modified": "2020-11-19T06:55:56.629Z", + "Learn/Server-side/Django/Introduction": { + "modified": "2020-12-09T11:58:11.401Z", "contributors": [ - "liubov", - "mangl-auf", - "boxa6", - "wbamberg", - "an2323", - "IvanMorkva", - "Mingun", - "fobo66", - "teoli", - "ethertank" + "mantisSp", + "malikovboo", + "exelay", + "NickSalander", + "xc0derx", + "azhlbn", + "NeshkoO", + "kivaschenko", + "hbble", + "Danchek", + "n05tr0m0", + "Limpar", + "vakhet", + "kilovoltov", + "AnnaSamonenko", + "DIAMONDinc" ] - }, - "Web/JavaScript/Reference/Global_Objects/String/@@iterator": { - "modified": "2020-10-14T10:03:26.063Z", + }, + "Learn/Server-side/Django/Deployment": { + "modified": "2020-07-16T22:37:42.545Z", "contributors": [ - "scrum", - "SphinxKnight", - "Mingun" + "velocanica", + "Vanvala", + "Nunyapa", + "DIAMONDinc", + "kitasS", + "1Gregory", + "kivaschenko", + "al+chernin" ] }, - "Web/JavaScript/Reference/Global_Objects/String/Trim": { - "modified": "2019-03-23T23:11:20.382Z", + "Learn/Server-side/Django/Sessions": { + "modified": "2020-07-16T22:37:27.912Z", "contributors": [ - "KiraAndMaxim", - "Mingun", - "Ajooluz" + "egorguscha", + "timur-orudzhov", + "askras", + "al+chernin" ] }, - "Web/JavaScript/Reference/Global_Objects/String/TrimLeft": { - "modified": "2019-03-23T23:06:19.542Z", + "Learn/Server-side/Express_Nodejs/Tutorial_local_library_website": { + "modified": "2020-07-16T22:38:16.847Z", "contributors": [ - "Mingun" + "maxno62", + "daviys" ] }, - "Web/JavaScript/Reference/Global_Objects/String/TrimRight": { - "modified": "2019-03-23T23:06:21.966Z", + "Learn/Server-side/First_steps/Website_security": { + "modified": "2020-12-05T11:58:05.010Z", "contributors": [ - "Mingun" + "valandis", + "ruslanjumagaliev", + "maxlu86", + "tymino" ] }, - "Web/JavaScript/Reference/Global_Objects/String/anchor": { - "modified": "2019-03-18T20:48:46.079Z", + "Learn/Tools_and_testing/GitHub": { + "modified": "2020-09-30T19:47:51.138Z", "contributors": [ - "risenforces", - "DenVdmj", - "Mingun" + "TXCloud", + "PPGAkril", + "garanzha.s.a" ] }, - "Web/JavaScript/Reference/Global_Objects/String/big": { - "modified": "2019-03-23T23:06:53.527Z", + "Learn/Tools_and_testing/Client-side_JavaScript_frameworks": { + "modified": "2020-07-16T22:39:33.460Z", "contributors": [ - "Mingun" + "Anonymous" ] }, - "Web/JavaScript/Reference/Global_Objects/String/blink": { - "modified": "2019-03-23T23:06:56.834Z", + "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started": { + "modified": "2020-07-16T22:39:39.236Z", "contributors": [ - "Mingun" + "ckomop0x" ] }, - "Web/JavaScript/Reference/Global_Objects/String/bold": { - "modified": "2019-03-23T23:06:52.878Z", + "Learn/Common_questions/What_is_a_domain_name": { + "modified": "2020-07-16T22:35:44.834Z", "contributors": [ - "Mingun" + "StasBalia", + "sergeyshulzhenko", + "CLoud-Maker", + "thecodecreator", + "Glebowsky", + "elcamlost", + "makoviychuk", + "vladislavukhov" ] }, - "Web/JavaScript/Reference/Global_Objects/String/charAt": { - "modified": "2019-09-05T08:52:29.623Z", + "Learn/Common_questions/What_are_hyperlinks": { + "modified": "2020-11-25T08:11:30.000Z", "contributors": [ - "Mingun" + "NikeSmitt", + "Aalexashka", + "vladislavukhov", + "lerniri" ] }, - "Web/JavaScript/Reference/Global_Objects/String/charCodeAt": { - "modified": "2019-10-10T16:47:08.723Z", + "Learn/Common_questions/What_is_a_URL": { + "modified": "2020-07-16T22:35:30.373Z", "contributors": [ - "WispProxy", - "Mingun" + "Excent163", + "gadjetron", + "vladislavukhov", + "lerniri" ] }, - "Web/JavaScript/Reference/Global_Objects/String/codePointAt": { - "modified": "2019-03-23T23:06:49.782Z", + "Learn/Accessibility/Accessibility_troubleshooting": { + "modified": "2020-07-16T22:40:36.878Z", "contributors": [ - "SphinxKnight", - "Mingun" + "boxa6" ] }, - "Web/JavaScript/Reference/Global_Objects/String/concat": { - "modified": "2019-03-23T23:06:50.258Z", + "Learn/Accessibility/CSS_and_JavaScript": { + "modified": "2020-07-16T22:40:19.160Z", "contributors": [ - "Mingun" + "Madihander", + "boxa6" ] }, - "Web/JavaScript/Reference/Global_Objects/String/endsWith": { - "modified": "2020-11-30T13:19:02.930Z", + "Learn/Accessibility/HTML": { + "modified": "2020-07-16T22:40:14.761Z", "contributors": [ - "vedmaque", - "viktishchenko", - "SphinxKnight", - "burashka", - "Mingun" + "TurtleOld", + "baradusov", + "niktariy", + "boxa6" ] }, - "Web/JavaScript/Reference/Global_Objects/String/fixed": { - "modified": "2019-03-23T23:06:56.996Z", + "Learn/Accessibility": { + "modified": "2020-07-16T22:40:00.507Z", "contributors": [ - "Mingun" + "baradusov", + "pepelsbey", + "niktariy", + "IgorPuchkov2003", + "buhman1974", + "Pristavka", + "fasnet", + "iksah", + "Paul_Yuhnovich" ] }, - "Web/JavaScript/Reference/Global_Objects/String/fontcolor": { - "modified": "2019-03-23T23:06:53.696Z", + "Learn/Accessibility/Mobile": { + "modified": "2020-07-16T22:40:32.502Z", "contributors": [ - "Mingun" + "boxa6" ] }, - "Web/JavaScript/Reference/Global_Objects/String/fontsize": { - "modified": "2019-03-23T23:06:55.867Z", + "Learn/Accessibility/Multimedia": { + "modified": "2020-07-16T22:40:27.927Z", "contributors": [ - "Mingun" + "boxa6" ] }, - "Web/JavaScript/Reference/Global_Objects/String/fromCharCode": { - "modified": "2020-02-26T00:26:26.501Z", + "Learn/Accessibility/WAI-ARIA_basics": { + "modified": "2020-07-16T22:40:23.911Z", "contributors": [ - "kurbanovjasur", - "Mingun" + "streloc84", + "boxa6" ] }, - "Web/JavaScript/Reference/Global_Objects/String/fromCodePoint": { - "modified": "2019-03-23T23:07:12.216Z", + "Learn/Accessibility/What_is_accessibility": { + "modified": "2020-07-16T22:40:06.747Z", "contributors": [ - "SphinxKnight", - "Mingun" + "niktariy", + "Frisle", + "Pristavka" ] }, - "Web/JavaScript/Reference/Global_Objects/String/includes": { - "modified": "2020-10-15T21:31:11.231Z", + "orphaned/Learn/How_to_contribute": { + "modified": "2020-07-16T22:33:46.276Z", "contributors": [ - "Therrance", - "fscholz", - "dima74", - "PetrBorisov", - "kdex", - "burashka", - "Mingun" + "SphinxKnight", + "KTatyana", + "BychekRU", + "MuradAz" ] }, - "Web/JavaScript/Reference/Global_Objects/String/indexOf": { - "modified": "2019-04-10T16:45:26.467Z", + "Learn/Front-end_web_developer": { + "modified": "2020-10-26T19:26:16.101Z", "contributors": [ - "danielvinogradov", - "expeerd", - "Mingun" + "Villian79", + "bogpok", + "Menma" ] }, - "Web/JavaScript/Reference/Global_Objects/String/italics": { - "modified": "2019-03-23T23:06:57.747Z", + "Learn/Common_questions/What_is_a_web_server": { + "modified": "2020-07-16T22:35:32.096Z", "contributors": [ - "Mingun" + "joshua1955", + "Dozorengel", + "beloglazof", + "Geloosa", + "erelena", + "Sumere4ny", + "talgautb", + "Xryak", + "uralbash", + "elcamlost" ] }, - "Web/JavaScript/Reference/Global_Objects/String/lastIndexOf": { - "modified": "2019-03-23T23:06:47.724Z", + "conflicting/MDN/Contribute": { + "modified": "2020-10-30T09:21:05.942Z", "contributors": [ - "expeerd", - "Mingun" + "ksam", + "jswisher", + "Valenchak" ] }, - "Web/JavaScript/Reference/Global_Objects/String/length": { - "modified": "2019-03-23T23:07:11.163Z", + "MDN/At_ten": { + "modified": "2019-03-23T22:49:58.338Z", "contributors": [ - "Mingun" + "dimakozakov", + "acidicMercury8", + "Myshov", + "anmo" ] }, - "Web/JavaScript/Reference/Global_Objects/String/link": { - "modified": "2019-03-23T23:06:52.727Z", + "MDN/Contribute/Howto/Create_and_edit_pages": { + "modified": "2020-04-10T13:36:06.534Z", "contributors": [ - "RumyantsevMichael", - "Mingun" + "karifan8767", + "wbamberg", + "djigach", + "KaroHovhannisyan", + "Ferguse", + "vaser321", + "TemmyR", + "Servik17", + "vislogurov", + "Chronosms", + "BychekRU", + "SashaSh", + "Spiker" ] }, - "Web/JavaScript/Reference/Global_Objects/String/localeCompare": { - "modified": "2019-03-23T23:06:31.683Z", + "orphaned/MDN/Contribute/Howto/Create_an_MDN_account": { + "modified": "2020-08-25T20:34:15.669Z", "contributors": [ - "ovvn", - "Mingun" + "duduindo", + "sayfullayevabdixalil", + "stefantsova", + "svyatoslavlp", + "Fredoss", + "bayashka123", + "seliverstova", + "wbamberg", + "erfari", + "takto", + "yambergaa", + "CaptainMorgan", + "Dimetriu", + "Katya_Kosuga", + "Aleksandr2101" ] }, - "Web/JavaScript/Reference/Global_Objects/String/match": { - "modified": "2019-08-27T15:10:06.292Z", + "orphaned/MDN/Contribute/Howto/Do_a_technical_review": { + "modified": "2020-01-04T22:10:59.231Z", "contributors": [ - "Yialo", - "ArmoGidec", - "Mingun" + "Ivan961", + "shmel3", + "wbamberg", + "StyleToken", + "Devengineer", + "Aleksandr2101" ] }, - "Web/JavaScript/Reference/Global_Objects/String/matchAll": { - "modified": "2020-10-15T22:15:55.263Z", + "orphaned/MDN/Contribute/Howto/Do_an_editorial_review": { + "modified": "2019-10-02T16:12:23.523Z", "contributors": [ - "atmobox66", - "Yialo", - "nakhodkiin" + "wbamberg", + "ivanson", + "Jessai", + "ilyar", + "SnejUgal", + "AlexeyOm", + "L18-666B", + "Devengineer" ] }, - "Web/JavaScript/Reference/Global_Objects/String/normalize": { - "modified": "2019-08-27T15:13:41.527Z", + "MDN/Contribute/Howto/Add_or_update_browser_compatibility_data": { + "modified": "2019-07-13T14:51:28.876Z", "contributors": [ - "Yialo", - "Seresigo", - "borschsergey", - "SphinxKnight", - "Metotron", - "Mingun", - "dtretyakov" + "fuggy" ] }, - "Web/JavaScript/Reference/Global_Objects/String/padEnd": { - "modified": "2019-08-27T15:13:11.473Z", + "orphaned/MDN/Contribute/Howto/Set_the_summary_for_a_page": { + "modified": "2019-03-23T22:33:34.588Z", "contributors": [ - "Yialo", - "teoli", - "a-chepugov" + "wbamberg", + "che7ovek", + "Glebowsky" ] }, - "Web/JavaScript/Reference/Global_Objects/String/padStart": { - "modified": "2020-10-15T21:55:08.745Z", + "orphaned/MDN/Contribute/Howto/Tag_JavaScript_pages": { + "modified": "2019-01-17T02:41:09.446Z", "contributors": [ - "Yialo", - "vladimircreative", - "wa-Nadoo", - "timbset" + "wbamberg", + "dyaroman" ] }, - "Web/JavaScript/Reference/Global_Objects/String/prototype": { - "modified": "2019-08-27T15:11:15.337Z", + "MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web": { + "modified": "2019-03-18T20:31:43.828Z", "contributors": [ - "Yialo", - "EugeneTarasenko", - "ukrlex01", - "arctic-hare", - "webnarmin", - "Mingun" + "MuradAz" ] }, - "Web/JavaScript/Reference/Global_Objects/String/raw": { - "modified": "2019-03-23T23:06:30.098Z", + "MDN/Contribute/Processes": { + "modified": "2019-01-17T00:00:52.853Z", "contributors": [ - "SphinxKnight", - "oleg_s", - "Mingun", - "dtretyakov" + "wbamberg", + "warsan" ] }, - "Web/JavaScript/Reference/Global_Objects/String/repeat": { - "modified": "2020-10-15T21:31:18.222Z", + "orphaned/MDN/Editor/Basics": { + "modified": "2020-09-30T15:43:33.440Z", "contributors": [ - "KTatyana", - "Mingun", - "dtretyakov" + "chrisdavidmills", + "aleksandrpnshkn", + "wbamberg", + "ValeriiBoiko", + "djigach", + "warsan", + "JavaS" ] }, - "Web/JavaScript/Reference/Global_Objects/String/replace": { - "modified": "2020-10-15T21:24:19.735Z", + "orphaned/MDN/Editor/Basics/Page_controls": { + "modified": "2020-09-30T15:43:33.388Z", "contributors": [ - "YozhEzhi", - "dimakovalevskyi", - "igorkusoff", - "Mingun", - "Lambrusco.pro", - "teoli", - "andrey_d" + "chrisdavidmills", + "aleksandrpnshkn" ] }, - "Web/JavaScript/Reference/Global_Objects/String/replaceAll": { - "modified": "2020-10-15T22:34:38.094Z", + "orphaned/MDN/Editor/Basics/Toolbar": { + "modified": "2020-09-30T15:43:33.855Z", "contributors": [ - "GuyFox70" + "chrisdavidmills", + "aleksandrpnshkn" ] }, - "Web/JavaScript/Reference/Global_Objects/String/search": { - "modified": "2019-10-03T07:09:20.235Z", + "orphaned/MDN/Editor": { + "modified": "2020-09-30T15:43:33.251Z", "contributors": [ - "Glazomer", - "nakhodkiin", - "atna", - "Mingun" + "chrisdavidmills", + "andresvara88", + "Vyprichenko", + "Ivan961", + "wbamberg", + "Luboshenko", + "T1mL3arn", + "warsan", + "anastasiya-podolyak", + "BychekRU", + "sputnik1986", + "Grigorjjjmolokov81", + "KrishnaKevalam", + "Slang74" ] }, - "Web/JavaScript/Reference/Global_Objects/String/slice": { - "modified": "2020-12-02T04:52:58.834Z", + "orphaned/MDN/Editor/Source_mode": { + "modified": "2020-09-30T15:43:35.463Z", "contributors": [ - "inva8de", - "bestwebdeveloper", - "Andrii-Oleksyshyn", - "Mingun" + "chrisdavidmills", + "Ivan961" ] }, - "Web/JavaScript/Reference/Global_Objects/String/small": { - "modified": "2019-03-23T23:06:51.754Z", + "orphaned/MDN/Editor/Tables": { + "modified": "2020-09-30T15:43:35.242Z", "contributors": [ - "Mingun" + "chrisdavidmills", + "Ivan961" ] }, - "Web/JavaScript/Reference/Global_Objects/String/split": { - "modified": "2020-11-30T06:21:03.966Z", + "orphaned/MDN/Editor/Keyboard_shortcuts": { + "modified": "2020-09-30T15:43:34.335Z", "contributors": [ - "DarkGoanna", - "Ect0PzG4m1ng", - "IgorSkvortsov", - "bruha", - "terranisu", - "Mingun", - "FRiMN" + "chrisdavidmills", + "Ivan961" ] }, - "Web/JavaScript/Reference/Global_Objects/String/startsWith": { - "modified": "2020-10-15T21:31:11.246Z", + "orphaned/MDN/Editor/Images": { + "modified": "2020-09-30T15:43:34.113Z", "contributors": [ - "ilyasidorchik", - "viktishchenko", - "Simaleon", - "dmitryorly", - "SphinxKnight", - "AtataUruru", - "burashka", - "Mingun" + "chrisdavidmills", + "Avdros", + "wbamberg", + "pk.prog" ] }, - "Web/JavaScript/Reference/Global_Objects/String/strike": { - "modified": "2019-09-05T08:52:44.580Z", + "orphaned/MDN/Editor/Redirects": { + "modified": "2020-09-30T15:43:34.816Z", "contributors": [ - "Mingun" + "chrisdavidmills", + "Ivan961" ] }, - "Web/JavaScript/Reference/Global_Objects/String/sub": { - "modified": "2019-03-23T23:07:01.566Z", + "orphaned/MDN/Editor/Syntax_highlighting": { + "modified": "2020-09-30T15:43:35.025Z", "contributors": [ - "Mingun" + "chrisdavidmills", + "Ivan961" ] }, - "Web/JavaScript/Reference/Global_Objects/String/substr": { - "modified": "2020-10-15T21:31:19.515Z", + "orphaned/MDN/Editor/Links": { + "modified": "2020-09-30T15:43:34.675Z", "contributors": [ - "art-gur", - "lugovov", - "Halkyon", - "fscholz", - "Mingun" + "chrisdavidmills", + "Ivan961" ] }, - "Web/JavaScript/Reference/Global_Objects/String/substring": { - "modified": "2019-03-23T23:06:24.574Z", + "MDN/Yari": { + "modified": "2019-09-09T15:51:19.091Z", "contributors": [ - "Barkhat26", - "Mingun" + "SphinxKnight", + "wbamberg", + "BychekRU", + "FRiMN" ] }, - "Web/JavaScript/Reference/Global_Objects/String/sup": { - "modified": "2019-03-23T23:06:59.702Z", + "MDN/Tools/KumaScript/Troubleshooting": { + "modified": "2019-07-08T19:30:04.842Z", "contributors": [ - "Mingun" + "fuggy", + "wbamberg", + "MariyaSka", + "cpigat" ] }, - "Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase": { - "modified": "2019-03-23T23:06:20.649Z", + "orphaned/MDN/Structures/Live_samples/Simple_live_sample_demo": { + "modified": "2020-09-30T12:57:23.196Z", "contributors": [ - "Mingun" + "chrisdavidmills", + "fuggy" ] }, - "Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase": { - "modified": "2019-03-23T23:06:18.129Z", + "orphaned/MDN/Tools/Page_watching": { + "modified": "2020-09-30T16:54:08.639Z", "contributors": [ - "Mingun" + "chrisdavidmills", + "wbamberg", + "warsan", + "Jasum", + "Liubava77", + "lavr1986uxa" ] }, - "Web/JavaScript/Reference/Global_Objects/String/toLowerCase": { - "modified": "2019-03-23T23:06:20.814Z", + "MDN/Tools/Unsupported_GET_API": { + "modified": "2020-11-05T06:23:08.678Z", "contributors": [ - "Mingun" + "ksam" ] }, - "Web/JavaScript/Reference/Global_Objects/String/toSource": { - "modified": "2019-03-23T23:06:17.942Z", + "MDN/Tools/Search": { + "modified": "2019-03-23T23:07:10.929Z", "contributors": [ + "wbamberg", "Mingun" ] }, - "Web/JavaScript/Reference/Global_Objects/String/toString": { - "modified": "2019-03-23T23:06:15.157Z", + "orphaned/MDN/Tools/Page_deletion": { + "modified": "2019-01-16T19:44:31.713Z", "contributors": [ + "wbamberg", "Mingun" ] }, - "Web/JavaScript/Reference/Global_Objects/String/toUpperCase": { - "modified": "2019-03-23T23:06:22.989Z", + "orphaned/MDN/Tools/Feeds": { + "modified": "2019-03-23T23:07:09.701Z", "contributors": [ + "wbamberg", "Mingun" ] }, - "Web/JavaScript/Reference/Global_Objects/String/valueOf": { - "modified": "2019-05-17T04:11:09.851Z", + "orphaned/MDN/About/Linking_to_MDN": { + "modified": "2019-03-23T23:07:15.827Z", "contributors": [ - "dankochetov", + "wbamberg", "Mingun" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol": { - "modified": "2020-10-15T21:30:42.254Z", + "orphaned/MDN/Community/Conversations": { + "modified": "2020-10-09T08:02:44.061Z", "contributors": [ - "mux-mux", - "boxa6", - "pk.prog", - "smurf", - "neutral", - "schyzoo" + "hustonCun", + "EpicStep", + "SuperSurok", + "boxa6" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/@@toPrimitive": { - "modified": "2020-10-15T22:24:20.085Z", + "orphaned/MDN/Community": { + "modified": "2019-09-11T08:01:10.710Z", "contributors": [ - "faramozzayw" + "SphinxKnight", + "wbamberg", + "yambergaa", + "BychekRU", + "bachileha", + "Palatovskaya" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/for": { - "modified": "2019-03-23T22:50:59.073Z", + "orphaned/MDN/Community/Whats_happening": { + "modified": "2019-06-26T18:29:06.368Z", "contributors": [ - "SphinxKnight", - "neutral" + "fuggy", + "wbamberg", + "pathliving", + "talgautb" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance": { - "modified": "2020-10-15T21:56:25.834Z", + "orphaned/MDN/Community/Working_in_community": { + "modified": "2020-02-19T18:49:34.950Z", "contributors": [ + "jswisher", "boxa6", - "vitaliylag", - "shlangus" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable": { - "modified": "2019-03-23T22:10:03.691Z", - "contributors": [ - "Samotugo" + "bsergey", + "KarryPro" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/iterator": { - "modified": "2019-03-23T22:50:51.621Z", + "Mozilla/Add-ons/WebExtensions/Internationalization": { + "modified": "2020-06-26T11:58:33.746Z", "contributors": [ - "SphinxKnight", - "neutral" + "pm3512" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/keyFor": { - "modified": "2020-10-15T21:50:47.387Z", + "Mozilla/Add-ons/WebExtensions/Modify_a_web_page": { + "modified": "2020-08-27T17:26:46.914Z", "contributors": [ - "boxa6", - "nakhodkiin", - "Ohar" + "sergserg213", + "Vorteri", + "klavatron" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/match": { - "modified": "2019-03-23T22:50:55.400Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Debugging": { + "modified": "2019-03-29T04:27:38.888Z", "contributors": [ - "SphinxKnight", - "neutral" + "karr1d" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/prototype": { - "modified": "2019-03-23T22:50:51.135Z", + "Mozilla/Developer_guide/Source_Code": { + "modified": "2019-03-23T23:33:14.609Z", "contributors": [ - "SphinxKnight", - "neutral" + "Dr.Kub", + "chrisdavidmills", + "elityty_777", + "BladeMight", + "andrew.boyarshin" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/replace": { - "modified": "2019-04-02T08:34:58.523Z", + "Plugins/Roadmap": { + "modified": "2019-08-01T03:21:45.901Z", "contributors": [ - "shlangus" + "art-gur" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/search": { - "modified": "2020-10-15T22:00:25.665Z", + "orphaned/Toolkit_API": { + "modified": "2019-01-16T14:44:25.079Z", "contributors": [ - "fax1ty" + "bill.gates" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/species": { - "modified": "2019-03-23T22:50:55.253Z", + "orphaned/Tools/Add-ons/DOM_Inspector": { + "modified": "2020-07-16T22:36:24.834Z", "contributors": [ - "nakhodkiin", - "pk.prog", - "neutral" + "wbamberg", + "kvantor" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/split": { - "modified": "2020-10-15T22:05:40.003Z", + "orphaned/Tools/Add-ons": { + "modified": "2020-07-16T22:36:23.822Z", "contributors": [ - "0x0071" + "wbamberg" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive": { - "modified": "2020-10-15T21:55:06.866Z", + "Tools/Debugger/How_to/Debug_eval_sources": { + "modified": "2020-07-16T22:35:14.575Z", "contributors": [ - "boxa6", - "nakhodkiin", - "gibson" + "wbamberg", + "pashutk" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag": { - "modified": "2020-10-15T22:22:55.953Z", + "Tools/Debugger/How_to/Pretty-print_a_minified_file": { + "modified": "2020-07-16T22:35:14.187Z", "contributors": [ - "vkorzhova" + "wbamberg", + "pashutk" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/unscopables": { - "modified": "2020-10-15T22:00:25.901Z", + "Tools/Page_Inspector/How_to/Open_the_Inspector": { + "modified": "2020-07-16T22:34:33.193Z", "contributors": [ - "fax1ty" + "wbamberg", + "Aleksej" ] }, - "Web/JavaScript/Reference/Global_Objects/Symbol/valueOf": { - "modified": "2019-03-23T22:50:49.481Z", + "Tools/Page_Inspector/How_to/Select_an_element": { + "modified": "2020-07-16T22:34:33.837Z", "contributors": [ - "SphinxKnight", - "neutral" + "wbamberg", + "trevorh", + "Aleksej" ] }, - "Web/JavaScript/Reference/Global_Objects/SyntaxError": { - "modified": "2019-03-23T23:08:27.309Z", + "Tools/Page_Inspector/How_to/Examine_event_listeners": { + "modified": "2020-07-16T22:34:35.938Z", "contributors": [ - "VladimirDeminenko", - "Mingun" + "wbamberg", + "nzmb" ] }, - "Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype": { - "modified": "2019-03-23T23:08:31.199Z", + "Tools/Page_Inspector/How_to/Edit_fonts": { + "modified": "2020-07-16T22:34:39.270Z", "contributors": [ - "Mingun" + "wbamberg", + "Aleksej" ] }, - "Web/JavaScript/Reference/Global_Objects/TypeError": { - "modified": "2020-10-15T21:30:28.885Z", + "Tools/Page_Inspector/Keyboard_shortcuts": { + "modified": "2020-07-16T22:34:52.844Z", "contributors": [ - "Roman-Kosov", - "Mingun" + "wbamberg", + "Aleksej" ] }, - "Web/JavaScript/Reference/Global_Objects/TypeError/prototype": { - "modified": "2019-03-23T23:08:29.800Z", + "Tools/Responsive_Design_Mode": { + "modified": "2020-07-16T22:35:22.392Z", "contributors": [ - "Mingun" + "dartraiden", + "wbamberg", + "brattri3", + "Aleksej", + "teoli", + "Tihoem", + "lobanok1973" ] }, - "Web/JavaScript/Reference/Global_Objects/TypedArray": { - "modified": "2020-10-15T21:48:29.544Z", + "Tools/Web_Console/UI_Tour": { + "modified": "2020-07-16T22:34:17.559Z", "contributors": [ - "pk.prog", - "arai" + "wbamberg", + "vicamoto" ] }, - "Web/JavaScript/Reference/Global_Objects/TypedArray/@@species": { - "modified": "2019-03-23T22:25:44.388Z", + "Tools/Accessibility_inspector": { + "modified": "2020-07-16T22:36:40.152Z", "contributors": [ - "pk.prog" + "dartraiden", + "s1lver", + "cogor" ] }, - "Web/JavaScript/Reference/Global_Objects/TypedArray/BYTES_PER_ELEMENT": { - "modified": "2019-03-23T22:25:40.817Z", + "Tools/Browser_Console": { + "modified": "2020-07-16T22:35:42.837Z", "contributors": [ - "pk.prog" + "wbamberg", + "Grief", + "vicamoto", + "Aleksej" ] }, - "Web/JavaScript/Reference/Global_Objects/TypedArray/join": { - "modified": "2019-03-23T22:26:41.183Z", + "Tools/Rulers": { + "modified": "2020-07-16T22:36:26.593Z", "contributors": [ - "pk.prog" + "wbamberg", + "thepocp", + "SynCap" ] }, - "Web/JavaScript/Reference/Global_Objects/TypedArray/prototype": { - "modified": "2020-10-15T21:49:43.029Z", + "Tools/Performance": { + "modified": "2020-07-16T22:36:13.723Z", "contributors": [ - "pk.prog" + "wbamberg", + "s1lver", + "nemcik7", + "matador21385", + "Ellgine" ] }, - "Web/JavaScript/Reference/Global_Objects/TypedArray/set": { - "modified": "2019-03-23T22:28:36.546Z", + "Tools/Performance/Waterfall": { + "modified": "2020-07-16T22:36:18.443Z", "contributors": [ - "Mototroller", - "dickclaus" + "wbamberg", + "karambaJob" ] }, - "Web/JavaScript/Reference/Global_Objects/URIError": { - "modified": "2019-03-23T23:08:25.974Z", + "Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching": { + "modified": "2019-03-23T23:34:25.573Z", "contributors": [ - "Mingun" + "wbamberg", + "nakhodkiin", + "torbasow" ] }, - "Web/JavaScript/Reference/Global_Objects/URIError/prototype": { - "modified": "2019-03-23T23:08:26.327Z", + "Web/API/BaseAudioContext/createPanner": { + "modified": "2019-03-23T22:07:18.379Z", "contributors": [ - "Mingun" + "customizer" ] }, - "Web/JavaScript/Reference/Global_Objects/Uint16Array": { - "modified": "2020-10-15T21:59:37.871Z", + "Web/API/BaseAudioContext/currentTime": { + "modified": "2019-03-23T23:09:25.759Z", "contributors": [ - "pk.prog" + "fscholz", + "Galamoon" ] }, - "Web/JavaScript/Reference/Global_Objects/Uint32Array": { - "modified": "2020-10-15T21:59:38.707Z", + "Web/API/BaseAudioContext/decodeAudioData": { + "modified": "2019-03-23T22:31:37.197Z", "contributors": [ - "pk.prog" + "fleknvrsk" ] }, - "Web/JavaScript/Reference/Global_Objects/Uint8Array": { - "modified": "2020-10-15T21:59:38.914Z", + "Web/API/Canvas_API/Tutorial/Using_images": { + "modified": "2019-03-18T20:59:25.160Z", "contributors": [ - "MuradAz", - "pk.prog" + "Costigans", + "aderin", + "Theana27", + "Feuway", + "4esnog", + "MaxManchak", + "Taova", + "MuradAz" ] }, - "Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray": { - "modified": "2019-03-18T21:10:47.382Z", + "Web/API/Canvas_API/Tutorial/Compositing": { + "modified": "2019-03-23T22:07:28.505Z", "contributors": [ - "InoY", - "tz4678" + "shortship", + "Alex1995markson", + "bad4iz" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakMap": { - "modified": "2020-10-15T21:33:46.571Z", + "Web/API/Canvas_API/Tutorial/Basic_animations": { + "modified": "2019-03-18T20:39:12.629Z", "contributors": [ - "oleksandrstarov", - "altpoint", - "lexxl", - "YozhEzhi", - "kan.a", - "icw82", - "zamuka", - "RumyantsevMichael", - "casfcitizen", - "restrry", - "shvaikalesh", - "hellboy81" + "korobkov", + "scanick", + "fenfil", + "komuroe", + "Isk1n", + "evgeniy83", + "Vovanostm", + "SphinxKnight", + "fscholz", + "RokkerRuslan" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakMap/clear": { - "modified": "2019-03-23T22:45:00.856Z", + "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors": { + "modified": "2020-06-21T00:28:29.747Z", "contributors": [ - "teoli", - "WispProxy", - "casfcitizen" + "hisbvdis", + "coolwebdev", + "RomatoPotato", + "levi2ki", + "warsan", + "artrudov", + "mormiron", + "jynweythek", + "fil7", + "Theana27", + "Sebastianz", + "SphinxKnight", + "fscholz", + "Neir" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakMap/delete": { - "modified": "2019-03-23T22:44:55.757Z", + "Web/API/Canvas_API/Tutorial/Drawing_text": { + "modified": "2020-11-03T08:47:25.074Z", "contributors": [ - "SphinxKnight", - "casfcitizen" + "geschaft59rus", + "AVerutin", + "mish7046", + "lavavrik" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakMap/get": { - "modified": "2019-03-23T22:44:52.022Z", + "Web/API/Canvas_API/Tutorial/Drawing_shapes": { + "modified": "2020-07-28T09:22:42.924Z", "contributors": [ - "SphinxKnight", - "casfcitizen" + "AVerutin", + "warsan", + "mi5ha6in", + "mkarkachov", + "artrudov", + "mikomister", + "dedotmoroz", + "GaidaiAndrii", + "DuckerMan", + "hraboviyvadim", + "jynweythek", + "dyachenco", + "fil7", + "nakhodkiin", + "gearmobile", + "teoli", + "fscholz", + "Mirsait", + "Neir" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakMap/has": { - "modified": "2019-03-23T22:44:53.494Z", + "Web/API/CSS_Object_Model/Managing_screen_orientation": { + "modified": "2020-09-02T10:45:25.377Z", "contributors": [ - "SphinxKnight", - "casfcitizen" + "bogpok" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakMap/prototype": { - "modified": "2020-10-15T22:08:59.129Z", + "Web/API/XMLDocument/async": { + "modified": "2019-04-24T21:17:23.958Z", "contributors": [ - "kan.a" + "borseno" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakMap/set": { - "modified": "2019-03-23T22:44:54.866Z", + "Web/API/File_and_Directory_Entries_API/Introduction": { + "modified": "2019-03-23T22:06:14.603Z", "contributors": [ - "SphinxKnight", - "casfcitizen" + "egorshulga" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakSet": { - "modified": "2020-10-15T21:46:04.634Z", + "Web/API/Geolocation_API": { + "modified": "2020-10-15T21:28:32.152Z", "contributors": [ - "YozhEzhi", - "stRavens", - "fscholz" + "art-gur", + "talgautb", + "IliaBrz", + "KazeZlat", + "MariaEvstropova", + "Anna_Leonteva", + "kevich", + "Aleksej", + "Almatbek", + "Zaw00" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakSet/add": { - "modified": "2020-10-15T21:46:05.423Z", + "Web/API/Geolocation_API/Using_the_Geolocation_API": { + "modified": "2020-02-14T06:11:59.119Z", "contributors": [ - "YozhEzhi", - "stRavens" + "art-gur" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakSet/delete": { - "modified": "2019-03-23T22:33:36.783Z", + "Web/API/HTMLAudioElement/Audio": { + "modified": "2020-10-15T22:31:15.516Z", "contributors": [ - "stRavens" + "justimchief" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakSet/has": { - "modified": "2019-03-23T22:33:37.092Z", + "Web/API/HTMLOrForeignElement/dataset": { + "modified": "2020-10-15T21:56:06.529Z", "contributors": [ - "stRavens" + "YozhEzhi", + "masterbox06", + "BitChap", + "motan", + "iamvector", + "hunty", + "almostbergman", + "FlowerDeLuce" ] }, - "Web/JavaScript/Reference/Global_Objects/WeakSet/prototype": { - "modified": "2019-03-23T22:33:26.886Z", + "Web/API/HTMLOrForeignElement/nonce": { + "modified": "2020-10-15T22:22:30.878Z", "contributors": [ - "stRavens" + "ellizii" ] }, - "Web/JavaScript/Reference/Global_Objects/WebAssembly": { - "modified": "2019-03-23T22:09:24.539Z", + "Web/API/ElementCSSInlineStyle/style": { + "modified": "2020-10-15T21:35:49.277Z", "contributors": [ - "warsan", - "Fingasss", - "curdwithraisins" + "Fantomhaiv", + "elidare", + "maxpolski", + "nkoptsov", + "surrsoft" ] }, - "Web/JavaScript/Reference/Global_Objects/WebAssembly/Table": { - "modified": "2020-10-15T22:28:03.728Z", + "Web/API/HTMLOrForeignElement/tabIndex": { + "modified": "2019-03-18T21:11:41.012Z", "contributors": [ - "amuzalevskiy" + "DianaGalter", + "Tanya_Agisheva" ] }, - "Web/JavaScript/Reference/Global_Objects/WebAssembly/compile": { - "modified": "2020-10-15T22:05:22.747Z", + "Web/API/MediaTrackConstraints/echoCancellation": { + "modified": "2020-11-01T07:26:52.423Z", "contributors": [ - "warsan" + "Ibadichan" ] }, - "Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming": { - "modified": "2020-10-15T22:05:24.687Z", + "Web/API/Navigator/connection": { + "modified": "2019-03-23T22:54:21.417Z", "contributors": [ - "warsan" + "AlexAlex" ] }, - "Web/JavaScript/Reference/Global_Objects/decodeURI": { - "modified": "2020-10-15T21:36:41.028Z", + "Web/API/Node/replaceChild": { + "modified": "2019-03-23T23:14:17.260Z", "contributors": [ - "boxa6", - "KTatyana", - "dimon.durak" + "khalid32", + "Troynov" ] }, - "Web/JavaScript/Reference/Global_Objects/decodeURIComponent": { - "modified": "2020-10-15T21:32:41.332Z", + "Web/API/HTMLElement/innerText": { + "modified": "2020-10-15T21:49:13.148Z", "contributors": [ - "boxa6", - "KTatyana", - "hellboy81" + "YozhEzhi", + "ivandoroshenko", + "Aleksander3007" ] }, - "Web/JavaScript/Reference/Global_Objects/encodeURI": { - "modified": "2020-10-15T21:32:41.734Z", + "Web/API/NonDocumentTypeChildNode/nextElementSibling": { + "modified": "2019-08-16T17:33:57.106Z", "contributors": [ - "CoruNethron", - "boxa6", - "gvammer", - "RuslanKurtjanyk", - "BychekRU", - "johniek" + "T-p-V", + "GoodLuck" ] }, - "Web/JavaScript/Reference/Global_Objects/encodeURIComponent": { - "modified": "2020-03-12T19:42:09.083Z", + "Web/API/Crypto/getRandomValues": { + "modified": "2020-10-15T21:43:20.603Z", "contributors": [ - "ivanson", - "SlavaJan", - "alx-khramov", - "redveronika", - "BychekRU" + "ekirpichyov", + "pepeevich" ] }, - "Web/JavaScript/Reference/Global_Objects/escape": { - "modified": "2020-03-12T19:42:22.847Z", + "orphaned/Web/API/Web_Crypto_API/Checking_authenticity_with_password": { + "modified": "2019-04-10T04:25:54.752Z", "contributors": [ - "L-st" + "qkudev" ] }, - "Web/JavaScript/Reference/Global_Objects/eval": { - "modified": "2020-10-15T21:36:50.892Z", + "Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL": { + "modified": "2019-03-23T22:29:53.189Z", "contributors": [ - "teleskop150750", - "rookhive", - "nochnoy", - "boxa6", - "Kassaila", - "Mumin0v", - "Stejok", - "lazy-code", - "Kesantielu", - "pankov", - "BychekRU", - "KTatyana", - "Bogdan92" + "BakayAnton", + "e-rikov", + "Vlcmdc" ] }, - "Web/JavaScript/Reference/Global_Objects/globalThis": { - "modified": "2020-10-15T22:22:38.335Z", + "Web/API/WebRTC_API/Protocols": { + "modified": "2019-03-23T22:17:21.029Z", "contributors": [ - "almaceleste", - "ekirpichyov" + "aleole" ] }, - "Web/JavaScript/Reference/Global_Objects/isFinite": { - "modified": "2020-10-15T21:34:22.861Z", + "Web/API/WebRTC_API/Connectivity": { + "modified": "2019-03-23T22:17:18.730Z", "contributors": [ - "boxa6", - "pk.prog", - "keepon99", - "RinatMullayanov" + "aleole" ] }, - "Web/JavaScript/Reference/Global_Objects/isNaN": { - "modified": "2020-10-15T21:18:00.962Z", + "Glossary/Base64": { + "modified": "2020-02-04T12:42:12.592Z", "contributors": [ - "boxa6", - "deadem", - "arogachev", - "DrTantal", - "toxahak", - "igor4949i", - "torbasow", - "SphinxKnight", - "fscholz", - "Troynov", - "teoli", - "Dionys", - "Sheppy" + "hifriend21", + "kormanowsky", + "k-chernyshov", + "9999472", + "KSH-audibene", + "kerosan" ] }, - "Web/JavaScript/Reference/Global_Objects/null": { - "modified": "2020-10-15T21:29:52.036Z", + "Web/API/WindowOrWorkerGlobalScope/btoa": { + "modified": "2019-09-17T16:11:11.862Z", "contributors": [ - "yar85", - "YozhEzhi", - "boxa6", - "SphinxKnight", - "Mingun" + "SerzN1", + "uleming" ] }, - "Web/JavaScript/Reference/Global_Objects/parseFloat": { - "modified": "2020-10-15T21:31:40.524Z", + "Web/API/WindowOrWorkerGlobalScope/setTimeout": { + "modified": "2020-11-18T12:03:29.649Z", "contributors": [ - "boxa6", - "iota77", - "zhvirblis", - "pk.prog", - "KTatyana", - "schoonc", - "PC-Contra" + "kosarev_va", + "YozhEzhi", + "AliaksandrZahorski", + "akaguny", + "marat-curious", + "neustroev.artyom", + "fscholz", + "ichent" ] }, - "Web/JavaScript/Reference/Global_Objects/parseInt": { - "modified": "2020-10-15T21:31:24.544Z", + "Web/API/Page_Visibility_API": { + "modified": "2020-10-15T22:34:15.870Z", "contributors": [ - "boxa6", - "pk.prog", - "Natalya_Surikova", - "KTatyana", - "Acknowhow", - "oshilan", - "raspberry59" + "vstorm" ] }, - "Web/JavaScript/Reference/Global_Objects/undefined": { - "modified": "2020-10-15T21:29:55.851Z", + "Web/API/Notation": { + "modified": "2020-10-15T22:17:39.773Z", "contributors": [ - "almaceleste", - "boxa6", - "YozhEzhi", - "sasd97", - "SphinxKnight", - "Mingun" + "opereverzeva" ] }, - "Web/JavaScript/Reference/Global_Objects/unescape": { - "modified": "2020-03-12T19:40:42.425Z", + "Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model": { + "modified": "2019-03-23T23:02:32.915Z", "contributors": [ - "Mishman" + "akovbovich", + "Aleksej", + "codedokode" ] }, - "Web/JavaScript/Reference/Global_Objects/uneval": { - "modified": "2020-10-15T21:32:06.154Z", + "Learn/CSS/Howto/CSS_FAQ": { + "modified": "2020-07-16T22:25:45.996Z", "contributors": [ - "boxa6", - "teoli", - "maxbarbul", - "fscholz", - "Correcter" + "quinn" ] }, - "Web/JavaScript/Reference/Iteration_protocols": { - "modified": "2020-03-12T19:40:23.617Z", + "Web/CSS/CSS_Animations/Using_CSS_animations": { + "modified": "2019-09-08T05:26:38.746Z", "contributors": [ - "Ostanioni", - "AliaksandrZahorski", - "nikolai-shabalin", + "dmarkin", + "trman", + "KatyaRyazantseva", + "Inqanter", + "pseudoliza", + "ShadF0x", + "verbaux", "SphinxKnight", - "asaskevich", - "petanisimov", - "fscholz", - "hindmost" + "mrkorsar", + "teoli", + "ukarim" ] }, - "Web/JavaScript/Reference/Lexical_grammar": { - "modified": "2020-10-09T04:21:50.644Z", + "Web/CSS/CSS_Background_and_Borders/Border-radius_generator": { + "modified": "2019-03-23T22:40:49.075Z", "contributors": [ - "demid.kopan", - "salaiyuliya", - "almaceleste", - "uxenus", - "Vukto", - "maxno62", - "Pandemoniumus", - "AlexeyVasilievE", - "glum-psyche", - "ValdemarTerte", - "kdex", - "pk.prog", - "Frenk1", - "MichaelBag", - "gremlinLee" + "vito_falcone" ] }, - "Web/JavaScript/Reference/Operators": { - "modified": "2020-03-12T19:38:03.910Z", + "Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property": { + "modified": "2019-03-23T22:05:55.809Z", "contributors": [ - "the-toxic", - "pk.prog", "SphinxKnight", - "teoli", - "Mingun", - "ethertank" + "ExE-Boss", + "Cheg" ] }, - "Web/JavaScript/Reference/Operators/Addition": { - "modified": "2020-10-15T22:31:44.228Z", + "Web/CSS/CSS_Background_and_Borders/Box-shadow_generator": { + "modified": "2019-03-18T20:43:50.074Z", "contributors": [ - "DarkExodusXX", - "Lifamen" + "BychekRU" ] }, - "Web/JavaScript/Reference/Operators/Addition_assignment": { - "modified": "2020-10-15T22:33:40.126Z", + "Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container": { + "modified": "2020-05-25T19:08:16.925Z", "contributors": [ - "DarkExodusXX" + "synedvorkham", + "Ruslan_Zlygostev", + "AndriySikora", + "idoru", + "lexeek", + "kalitadanila", + "m-o-semenov", + "ViktoriLisenok", + "dubtar" ] }, - "Web/JavaScript/Reference/Operators/Arithmetic_Operators": { - "modified": "2020-10-15T21:14:39.538Z", + "Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax": { + "modified": "2020-03-08T07:17:57.807Z", "contributors": [ - "Nichon4", - "fscholz", - "wbamberg", - "MedvedevWeb", - "kachid", - "shark_ate_my_shorts", - "ktsabolov", - "BychekRU", - "Anthelion", - "Aleksej", - "teoli", - "Dionys", - "karasiov" + "Radragon", + "billlater" ] }, - "Web/JavaScript/Reference/Operators/Assignment_Operators": { - "modified": "2020-03-12T19:39:48.712Z", + "Web/CSS/CSS_Flow_Layout/Block_and_Inline_Layout_in_Normal_Flow": { + "modified": "2020-11-03T12:58:17.297Z", "contributors": [ - "JasonRammoray", - "Piterden", - "Siteograf", - "AlexChuev", - "dtretyakov", - "SphinxKnight", - "BurkovBA" + "at940266" ] }, - "Web/JavaScript/Reference/Operators/Bitwise_AND": { - "modified": "2020-10-19T04:55:04.550Z", + "Web/CSS/CSS_Flow_Layout/Intro_to_formatting_contexts": { + "modified": "2020-03-08T14:31:08.319Z", "contributors": [ - "elkabelaya" + "Radragon" ] }, - "Web/JavaScript/Reference/Operators/Bitwise_Operators": { - "modified": "2020-03-12T19:37:00.110Z", + "Web/CSS/CSS_Grid_Layout/CSS_Grid_Logical_Values_and_Writing_Modes": { + "modified": "2019-03-18T21:35:04.965Z", "contributors": [ - "CoruNethron", - "kss555", - "joezavtra", - "d1soft", - "byshik", - "AlekKras", - "angyvolin", - "artem328", - "goodwin64", - "tselishev-semen", - "dtretyakov", - "fscholz", - "teoli", - "karasiov" + "slychai85" ] }, - "Web/JavaScript/Reference/Operators/Decrement": { - "modified": "2020-10-15T22:35:06.680Z", + "Web/CSS/CSS_Grid_Layout/Grid_Template_Areas": { + "modified": "2019-03-18T21:10:23.458Z", "contributors": [ - "dikovinki" + "maximTorba", + "denisvovchenko", + "slychai85", + "coshturnina" ] }, - "Web/JavaScript/Reference/Operators/Destructuring_assignment": { - "modified": "2019-03-18T20:41:31.882Z", + "Web/CSS/CSS_Grid_Layout/Line-based_Placement_with_CSS_Grid": { + "modified": "2020-09-29T19:08:10.559Z", "contributors": [ - "zziger", - "Beliarh", - "InoY", - "kdex", - "shapkarin", - "he11b0rn", - "wa-Nadoo", - "e-omo", - "y.ivashchenko", - "SphinxKnight", - "dtretyakov" + "Zulcom", + "denisvovchenko", + "coshturnina" ] }, - "Web/JavaScript/Reference/Operators/Nullish_coalescing_operator": { - "modified": "2020-11-06T20:31:05.880Z", + "Web/CSS/CSS_Selectors": { + "modified": "2019-09-26T17:15:05.505Z", "contributors": [ - "qwerty.wasd.dev", - "notacircle" + "RomanBush", + "vkorzhova", + "Gergalov", + "bezik", + "irenprkpv" ] }, - "Web/JavaScript/Reference/Operators/Object_initializer": { - "modified": "2020-03-12T19:46:20.455Z", + "Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors": { + "modified": "2019-03-18T21:30:19.329Z", "contributors": [ - "EduardBedratyi", - "Nymph", - "severn101", - "curdwithraisins" + "Hoopers_Hooch" ] }, - "Web/JavaScript/Reference/Operators/Operator_Precedence": { - "modified": "2020-06-21T17:36:11.552Z", + "Web/CSS/Media_Queries/Testing_media_queries": { + "modified": "2020-10-15T22:17:28.449Z", "contributors": [ - "Yialo", - "nakhodkiin", - "synth", - "Ihor92", - "BychekRU", - "Aleksej", - "fscholz", - "mcmimik", - "teoli", - "TotalAMD", - "hazestalker" + "opereverzeva" ] }, - "Web/JavaScript/Reference/Operators/Optional_chaining": { - "modified": "2020-10-15T22:22:53.487Z", + "Web/CSS/actual_value": { + "modified": "2019-03-23T22:31:07.849Z", "contributors": [ - "InoY", - "rookhive", - "Kassaila", - "Dimon24021993" + "warsan", + "BychekRU" ] }, - "Web/JavaScript/Reference/Operators/Property_Accessors": { - "modified": "2020-11-28T14:23:33.816Z", + "Web/CSS/Replaced_element": { + "modified": "2019-03-23T22:31:00.260Z", "contributors": [ - "ialexi-bl", - "injashkin", - "sbadulin", - "karatheodory", + "SelenIT", + "dima74", "BychekRU" ] }, - "Web/JavaScript/Reference/Operators/Spread_syntax": { - "modified": "2020-10-15T22:09:59.030Z", + "Web/CSS/Pseudo-classes": { + "modified": "2019-03-23T22:51:08.664Z", "contributors": [ - "Next-Ra", - "khikmat1970", - "s0da", - "AliaksandrZahorski", - "svezr", - "Ostanioni", - "Acrom7", - "R-Oscar", - "DenisIgnatchenko", - "dev1am", - "ue4prog" + "IgorPuchkov2003", + "dima74", + "BychekRU", + "olko28" + ] + }, + "Web/CSS/length": { + "modified": "2020-10-15T21:48:09.200Z", + "contributors": [ + "HImichun", + "sashakrauzer", + "VICIOne", + "favetisov", + "ialexi-bl", + "Fgeniy", + "Zamkevich", + "VladdOs" + ] + }, + "Web/CSS/Syntax": { + "modified": "2019-07-26T04:52:30.660Z", + "contributors": [ + "munaticu", + "teoli", + "Norville" ] }, - "Web/JavaScript/Reference/Operators/async_function": { - "modified": "2020-03-12T19:46:03.207Z", + "Web/CSS/Layout_mode": { + "modified": "2019-03-23T23:09:42.012Z", "contributors": [ - "utlov", - "myscode", - "nakhodkiin", - "ahtohbi4" + "idoru", + "BychekRU", + "ldone" ] }, - "Web/JavaScript/Reference/Operators/await": { - "modified": "2020-03-12T19:46:19.108Z", + "Web/CSS/Comments": { + "modified": "2019-03-23T22:32:40.563Z", "contributors": [ - "Ignat", - "nakhodkiin", - "Vladimir-Vinogradov", - "matvey-b", - "XaveScor", - "redishko" + "BychekRU", + "Evgeny166" ] }, - "Web/JavaScript/Reference/Operators/class": { - "modified": "2020-10-07T05:22:57.052Z", + "Web/CSS/specified_value": { + "modified": "2019-03-23T22:30:59.718Z", "contributors": [ - "nikolasmelui", - "utlov", - "aliaksandr-s" + "BychekRU" ] }, - "Web/JavaScript/Reference/Operators/delete": { - "modified": "2020-03-12T19:38:01.140Z", + "Web/API/Element/blur_event": { + "modified": "2019-03-23T22:19:52.585Z", "contributors": [ - "tarasovAG", - "nurbek-ab", "fscholz", - "teoli", - "nurbek.ab" + "Pirate505", + "Asyst" ] }, - "Web/JavaScript/Reference/Operators/function": { - "modified": "2020-10-15T21:29:24.840Z", + "Web/API/Window/DOMContentLoaded_event": { + "modified": "2019-04-30T14:28:01.901Z", "contributors": [ - "utlov", - "aleksandrpnshkn", - "severyanov", - "KTatyana", - "SphinxKnight", - "teoli", - "AlexyAV" + "wbamberg", + "cashm0ney", + "fscholz", + "vittorio-tortugo", + "e-h-h" ] }, - "Web/JavaScript/Reference/Operators/function*": { - "modified": "2020-03-12T19:43:34.797Z", + "Web/API/Element/error_event": { + "modified": "2019-03-18T20:55:03.206Z", "contributors": [ - "utlov", - "KTatyana", - "nurbek-ab" + "Corba", + "iGureEV" ] }, - "Web/JavaScript/Reference/Operators/in": { - "modified": "2020-10-15T21:34:23.027Z", + "Web/API/Element/focusin_event": { + "modified": "2019-03-23T22:30:36.967Z", "contributors": [ - "ekirpichyov", - "utlov", - "Nvisual", - "vitaliylag", - "Natalya_Surikova", - "Frenk1" + "fscholz", + "f0rmat1k" ] }, - "Web/JavaScript/Reference/Operators/instanceof": { - "modified": "2020-10-15T21:42:40.346Z", + "Web/API/Element/focusout_event": { + "modified": "2019-03-18T21:19:40.612Z", "contributors": [ - "iGanza429", - "dima74", - "vitaliylag", - "lenkasoft", - "c01nd01r", - "spmpl" + "merelj" ] }, - "Web/JavaScript/Reference/Operators/new": { - "modified": "2020-03-12T19:42:17.777Z", + "Web/API/Window/load_event": { + "modified": "2019-03-23T22:22:49.108Z", "contributors": [ - "mikhail.makarov", - "msherstobitow", - "FlashbangSW", - "pk.prog", - "Guria", - "svarnoi420", - "mazhuravlev" + "fscholz", + "e-h-h" ] }, - "Web/JavaScript/Reference/Operators/new.target": { - "modified": "2020-03-12T19:42:44.140Z", + "Web/API/XMLHttpRequest/loadstart_event": { + "modified": "2019-03-23T22:29:55.674Z", "contributors": [ - "bakugod", - "vitaliylag", - "Isk1n", - "uleming" + "fscholz", + "forestbird" ] }, - "Web/JavaScript/Reference/Operators/super": { - "modified": "2020-11-02T05:32:18.854Z", + "Web/API/Document/readystatechange_event": { + "modified": "2019-03-18T21:42:00.103Z", "contributors": [ - "ITheCorgi", - "almaceleste", - "boxa6", - "chuckis", - "YozhEzhi", - "Eugene", - "Renay", - "Axepuff", - "rinbik", - "quassnoi", - "sgrogov", - "adamgrey28", - "loki2d", - "spmpl", - "uleming" + "SlavaJan" ] }, - "Web/JavaScript/Reference/Operators/this": { - "modified": "2020-10-15T21:34:17.291Z", + "Web/API/HTMLElement/transitionend_event": { + "modified": "2019-03-23T23:13:05.887Z", "contributors": [ - "almaceleste", - "dmarkin", - "HermesC", - "smlkA", - "JS_Johny", - "marinazareka", - "sbadulin", - "Stejok", - "aprostya", - "dChunikhin", - "DayFan", - "olegkarpovich", - "alexfromvl", - "Viktoria_Slesarchuk", - "eXukraine", - "AlexO", - "AliaksandrSith", - "AlexKhram", - "vovek", - "wertlex", - "Mary_Gorgol" + "fscholz", + "airspin", + "akhabibullina" ] }, - "Web/JavaScript/Reference/Operators/typeof": { - "modified": "2020-10-15T21:29:57.988Z", + "Web/API/Window/unhandledrejection_event": { + "modified": "2019-04-30T13:51:15.952Z", "contributors": [ - "Bonerdelli", - "dima74", - "Sergey.Vdovareize", - "Ohar", - "SphinxKnight", - "teoli", - "kvantor" + "wbamberg", + "colmer" ] }, - "Web/JavaScript/Reference/Operators/void": { - "modified": "2020-03-12T19:40:33.655Z", + "orphaned/Web/Guide/AJAX/С_чего_начать?": { + "modified": "2019-01-16T16:10:29.921Z", "contributors": [ - "artskar", - "hlomzik", - "AlexChuev" + "chrisdavidmills", + "Sheppy", + "Nikol" ] }, - "Web/JavaScript/Reference/Operators/yield": { - "modified": "2020-11-07T03:00:56.468Z", + "Web/Guide/AJAX/Getting_Started": { + "modified": "2019-03-24T00:01:49.926Z", "contributors": [ - "antonzahariev", - "ekirpichyov", - "YozhEzhi", - "dtretyakov" + "DanilaH", + "chrisdavidmills", + "Megapotz", + "Apparition", + "Square", + "Kwinto" ] }, - "Web/JavaScript/Reference/Operators/yield*": { - "modified": "2020-10-10T05:41:53.806Z", + "Web/SVG/Tutorial/SVG_and_CSS": { + "modified": "2019-10-07T10:29:32.536Z", "contributors": [ - "ialexi-bl", - "utlov", - "d4rkm3z" + "Matcenko", + "AndrewPinkerton", + "maximmonev", + "DadUndead" ] }, - "Web/JavaScript/Reference/Operators/Группировка": { - "modified": "2020-10-15T21:45:23.257Z", + "Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index": { + "modified": "2020-04-16T01:16:28.675Z", "contributors": [ - "synth", - "BychekRU" + "pelyp47" ] }, - "Web/JavaScript/Reference/Operators/Конвейерный_оператор": { - "modified": "2020-10-15T22:07:33.663Z", + "Web/CSS/CSS_Positioning/Understanding_z_index": { + "modified": "2020-04-16T00:54:23.175Z", "contributors": [ - "nakhodkiin", - "ALegostaeva" + "pelyp47", + "Derept", + "zdravnick", + "DartWelder", + "elenatafeenko", + "Jeremie" ] }, - "Web/JavaScript/Reference/Operators/Логические_операторы": { - "modified": "2020-03-12T19:42:07.763Z", + "Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_without_z-index": { + "modified": "2020-04-16T01:00:44.047Z", "contributors": [ - "Coo1Cmd", - "BychekRU", - "Frenk1", - "alexbaumgertner", - "SergeyShpak" + "pelyp47", + "batareechka", + "SphinxKnight" ] }, - "Web/JavaScript/Reference/Operators/Оператор_Запятая": { - "modified": "2020-10-15T21:21:15.661Z", + "Web/CSS/CSS_Columns/Using_multi-column_layouts": { + "modified": "2019-07-22T11:08:23.191Z", "contributors": [ - "synth", - "echelonka", - "OlegTar", - "cotolany", - "br3t", - "alnimu", - "Frenk1", + "a-bodrova", + "sandmanisdancing", "fscholz", - "Ohar", - "teoli", - "nurbek.ab" + "ldone" + ] + }, + "Web/CSS/Visual_formatting_model": { + "modified": "2019-09-20T10:50:10.502Z", + "contributors": [ + "RomanBush", + "SphinxKnight", + "FlightBlaze", + "Chugou9", + "ZapevalovAnton", + "fmva", + "levi2ki", + "kapvik", + "hhharm", + "ViT09" + ] + }, + "Web/Guide/Events/Creating_and_triggering_events": { + "modified": "2020-10-15T21:31:20.093Z", + "contributors": [ + "YozhEzhi", + "leann-fraoigh", + "Solant", + "bagau", + "pk.prog", + "lazyexpert", + "YuryT" ] }, - "Web/JavaScript/Reference/Operators/Операторы_сравнения": { - "modified": "2020-09-29T02:39:38.965Z", + "Web/API/HTML_Drag_and_Drop_API/Drag_operations": { + "modified": "2020-02-05T06:07:31.464Z", "contributors": [ - "nikolasmelui", - "X7Becka", - "nakhodkiin", - "BychekRU", - "nbaksalyar", - "CatWhoCode" + "opereverzeva" ] }, - "Web/JavaScript/Reference/Operators/Присваивание": { - "modified": "2020-10-15T22:33:39.549Z", + "Web/API/HTML_Drag_and_Drop_API": { + "modified": "2019-06-20T03:46:49.198Z", "contributors": [ - "kucherenkoag", - "DarkExodusXX" + "kkxley", + "Akh-rman", + "artalar", + "miramax-88", + "Morjodrom", + "fess16", + "MStark" ] }, - "Web/JavaScript/Reference/Operators/Условный_оператор": { - "modified": "2020-09-05T16:58:34.995Z", + "Web/Guide/HTML/Using_HTML_sections_and_outlines": { + "modified": "2020-10-09T08:16:53.318Z", "contributors": [ - "ikzsl", - "NeoFSociety", - "lozzeal", - "DonRai", - "onatalie", - "SlavaJan", - "dmitrydanilich", - "KTatyana" + "matiasrustagte", + "arka_triymfalnaya", + "outdever", + "Wingear", + "evgor80", + "lerniri" ] }, - "Web/JavaScript/Reference/Statements": { - "modified": "2020-03-12T19:38:08.960Z", + "Learn/HTML/Howto/Author_fast-loading_HTML_pages": { + "modified": "2020-07-16T22:22:33.594Z", "contributors": [ + "SoMuchEffort", + "optimistic" + ] + }, + "Learn/HTML/Howto/Use_data_attributes": { + "modified": "2020-07-16T22:22:37.165Z", + "contributors": [ + "AliaksandrZahorski", + "dima74", + "bad4iz", + "ultrinnan", "SphinxKnight", - "teoli", - "Mingun", - "trevorh" + "lerniri", + "ArtiFisher", + "xoyk", + "BaNru" ] }, - "Web/JavaScript/Reference/Statements/Empty": { - "modified": "2020-04-12T07:22:12.597Z", + "orphaned/Learn/HTML/Forms/HTML5_updates": { + "modified": "2019-03-23T22:35:16.060Z", "contributors": [ - "arnoldovich", - "otj40", - "nakhodkiin", - "BychekRU" + "Morjodrom", + "AgRuN1", + "ruslan_g02" ] }, - "Web/JavaScript/Reference/Statements/async_function": { - "modified": "2020-10-15T21:52:51.275Z", + "Web/Guide/Graphics": { + "modified": "2019-03-23T23:24:59.485Z", "contributors": [ - "AppleAlex", - "nikolai-shabalin", - "parusev", - "sazhnevdunice", - "mmameko", - "epodivilov", - "rsvato", - "glowlh", - "torbasow", - "nakhodkiin", - "BondarenkoAlex", - "tcheburator", - "curdwithraisins" + "theykillimmortal", + "McBurns", + "DinarGataullin", + "emil4", + "Bonerdelli", + "uleming", + "nedimaon" ] }, - "Web/JavaScript/Reference/Statements/break": { - "modified": "2020-03-12T19:39:49.381Z", + "Web/Guide/Performance": { + "modified": "2020-08-20T11:16:04.965Z", "contributors": [ - "ConstantineZz", - "SphinxKnight", - "4eb0da" + "bogpok" ] }, - "Web/JavaScript/Reference/Statements/class": { - "modified": "2020-10-07T05:30:01.345Z", + "Web/HTML/Attributes/crossorigin": { + "modified": "2019-03-23T22:26:17.707Z", "contributors": [ - "nikolasmelui", - "torbasow", - "utlov", - "curdwithraisins" + "HA3IK", + "metserp" ] }, - "Web/JavaScript/Reference/Statements/const": { - "modified": "2020-10-15T21:30:33.647Z", + "orphaned/Web/HTML/Element/element": { + "modified": "2019-03-23T22:16:19.667Z", "contributors": [ - "DASenkiv", - "pepelsbey", - "pk.prog", - "torbasow", - "WispProxy", - "Grumvol", - "xfg", - "gibson", - "crvst", - "SphinxKnight", - "KiraAndMaxim" + "SphinxKnight" ] }, - "Web/JavaScript/Reference/Statements/continue": { - "modified": "2020-04-11T02:20:58.132Z", + "Web/API/HTMLMediaElement/seeking_event": { + "modified": "2019-03-23T22:00:06.598Z", "contributors": [ - "pefbrute", - "alextretyak", - "SphinxKnight", - "4eb0da" + "estelle", + "fscholz", + "alexs_havelev" ] }, - "Web/JavaScript/Reference/Statements/debugger": { - "modified": "2020-03-12T19:45:32.750Z", + "Web/HTML/Element/button": { + "modified": "2020-08-27T10:59:01.002Z", "contributors": [ - "Svetzayats", - "david-baghdasaryan", - "paratagas" + "DarkExodusXX", + "Anton1922", + "fanich37", + "VitalyKrenel", + "Quaiby" ] }, - "Web/JavaScript/Reference/Statements/default": { - "modified": "2020-10-15T21:54:01.294Z", + "Web/HTML/Element/link": { + "modified": "2020-11-25T22:00:52.653Z", "contributors": [ - "ekirpichyov", - "AntonPtitsyn" + "RoPy73", + "GitForDocs", + "sasha3nique", + "dt_", + "opereverzeva" ] }, - "Web/JavaScript/Reference/Statements/do...while": { - "modified": "2020-10-15T21:50:00.301Z", + "orphaned/Web/HTML/Global_attributes/dropzone": { + "modified": "2020-10-15T22:18:29.870Z", "contributors": [ - "Kilzar", - "ekirpichyov", - "102" + "chrisdavidmills", + "Akh-rman" ] }, - "Web/JavaScript/Reference/Statements/export": { - "modified": "2020-10-15T21:44:56.789Z", + "Glossary/speculative_parsing": { + "modified": "2019-03-23T23:28:56.065Z", "contributors": [ - "almaceleste", - "SphinxKnight", - "ravbetsky", - "Roman-Kosov", - "marat-curious", - "maksugr", - "HaffASE", - "Checkmatez", - "maxmind", - "M1rotvorez", - "sunsetninja", - "frodomogoni", - "jeneg" + "s1lver", + "pk.prog", + "SnejUgal", + "teoli", + "Gucci_08_rus" ] }, - "Web/JavaScript/Reference/Statements/for": { - "modified": "2020-03-12T19:40:21.266Z", + "Web/HTML/Using_the_application_cache": { + "modified": "2019-04-09T18:24:32.273Z", "contributors": [ - "farvater2", - "romankrru", - "BychekRU", - "ascheyloven" + "jwhitlock", + "teoli", + "pashak" ] }, - "Web/JavaScript/Reference/Statements/for-await...of": { - "modified": "2020-10-15T22:21:30.706Z", + "Web/HTML/Reference": { + "modified": "2019-09-09T07:21:34.310Z", "contributors": [ - "imciflam" + "SphinxKnight", + "JCodeg", + "wbamberg", + "Kiprusoff", + "kuki", + "alexfromvl", + "VsTB", + "astrobeglec", + "BychekRU", + "quinn", + "ldone", + "alexlead" ] }, - "Web/JavaScript/Reference/Statements/for...in": { - "modified": "2020-03-12T19:42:44.128Z", + "Web/HTML/Inline_elements": { + "modified": "2020-03-08T06:35:47.964Z", "contributors": [ - "camelos", - "Miracle93", - "olvin-hh", + "Radragon", "AliaksandrZahorski", - "Jarith", - "UriShlomov", - "a1ia5", + "Inqanter", + "superpuper32", + "Filofei", + "Chronosms" + ] + }, + "Web/HTML/Link_types": { + "modified": "2019-03-23T22:35:07.110Z", + "contributors": [ "BychekRU" ] }, - "Web/JavaScript/Reference/Statements/for...of": { - "modified": "2020-10-15T21:31:19.454Z", + "Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web": { + "modified": "2020-01-09T21:04:16.499Z", "contributors": [ - "iacade", - "alx-khramov", - "rookhive", - "AliaksandrZahorski", - "becha", - "SphinxKnight", - "iomtt94", - "babichss", - "ZeroUnderscoreOu", - "BychekRU", - "dtretyakov" + "rshmelev" ] }, - "Web/JavaScript/Reference/Statements/function": { - "modified": "2020-10-15T21:39:37.186Z", + "Web/HTTP/Authentication": { + "modified": "2020-04-27T12:53:55.193Z", "contributors": [ - "YozhEzhi", - "4rontender", - "KTatyana", - "forestbird", - "BychekRU" + "katina.tanya.net", + "Umbrous", + "mironovdm", + "RumyantsevMichael", + "Santiago26", + "deniskoronets" ] }, - "Web/JavaScript/Reference/Statements/function*": { - "modified": "2020-03-12T19:39:52.436Z", + "Web/HTTP/Headers/Accept-Charset": { + "modified": "2020-10-15T22:14:29.517Z", "contributors": [ - "SphinxKnight", - "Sajag", - "mrOrlando", - "MaksymI", - "kdex", - "deman", - "MalkavianMax", - "BychekRU", - "dtretyakov" + "Reddok", + "J4CKVVH173" ] }, - "Web/JavaScript/Reference/Statements/if...else": { - "modified": "2020-03-12T19:42:47.988Z", + "Web/HTTP/Headers/Accept-Language": { + "modified": "2020-10-15T22:00:00.029Z", "contributors": [ - "satansdeer", - "GraceAredel", - "alexbaumgertner", - "ultrinnan" + "taushan.marina", + "Reddok", + "limanweb", + "serj-by" ] }, - "Web/JavaScript/Reference/Statements/import": { - "modified": "2020-10-15T21:32:02.235Z", + "Web/HTTP/Headers/Accept-Patch": { + "modified": "2020-12-05T05:07:59.020Z", "contributors": [ - "Akmatworld", - "almaceleste", - "flancer64", - "Yialo", - "SphinxKnight", - "ZzDmitry", - "Reinerok", - "InoY", - "pibodi", - "torbasow", - "Ingverd", - "papadima", - "bad4iz", - "nikolaifedorov", - "maxmind", - "standy", - "vvalgis", - "sutangu", - "kurzgame" + "sheremet" ] }, - "Web/JavaScript/Reference/Statements/import.meta": { - "modified": "2020-10-15T22:22:14.576Z", + "Web/HTTP/Headers/Accept-Ranges": { + "modified": "2020-12-14T05:59:29.332Z", "contributors": [ - "Luanre" + "AndrewHaluza", + "stonetrooper" ] }, - "Web/JavaScript/Reference/Statements/label": { - "modified": "2020-10-15T21:30:43.430Z", + "Web/HTTP/Headers/Accept": { + "modified": "2020-11-27T13:56:04.958Z", "contributors": [ - "ekirpichyov", - "SphinxKnight", - "4eb0da" + "robert491", + "vykulakov", + "Normal", + "AlexeyVasilievE" ] }, - "Web/JavaScript/Reference/Statements/let": { - "modified": "2020-03-12T19:38:07.887Z", + "Web/HTTP/Headers/Access-Control-Allow-Headers": { + "modified": "2020-10-15T22:06:02.499Z", "contributors": [ - "DASenkiv", - "skrikl", - "rinbik", - "avernikoz", - "Stejok", - "Kostandy", - "GaidaiAndrii", - "kdex", - "Yumeiro", - "WispProxy", - "titanium-iridium", - "andbas", - "iseeyou911", - "smichrissoft", - "stek29", - "Tvortsa", - "fscholz", - "teoli", - "nurbek.ab" + "Skinny-Hunter" ] }, - "Web/JavaScript/Reference/Statements/return": { - "modified": "2020-10-15T21:38:04.879Z", + "Web/HTTP/Headers/Access-Control-Allow-Methods": { + "modified": "2020-10-15T21:55:39.900Z", "contributors": [ - "ekirpichyov", - "KTatyana", - "Biosneakers", - "BychekRU", - "janemel", - "The-Raven" + "kosuhin" ] }, - "Web/JavaScript/Reference/Statements/switch": { - "modified": "2020-10-15T21:31:26.209Z", + "Web/HTTP/Headers/Access-Control-Allow-Origin": { + "modified": "2020-10-15T22:30:57.158Z", "contributors": [ - "almaceleste", - "alfill", - "Stejok", - "Natalya_Surikova", - "4eb0da" + "online", + "muxmux.ryzhinskiy" ] }, - "Web/JavaScript/Reference/Statements/throw": { - "modified": "2020-03-12T19:39:43.115Z", + "Web/HTTP/Headers/Access-Control-Max-Age": { + "modified": "2020-10-15T21:54:51.387Z", "contributors": [ - "albrin", - "Roovwhite", - "ZavodPodushek", - "Natalya_Surikova", - "sergey.bakaev", - "SphinxKnight", - "hellboy81" + "Shamshod", + "slayermass" ] }, - "Web/JavaScript/Reference/Statements/try...catch": { - "modified": "2020-05-24T09:50:11.525Z", + "Web/HTTP/Headers/Authorization": { + "modified": "2020-11-27T14:09:58.983Z", "contributors": [ - "ialexi-bl", - "smitt14ua", - "DeekHalden", - "YaroslavSelevanov", - "illya-s", - "x1unix", - "DavidWebb", - "nikitaermishin", - "NikitaCoder" + "robert491", + "NikitaTkachev", + "3lvcz", + "EgorChernik", + "justredpaul" ] }, - "Web/JavaScript/Reference/Statements/var": { - "modified": "2020-10-15T21:40:16.057Z", + "Web/HTTP/Headers/Cache-Control": { + "modified": "2020-10-15T21:59:00.821Z", "contributors": [ - "ekirpichyov", - "letulip", - "AlexKhram", - "shalimski", - "Saviloff" + "eeiaao", + "akimy", + "lykosheff", + "Sergey.Terekhin" ] }, - "Web/JavaScript/Reference/Statements/while": { - "modified": "2020-03-12T19:44:53.115Z", + "Web/HTTP/Headers/Connection": { + "modified": "2020-11-27T17:37:13.461Z", "contributors": [ - "KTatyana" + "robert491", + "Lariniya", + "Talkerbox", + "stonetrooper", + "Kirill82" ] }, - "Web/JavaScript/Reference/Statements/with": { - "modified": "2020-03-12T19:46:20.775Z", + "Web/HTTP/Headers/Content-Disposition": { + "modified": "2020-10-15T21:58:08.326Z", "contributors": [ - "asv7780", - "superpuper32", - "Waleron96", - "animhotep" + "Blinky", + "pk.prog" ] }, - "Web/JavaScript/Reference/Statements/Блок": { - "modified": "2020-03-14T08:00:39.543Z", + "Web/HTTP/Headers/Content-Encoding": { + "modified": "2020-10-15T22:30:01.262Z", "contributors": [ - "rookhive", - "Aliq" + "isetpro" ] }, - "Web/JavaScript/Reference/Strict_mode": { - "modified": "2020-03-12T19:37:59.459Z", + "Web/HTTP/Headers/Content-Language": { + "modified": "2020-10-15T22:14:19.206Z", "contributors": [ - "almaceleste", - "Yialo", - "alexbs", - "coxdn", - "randomnf", - "ris58h", - "spixe37", - "Sheppy", - "karmagood", - "alexdarc", - "egor-sorokin", - "hatroman", - "Megabyteceer", - "dimitryony", - "WispProxy", - "Natalya_Surikova", - "compsphere", - "Grumvol", - "torbasow", - "fscholz", - "zlumyo", - "akudiyar", - "fvtsfedu", - "r00ger", - "egml", - "AntonBezrukov", - "uleming" + "Nasridean", + "limanweb" ] }, - "Web/JavaScript/Reference/Strict_mode/Transitioning_to_strict_mode": { - "modified": "2020-03-12T19:42:24.126Z", + "Web/HTTP/Headers/Content-Length": { + "modified": "2020-11-27T16:51:36.713Z", "contributors": [ - "almaceleste", - "coxdn", - "nakhodkiin", - "akmil", - "tselishev-semen" + "robert491", + "einperegrin", + "FireEagle25" ] }, - "Web/JavaScript/Reference/Trailing_commas": { - "modified": "2020-10-15T22:22:53.977Z", + "Web/HTTP/Headers/Content-Type": { + "modified": "2020-10-15T21:56:21.381Z", "contributors": [ - "leshkin", - "ekirpichyov" + "kryksyh", + "WhiteApfel", + "nemish", + "NAKAMODI" ] }, - "Web/JavaScript/Reference/template_strings": { - "modified": "2020-10-15T21:31:19.424Z", + "Web/HTTP/Headers/Date": { + "modified": "2020-10-15T21:57:57.330Z", "contributors": [ - "DASenkiv", - "sahmildzhakeev", - "gendalf7771", - "vaallery", - "SphinxKnight", - "Barss07", - "AlexanderMikhnevich", - "cawa-93", - "dtretyakov" + "Darlanar", + "serieznyi" ] }, - "Web/JavaScript/Reference/Об": { - "modified": "2020-03-12T19:43:40.535Z", + "Web/HTTP/Headers/DNT": { + "modified": "2020-10-15T22:15:53.319Z", "contributors": [ - "Sergey1" + "Alex90" ] }, - "Web/JavaScript/Typed_arrays": { - "modified": "2020-03-12T19:45:54.627Z", + "Web/HTTP/Headers/ETag": { + "modified": "2020-10-15T22:02:38.948Z", "contributors": [ - "shevchenko", - "Imperat", - "Bargamut", - "redishko", - "WispProxy", - "Anomeon", - "some_vlad", - "Megabyteceer" + "dimatretyak", + "vetraz", + "curdwithraisins", + "Creepypoke" ] }, - "Web/JavaScript/О_JavaScript": { - "modified": "2020-03-12T19:40:51.750Z", + "Web/HTTP/Headers/Expect": { + "modified": "2019-03-23T22:11:58.063Z", "contributors": [ - "BychekRU", - "IgorGilyazov" + "AlexeyVasilievE" ] }, - "Web/Manifest": { - "modified": "2020-10-15T21:52:44.707Z", + "Web/HTTP/Headers/Expires": { + "modified": "2020-10-15T21:52:39.059Z", "contributors": [ - "almaceleste", - "chrisdavidmills", - "bershanskiy", - "ZolotoArtem", - "Encamy", - "SergeyMirvoda", - "Eugeno", - "Katarzina", - "Kidsman", - "suncitygirl", - "curdwithraisins" + "tjbulick", + "mrmlnc", + "MihLeonid", + "kobylin" ] }, - "Web/Manifest/background_color": { - "modified": "2020-10-15T22:28:08.267Z", + "Web/HTTP/Headers/Host": { + "modified": "2020-10-15T22:14:52.160Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "vugluskr", + "vadjradanta" ] }, - "Web/Manifest/categories": { - "modified": "2020-10-15T22:28:07.809Z", + "Web/HTTP/Headers/If-Match": { + "modified": "2020-10-15T21:54:39.304Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "AlexeyVasilievE" ] }, - "Web/Manifest/description": { - "modified": "2020-10-15T22:28:07.733Z", + "Web/HTTP/Headers/If-Modified-Since": { + "modified": "2020-10-15T21:54:34.736Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "chrisdavidmills", + "vykulakov", + "jellymary", + "AlexeyVasilievE" ] }, - "Web/Manifest/dir": { - "modified": "2020-10-15T22:28:08.586Z", + "Web/HTTP/Headers/If-Unmodified-Since": { + "modified": "2020-10-15T21:54:34.091Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "Rin15", + "jellymary", + "AlexeyVasilievE" ] }, - "Web/Manifest/display": { - "modified": "2020-10-15T22:28:07.850Z", + "Web/HTTP/Headers": { + "modified": "2020-10-01T10:57:48.980Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "bakhrom.akbarov", + "severyanov", + "DariiaBormot", + "andrewtk", + "st6gb", + "stonetrooper", + "loman", + "ReinarKein" ] }, - "Web/Manifest/iarc_rating_id": { - "modified": "2020-10-15T22:28:08.596Z", + "Web/HTTP/Headers/Last-Modified": { + "modified": "2020-10-15T22:15:38.253Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "ilyachase" ] }, - "Web/Manifest/icons": { - "modified": "2020-10-15T22:28:09.358Z", + "Web/HTTP/Headers/Origin": { + "modified": "2020-10-15T22:01:53.616Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "crabovwik" ] }, - "Web/Manifest/lang": { - "modified": "2020-10-15T22:28:09.577Z", + "Web/HTTP/Headers/Pragma": { + "modified": "2020-10-15T22:23:06.217Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "OlegSo" ] }, - "Web/Manifest/name": { - "modified": "2020-10-15T22:28:09.359Z", + "Web/HTTP/Headers/Range": { + "modified": "2020-10-15T22:23:56.930Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "ismorozs" ] }, - "Web/Manifest/orientation": { - "modified": "2020-10-15T22:28:08.826Z", + "Web/HTTP/Headers/Referer": { + "modified": "2020-10-15T22:08:22.897Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "stonetrooper" ] }, - "Web/Manifest/prefer_related_applications": { - "modified": "2020-10-15T22:28:08.735Z", + "Web/HTTP/Headers/Retry-After": { + "modified": "2020-10-15T22:04:40.732Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "TaizoGem" ] }, - "Web/Manifest/related_applications": { - "modified": "2020-10-15T22:28:09.294Z", + "Web/HTTP/Headers/Set-Cookie": { + "modified": "2020-10-15T22:22:30.848Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "wadzari", + "Artemeey", + "ehpc", + "YogSotot" ] }, - "Web/Manifest/scope": { - "modified": "2020-10-15T22:28:09.050Z", + "Web/HTTP/Headers/Strict-Transport-Security": { + "modified": "2020-10-15T22:23:39.989Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "Bargamut", + "s1lver", + "curdwithraisins" ] }, - "Web/Manifest/screenshots": { - "modified": "2020-10-15T22:28:09.543Z", + "Web/HTTP/Headers/Vary": { + "modified": "2020-10-15T22:21:15.515Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "onmotion" ] }, - "Web/Manifest/serviceworker": { - "modified": "2020-10-15T22:28:10.302Z", + "Web/HTTP/Headers/X-Content-Type-Options": { + "modified": "2020-10-15T22:16:15.365Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "WhiteApfel" ] }, - "Web/Manifest/short_name": { - "modified": "2020-10-15T22:21:30.619Z", + "Web/HTTP/Headers/X-Forwarded-For": { + "modified": "2019-03-18T20:52:28.146Z", "contributors": [ - "almaceleste", - "chrisdavidmills", - "bershanskiy" + "krigar1184", + "iliatcymbal" ] }, - "Web/Manifest/start_url": { - "modified": "2020-10-15T22:28:10.438Z", + "Web/HTTP/Headers/X-XSS-Protection": { + "modified": "2020-10-15T22:01:31.139Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "n00b" ] }, - "Web/Manifest/theme_color": { - "modified": "2020-10-15T22:28:10.250Z", + "Web/HTTP/Cookies": { + "modified": "2019-07-16T04:58:27.981Z", "contributors": [ - "almaceleste", - "chrisdavidmills" + "mrkutin", + "saitonakamura", + "levi2ki", + "GraceAredel", + "isildurpk", + "abmokin", + "serieznyi", + "mariag" ] }, - "Web/MathML": { - "modified": "2019-10-06T11:07:41.869Z", + "Web/HTTP/Caching": { + "modified": "2020-06-23T16:53:43.781Z", "contributors": [ - "valtaranets", - "bsergey", - "fider", - "koska", - "joemix" + "Vyprichenko", + "DeltaSPb", + "oleg3280", + "arturparkhisenko", + "gummeah", + "mariag", + "koks" ] }, - "Web/MathML/Authoring": { - "modified": "2019-03-23T22:08:43.986Z", + "Web/JavaScript/Guide/Using_promises": { + "modified": "2020-03-12T19:47:08.646Z", "contributors": [ - "bsergey", - "kimesik" + "EgrorBs", + "FrancoisVongue", + "kkxley", + "indalive", + "VitalyTartynov", + "joisadler", + "Lunatic174", + "kefir266", + "yojeek", + "djigach", + "Airomad", + "winexy", + "Geloosa" ] }, - "Web/MathML/Element": { - "modified": "2019-03-23T23:02:16.227Z", + "Web/JavaScript/Guide/Introduction": { + "modified": "2020-03-12T19:40:55.089Z", "contributors": [ - "bsergey", - "splewako" + "xxphantom", + "device25", + "boxa6", + "rinbik", + "vladPovalii", + "IgorGilyazov" ] }, - "Web/MathML/Element/maction": { - "modified": "2020-10-15T22:14:19.571Z", + "orphaned/Web/JavaScript/Guide/Об_этом_руководстве": { + "modified": "2019-03-24T00:13:23.720Z", "contributors": [ - "bsergey" + "teoli", + "danielgn96" ] }, - "Web/MathML/Element/math": { - "modified": "2019-03-23T23:02:16.927Z", + "Web/JavaScript/Guide/Loops_and_iteration": { + "modified": "2020-03-12T19:42:44.557Z", "contributors": [ - "Sykoku" + "Aparin", + "Costigans", + "Zinger1988", + "miirinjej", + "bad4iz", + "pathliving", + "EduardKuzhir", + "DeekHalden", + "BychekRU", + "Dvakseno", + "TARTIGA" ] }, - "Web/MathML/Element/menclose": { - "modified": "2020-10-15T22:15:07.763Z", + "Web/JavaScript/Shells": { + "modified": "2020-05-02T11:17:13.805Z", "contributors": [ - "bsergey" + "RenJeka", + "helenasilkina", + "fscholz", + "Alex_Howlett", + "teoli", + "Millionnaire" ] }, - "Web/MathML/Element/merror": { - "modified": "2020-10-15T22:15:45.168Z", + "Web/JavaScript/Reference/Classes/Public_class_fields": { + "modified": "2020-11-17T02:37:33.218Z", "contributors": [ - "bsergey" + "kosarev_va", + "warsambin", + "shmel3" ] }, - "Web/MathML/Element/mfenced": { - "modified": "2020-10-15T22:16:56.742Z", + "Web/JavaScript/Reference/Classes/Private_class_fields": { + "modified": "2020-10-15T22:33:38.348Z", "contributors": [ - "bsergey" + "cliggen", + "DarkExodusXX" ] }, - "Web/MathML/Element/mglyph": { - "modified": "2020-10-30T16:27:27.508Z", + "Web/JavaScript/Reference/Errors/Var_hides_argument": { + "modified": "2020-03-12T19:48:55.415Z", "contributors": [ - "d0rj" + "MakarovDs777" ] }, - "Web/MathML/Element/mn": { - "modified": "2020-10-30T16:23:01.293Z", + "Web/JavaScript/Reference/Functions/Method_definitions": { + "modified": "2020-03-12T19:41:39.567Z", "contributors": [ - "d0rj" + "SphinxKnight", + "sergeymakoveev", + "BatenkovT" ] }, - "Web/MathML/Element/mover": { - "modified": "2020-12-10T17:16:05.910Z", + "orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype": { + "modified": "2020-10-15T21:23:46.631Z", "contributors": [ - "d0rj" + "boxa6", + "Mingun", + "teoli", + "BedyNN" ] }, - "Web/MathML/Element/mstyle": { - "modified": "2020-10-30T15:38:27.824Z", + "orphaned/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype": { + "modified": "2020-10-15T22:21:51.709Z", "contributors": [ - "d0rj" + "AliaksandrZahorski" ] }, - "Web/MathML/Атрибут": { - "modified": "2020-12-10T16:59:05.690Z", + "orphaned/Web/JavaScript/Reference/Global_Objects/Math/Метод_Math.max()_": { + "modified": "2019-03-23T22:37:24.165Z", "contributors": [ - "d0rj" + "srvoland" ] }, - "Web/MathML/Примеры": { - "modified": "2020-11-23T14:28:54.743Z", + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/deleteProperty": { + "modified": "2020-10-15T22:14:52.334Z", "contributors": [ - "d0rj", - "Mr_nektom", - "Neir" + "smlkA" ] }, - "Web/MathML/Примеры/Deriving_the_Quadratic_Formula": { - "modified": "2019-03-18T21:18:54.194Z", + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set": { + "modified": "2020-11-17T05:50:39.778Z", "contributors": [ - "bsergey" + "kosarev_va", + "Vilafox" ] }, - "Web/MathML/Примеры/MathML_Pythagorean_Theorem": { - "modified": "2020-12-10T17:21:25.592Z", + "Web/JavaScript/Reference/Global_Objects/String/trimStart": { + "modified": "2019-03-23T23:06:19.542Z", "contributors": [ - "d0rj", - "bsergey", - "humantom88" + "Mingun" ] }, - "Web/Media": { - "modified": "2020-02-16T05:07:41.773Z", + "Web/JavaScript/Reference/Global_Objects/String/trimEnd": { + "modified": "2019-03-23T23:06:21.966Z", "contributors": [ - "Sheppy" + "Mingun" ] }, - "Web/Media/Formats": { - "modified": "2020-02-16T05:07:42.083Z", + "Web/JavaScript/Reference/Operators/Grouping": { + "modified": "2020-10-15T21:45:23.257Z", "contributors": [ - "Sheppy" + "synth", + "BychekRU" ] }, - "Web/Media/Formats/WebRTC_кодеки": { - "modified": "2020-11-27T19:05:43.474Z", + "Web/JavaScript/Reference/Operators/Pipeline_operator": { + "modified": "2020-10-15T22:07:33.663Z", "contributors": [ - "nikolaifedorov", - "mechtool" + "nakhodkiin", + "ALegostaeva" ] }, - "Web/Media/Formats/codecs_parameter": { - "modified": "2020-03-16T06:34:09.362Z", + "Web/JavaScript/Reference/Operators/Comma_Operator": { + "modified": "2020-10-15T21:21:15.661Z", "contributors": [ - "mechtool" + "synth", + "echelonka", + "OlegTar", + "cotolany", + "br3t", + "alnimu", + "Frenk1", + "fscholz", + "Ohar", + "teoli", + "nurbek.ab" ] }, - "Web/Performance": { - "modified": "2020-04-21T12:10:15.645Z", + "Web/JavaScript/Reference/Operators/Assignment": { + "modified": "2020-10-15T22:33:39.549Z", "contributors": [ - "D.Lesnik", - "chrisdavidmills" + "kucherenkoag", + "DarkExodusXX" ] }, - "Web/Performance/CSS_JavaScript_animation_performance": { - "modified": "2020-04-02T11:47:32.867Z", + "Web/JavaScript/Reference/Operators/Conditional_Operator": { + "modified": "2020-09-05T16:58:34.995Z", "contributors": [ - "D.Lesnik" + "ikzsl", + "NeoFSociety", + "lozzeal", + "DonRai", + "onatalie", + "SlavaJan", + "dmitrydanilich", + "KTatyana" ] }, - "Web/Performance/Critical_rendering_path": { - "modified": "2020-03-30T19:35:11.484Z", + "Web/JavaScript/Reference/Statements/block": { + "modified": "2020-03-14T08:00:39.543Z", "contributors": [ - "D.Lesnik" + "rookhive", + "Aliq" ] }, - "Web/Performance/How_browsers_work": { - "modified": "2020-12-07T17:11:39.900Z", + "Web/JavaScript/Reference/Template_literals": { + "modified": "2020-10-15T21:31:19.424Z", "contributors": [ - "SamTLT", - "vlad-vorontsov", - "D.Lesnik" + "DASenkiv", + "sahmildzhakeev", + "gendalf7771", + "vaallery", + "SphinxKnight", + "Barss07", + "AlexanderMikhnevich", + "cawa-93", + "dtretyakov" ] }, - "Web/Performance/How_long_is_too_long": { - "modified": "2020-05-15T10:59:03.931Z", + "Web/JavaScript/Reference/About": { + "modified": "2020-03-12T19:43:40.535Z", "contributors": [ - "D.Lesnik" + "Sergey1" ] }, - "Web/Performance/Lazy_loading": { - "modified": "2020-05-23T10:12:03.445Z", + "Web/JavaScript/About_JavaScript": { + "modified": "2020-03-12T19:40:51.750Z", "contributors": [ - "mfranzke", - "D.Lesnik" + "BychekRU", + "IgorGilyazov" ] }, - "Web/Performance/Navigation_and_resource_timings": { - "modified": "2020-04-02T11:43:41.543Z", + "orphaned/Web/Manifest/serviceworker": { + "modified": "2020-10-15T22:28:10.302Z", "contributors": [ - "D.Lesnik" + "almaceleste", + "chrisdavidmills" ] }, - "Web/Performance/Optimizing_startup_performance": { - "modified": "2020-04-03T10:03:42.671Z", + "Web/MathML/Attribute": { + "modified": "2020-12-10T16:59:05.690Z", "contributors": [ - "D.Lesnik" + "d0rj" ] }, - "Web/Performance/Performance_budgets": { - "modified": "2020-04-06T12:41:24.362Z", + "Web/MathML/Examples/Deriving_the_Quadratic_Formula": { + "modified": "2019-03-18T21:18:54.194Z", "contributors": [ - "D.Lesnik" + "bsergey" ] }, - "Web/Performance/Rum-vs-Synthetic": { - "modified": "2020-04-17T19:39:30.304Z", + "Web/MathML/Examples": { + "modified": "2020-11-23T14:28:54.743Z", "contributors": [ - "D.Lesnik" + "d0rj", + "Mr_nektom", + "Neir" ] }, - "Web/Performance/Understanding_latency": { - "modified": "2020-05-28T07:49:08.019Z", + "Web/MathML/Examples/MathML_Pythagorean_Theorem": { + "modified": "2020-12-10T17:21:25.592Z", "contributors": [ - "D.Lesnik" + "d0rj", + "bsergey", + "humantom88" ] }, - "Web/Performance/dns-prefetch": { - "modified": "2020-12-13T17:12:00.849Z", + "Web/Media/Formats/WebRTC_codecs": { + "modified": "2020-11-27T19:05:43.474Z", "contributors": [ - "iozee", - "it4joy", - "D.Lesnik" + "nikolaifedorov", + "mechtool" ] }, - "Web/Performance/Основы": { + "Web/Performance/Fundamentals": { "modified": "2020-04-15T18:48:38.137Z", "contributors": [ "D.Lesnik" ] }, - "Web/Performance/Производительность_анимации": { + "Web/Performance/Animation_performance_and_frame_rate": { "modified": "2020-04-02T11:48:28.669Z", "contributors": [ "D.Lesnik" ] }, - "Web/Progressive_web_apps": { - "modified": "2019-04-20T03:25:44.859Z", + "orphaned/Web/Security/Information_Security_Basics": { + "modified": "2019-03-18T20:42:08.077Z", "contributors": [ - "webmaxru", - "chrisdavidmills", - "ruslan_g02" + "Frisle" ] }, - "Web/Progressive_web_apps/Installable_PWAs": { - "modified": "2020-05-31T18:38:14.629Z", + "orphaned/Web/SVG/Attribute/onload": { + "modified": "2019-01-16T20:23:16.915Z", "contributors": [ - "AlexandrKoliukh", - "chrisdavidmills", - "WhiteApfel" + "maxportnyagin" ] }, - "Web/Progressive_web_apps/Заметный": { - "modified": "2019-03-18T20:52:07.177Z", + "Web/SVG/Tutorial/Basic_Transformations": { + "modified": "2020-08-16T23:38:02.015Z", "contributors": [ - "chrisdavidmills", - "ruslan_g02" + "fqf", + "hisbvdis", + "theykillimmortal", + "andrewtk" ] }, - "Web/Reference": { - "modified": "2019-03-18T20:37:11.659Z", + "Web/SVG/Tutorial/Introduction": { + "modified": "2020-08-11T13:52:37.344Z", "contributors": [ - "mmbl", - "Shychara", - "vostvesh", - "AlexLog", - "uri-uri222", - "slaykovsky", - "Nuzland" + "wBureshGitHub", + "hisbvdis", + "tcheburator", + "alexbs", + "Alianta", + "Dizzy", + "tavira", + "mboris1", + "nakhodkiin", + "MaxManchak" ] }, - "Web/Reference/API": { - "modified": "2019-03-23T23:10:40.925Z", + "Web/SVG/Tutorial/Basic_Shapes": { + "modified": "2019-03-23T22:33:02.983Z", "contributors": [ - "olyaknyaz", - "filutkie", - "dimFora", - "BychekRU", - "varstt", - "uleming", - "AlexLog", - "eb-gh-cr", - "ARleKino", - "Tihoem", - "takto", - "bariys18" + "devfedorenko", + "komuroe", + "Dizzy", + "AlexanderLevenskikh", + "mboris1" ] }, - "Web/SVG": { - "modified": "2019-11-01T15:48:17.103Z", + "Web/SVG/Tutorial/Positions": { + "modified": "2019-03-23T22:33:09.544Z", "contributors": [ - "hisbvdis", - "AdelNorberg", - "Solj", - "Roman-Kosov", - "warsan", - "dima74", + "Dizzy", + "valery-paschenkov", + "AlexanderLevenskikh", + "mboris1" + ] + }, + "Web/SVG/Element/a": { + "modified": "2020-10-15T21:31:40.250Z", + "contributors": [ + "ekirpichyov", + "boxa6", + "bogdancdc", + "Sebastianz", "AlexeyFedotof", - "romanalesenkov", - "sputnik1986", - "Mingun", - "Dyvik" + "Eugene_Ishchenko" ] }, - "Web/SVG/Applying_SVG_effects_to_HTML_content": { - "modified": "2019-04-10T04:51:15.356Z", + "Web/SVG/Element/animate": { + "modified": "2020-10-15T21:40:35.396Z", "contributors": [ - "warsan" + "boxa6", + "wbamberg", + "Sebastianz", + "Eugene_Ishchenko" ] }, - "Web/SVG/Attribute": { - "modified": "2019-03-23T23:20:13.909Z", + "Web/SVG/Element/animateMotion": { + "modified": "2020-10-15T22:06:06.145Z", "contributors": [ - "Solj", - "Vasiliy.Poddubny", - "BychekRU", - "kscarfone" + "ekirpichyov", + "warsan" ] }, - "Web/SVG/Attribute/Core": { - "modified": "2020-10-15T22:34:58.576Z", + "Web/SVG/Element/circle": { + "modified": "2020-10-15T21:41:44.986Z", "contributors": [ - "osipov_s" + "LonelyDutchhound", + "boxa6", + "wbamberg", + "Sebastianz", + "AlexeyFedotof", + "littleleshy" ] }, - "Web/SVG/Attribute/additive": { - "modified": "2019-03-23T22:07:14.939Z", + "Web/SVG/Element/defs": { + "modified": "2020-10-15T22:02:01.863Z", "contributors": [ - "Solj", - "warsan", - "Vasiliy.Poddubny" + "boxa6", + "coshturnina" ] }, - "Web/SVG/Attribute/attributeName": { - "modified": "2019-09-17T04:44:27.460Z", + "Web/SVG/Element/ellipse": { + "modified": "2020-10-15T21:41:43.342Z", "contributors": [ - "ekirpichyov", - "Solj", - "warsan", - "theykillimmortal" + "ialexi-bl", + "boxa6", + "wbamberg", + "Sebastianz", + "littleleshy" ] }, - "Web/SVG/Attribute/attributeType": { - "modified": "2019-03-23T22:07:14.824Z", + "Web/SVG/Element/feBlend": { + "modified": "2020-10-15T22:27:27.749Z", "contributors": [ - "Solj", - "warsan", - "theykillimmortal", - "Vasiliy.Poddubny" + "opereverzeva" ] }, - "Web/SVG/Attribute/class": { - "modified": "2019-03-23T22:24:12.240Z", + "Web/SVG/Element/foreignObject": { + "modified": "2020-10-15T22:16:25.096Z", "contributors": [ - "Vitaligo", - "dmitron1036" + "warsan" ] }, - "Web/SVG/Attribute/cx": { - "modified": "2019-03-18T21:39:26.378Z", + "Web/SVG/Element/g": { + "modified": "2020-10-15T21:43:10.879Z", "contributors": [ - "Solj", - "AlexandrNikolaichev" + "Anonymous", + "boxa6", + "dek4nice", + "Sebastianz", + "vaut", + "littleguga", + "AlexeyFedotof" ] }, - "Web/SVG/Attribute/cy": { - "modified": "2019-03-18T21:39:30.503Z", + "Web/SVG/Element/image": { + "modified": "2020-11-27T18:39:02.137Z", "contributors": [ - "Solj", - "AlexandrNikolaichev" + "robert491", + "boxa6", + "Sebastianz", + "AlexeyFedotof" ] }, - "Web/SVG/Attribute/d": { - "modified": "2019-10-17T06:49:06.860Z", + "Web/SVG/Element": { + "modified": "2019-03-23T23:05:44.353Z", "contributors": [ - "andruhovski", "warsan", - "vKuka", - "annaSchugay" + "BychekRU", + "littleleshy", + "Eugene_Ishchenko" ] }, - "Web/SVG/Attribute/dur": { - "modified": "2020-10-15T21:56:33.845Z", + "Web/SVG/Element/line": { + "modified": "2020-10-15T21:43:08.477Z", "contributors": [ - "ekirpichyov", - "Solj", - "theykillimmortal", - "Vasiliy.Poddubny" + "boxa6", + "konstcos", + "Sebastianz", + "AlexeyFedotof" ] }, - "Web/SVG/Attribute/end": { - "modified": "2019-03-23T22:07:08.160Z", + "Web/SVG/Element/linearGradient": { + "modified": "2020-10-15T22:03:43.312Z", "contributors": [ - "Vasiliy.Poddubny" + "boxa6", + "warsan" ] }, - "Web/SVG/Attribute/fill": { - "modified": "2019-03-28T08:38:38.419Z", + "Web/SVG/Element/path": { + "modified": "2020-10-15T21:43:09.343Z", "contributors": [ - "boxa6", "Solj", - "theykillimmortal", - "Vasiliy.Poddubny" + "warsan", + "Sebastianz", + "samufa" ] }, - "Web/SVG/Attribute/fill-opacity": { - "modified": "2019-03-23T22:46:24.495Z", + "Web/SVG/Element/pattern": { + "modified": "2020-10-15T22:14:34.421Z", "contributors": [ - "Solj", - "Mikke" + "boxa6", + "warsan" ] }, - "Web/SVG/Attribute/fill-rule": { - "modified": "2020-10-15T22:29:32.056Z", + "Web/SVG/Element/polygon": { + "modified": "2020-10-15T22:06:44.273Z", "contributors": [ - "ellizii" + "aak74", + "boxa6", + "bogdancdc" ] }, - "Web/SVG/Attribute/font-weight": { - "modified": "2020-10-15T21:59:48.037Z", + "Web/SVG/Element/radialGradient": { + "modified": "2020-10-15T22:03:44.433Z", "contributors": [ "boxa6", - "kasperyan" + "warsan" ] }, - "Web/SVG/Attribute/id": { - "modified": "2020-10-24T12:47:37.053Z", + "Web/SVG/Element/rect": { + "modified": "2020-10-15T21:32:22.045Z", "contributors": [ - "osipov_s" + "boxa6", + "wbamberg", + "warsan", + "VitaliiKotliar", + "Sebastianz", + "xalz" ] }, - "Web/SVG/Attribute/keyTimes": { - "modified": "2019-05-03T20:37:52.946Z", + "Web/SVG/Element/svg": { + "modified": "2020-10-15T22:31:04.274Z", "contributors": [ - "DyominMV", - "zzzunyazz", - "Vasiliy.Poddubny" + "kve1989" ] }, - "Web/SVG/Attribute/lang": { - "modified": "2020-10-24T13:21:41.808Z", + "Web/SVG/Element/text": { + "modified": "2020-10-15T21:57:25.159Z", "contributors": [ - "osipov_s" + "boxa6", + "warsan", + "arturparkhisenko", + "Evgenjnr" ] }, - "Web/SVG/Attribute/lengthAdjust": { - "modified": "2019-03-23T22:04:51.651Z", + "Web/SVG/Element/use": { + "modified": "2020-10-15T22:24:14.813Z", "contributors": [ - "theykillimmortal" + "hisbvdis" ] }, - "Web/SVG/Attribute/letter-spacing": { - "modified": "2019-03-23T22:09:36.832Z", + "Web/Web_Components/Using_custom_elements": { + "modified": "2020-01-05T09:04:07.966Z", "contributors": [ - "missis-sippi", - "Solj", - "theykillimmortal", - "alex7852" + "Anonymous", + "BurkovBA", + "curtdp", + "curdwithraisins" ] }, - "Web/SVG/Attribute/lighting-color": { - "modified": "2019-03-23T22:04:44.084Z", + "Web/XPath/Functions/floor": { + "modified": "2019-01-16T14:55:28.337Z", "contributors": [ - "Solj", - "theykillimmortal" + "ExE-Boss", + "Android" ] }, - "Web/SVG/Attribute/onload": { - "modified": "2019-01-16T20:23:16.915Z", + "Web/XPath/Functions": { + "modified": "2019-01-16T14:55:44.176Z", "contributors": [ - "maxportnyagin" + "ExE-Boss", + "wbamberg", + "teoli", + "Android" ] }, - "Web/SVG/Attribute/overflow": { - "modified": "2019-03-23T23:20:06.881Z", + "Web/API/WebSockets_API": { + "modified": "2020-10-15T21:24:23.136Z", "contributors": [ - "Solj", - "glizer", - "torbasow" + "YozhEzhi", + "Sajag", + "RusinovAnton", + "zarkone", + "uleming", + "LOVEBOYS" ] }, - "Web/SVG/Attribute/patternContentUnits": { - "modified": "2019-03-23T22:06:23.667Z", + "Web/API/WebSockets_API/Writing_WebSocket_client_applications": { + "modified": "2019-03-23T23:26:56.301Z", "contributors": [ - "artemzwinger" + "Anaind", + "DirectX", + "ilya_khaustov" ] }, - "Web/SVG/Attribute/r": { - "modified": "2019-03-18T21:29:41.005Z", + "orphaned/XML_in_Mozilla": { + "modified": "2019-01-16T14:53:06.925Z", "contributors": [ - "igor-khramko" + "nsvsergey" ] }, - "Web/SVG/Attribute/repeatCount": { - "modified": "2019-03-23T22:24:33.265Z", + "conflicting/Web/API/XMLHttpRequest": { + "modified": "2019-03-24T00:11:01.706Z", "contributors": [ - "Solj", - "VitaliiKotliar" + "denpatin", + "dehero", + "teoli", + "torbasow", + "TotalAMD", + "shergin", + "Bzbarsky", + "Atzkey", + "Apparition" ] }, - "Web/SVG/Attribute/rx": { - "modified": "2019-09-27T12:00:57.972Z", + "orphaned/XPCNativeWrapper": { + "modified": "2019-03-24T00:02:27.014Z", "contributors": [ - "Solj" + "fscholz", + "Dionys" ] }, - "Web/SVG/Attribute/ry": { - "modified": "2019-09-27T12:42:00.928Z", + "orphaned/XPCOM": { + "modified": "2019-01-16T14:04:32.944Z", "contributors": [ - "Solj" + "teoli", + "caiiiycuk", + "bill.gates" ] }, - "Web/SVG/Attribute/shape-rendering": { - "modified": "2019-03-23T23:20:17.223Z", + "orphaned/Веб-стандарты": { + "modified": "2019-03-24T00:00:23.706Z", "contributors": [ - "theykillimmortal", - "BaNru" + "Marat", + "Protopopulus" ] }, - "Web/SVG/Attribute/stop-color": { - "modified": "2019-03-23T22:04:50.665Z", + "orphaned/Вопросы_без_ответов": { + "modified": "2019-03-23T23:58:57.825Z", "contributors": [ - "theykillimmortal" + "glukin" ] }, - "Web/SVG/Attribute/stroke": { - "modified": "2019-03-23T22:07:06.951Z", + "orphaned/Динамически_изменяемый_пользовательский_интерфейс_на_XUL": { + "modified": "2019-06-25T10:50:01.432Z", "contributors": [ - "Solj", - "Vasiliy.Poddubny" + "teoli", + "kup", + "Megapotz" ] }, - "Web/SVG/Attribute/stroke-dashoffset": { - "modified": "2019-10-13T18:23:50.855Z", + "orphaned/Доступность": { + "modified": "2019-01-16T14:51:09.522Z", "contributors": [ - "warsan", - "Solj", - "maxnnn1900" + "Sheppy", + "vilky", + "Cobalt747" ] }, - "Web/SVG/Attribute/stroke-linecap": { - "modified": "2020-10-15T22:14:34.059Z", + "orphaned/Заголовок_ссылки": { + "modified": "2019-03-23T23:43:21.855Z", "contributors": [ - "warsan" + "Sheppy", + "Doctor Baaz" ] }, - "Web/SVG/Attribute/stroke-width": { - "modified": "2019-03-23T22:01:11.603Z", + "orphaned/Контроль_качества": { + "modified": "2019-01-16T14:03:27.006Z", "contributors": [ - "Solj", - "Snikard" + "Hypante" ] }, - "Web/SVG/Attribute/text-anchor": { - "modified": "2020-10-15T21:56:48.973Z", + "orphaned/Локализация": { + "modified": "2019-01-16T14:53:07.899Z", "contributors": [ - "mencerz", - "warsan", - "leonrom", - "theykillimmortal" + "Sheppy", + "sM1Le", + "glukin" ] }, - "Web/SVG/Attribute/text-rendering": { - "modified": "2019-03-23T23:20:14.491Z", + "orphaned/Настройка_среды_разработки_расширений": { + "modified": "2019-03-24T00:02:36.376Z", "contributors": [ - "BaNru" + "alikkille", + "teoli", + "fscholz", + "Yozh88" ] }, - "Web/SVG/Attribute/transform": { - "modified": "2019-03-23T22:46:36.351Z", + "orphaned/Переход_с_Internet_Explorer_на_Mozilla": { + "modified": "2019-01-16T15:00:06.072Z", "contributors": [ - "a1ip", - "Solj", - "Lexeii", - "antisergey", - "Aleksov" + "karasiov", + "Yura", + "Naterera" ] }, - "Web/SVG/Attribute/values": { - "modified": "2019-03-23T22:06:49.462Z", + "orphaned/Сборка_и_установка": { + "modified": "2019-03-24T00:05:30.187Z", "contributors": [ - "Vasiliy.Poddubny" + "Protopopulus" ] }, - "Web/SVG/Attribute/viewBox": { - "modified": "2020-07-17T23:39:00.663Z", + "Glossary/404": { + "modified": "2019-03-23T22:13:48.343Z", "contributors": [ - "ialexi-bl", - "dimitrius-brest", - "annekorti", - "pepsikat" + "cotolany", + "nudaworks" ] }, - "Web/SVG/Attribute/width": { - "modified": "2019-05-12T12:39:52.350Z", + "Glossary/502": { + "modified": "2019-03-18T21:41:50.347Z", "contributors": [ - "opereverzeva" + "gadjetron" ] }, - "Web/SVG/Attribute/x": { - "modified": "2019-03-23T22:05:16.429Z", + "Glossary/Abstraction": { + "modified": "2019-03-23T22:51:57.044Z", "contributors": [ - "Solj" + "alitskevich", + "davidof" ] }, - "Web/SVG/Attribute/xml:space": { - "modified": "2019-03-23T22:23:51.290Z", + "Glossary/Adobe_Flash": { + "modified": "2019-03-23T22:16:01.660Z", "contributors": [ - "lautsevich" + "ifantom" ] }, - "Web/SVG/Attribute/y": { - "modified": "2019-03-23T22:05:20.840Z", + "Glossary/AJAX": { + "modified": "2020-10-30T05:21:31.612Z", "contributors": [ - "Solj" + "ksam", + "duckDominatrix", + "T1mL3arn", + "ifantom", + "mpetrikov", + "gudkovdanila", + "veselik", + "nikokosh" ] }, - "Web/SVG/SVG_1.1_Support_in_Firefox": { - "modified": "2019-03-18T21:33:59.744Z", + "Glossary/Algorithm": { + "modified": "2019-11-23T15:11:34.488Z", "contributors": [ - "warsan" + "Igor-Sangin", + "boxa6", + "ifantom" ] }, - "Web/SVG/SVG_as_an_Image": { - "modified": "2019-04-24T01:52:04.782Z", + "Glossary/API": { + "modified": "2020-10-30T06:23:36.856Z", "contributors": [ - "opereverzeva" + "ksam", + "DashPisareva", + "nikitaermishin", + "Severno" ] }, - "Web/SVG/Tutorial": { - "modified": "2020-08-16T23:33:41.513Z", + "Glossary/Apple_Safari": { + "modified": "2019-03-23T22:09:03.834Z", "contributors": [ - "fqf", - "Ivan961", - "hisbvdis", - "theykillimmortal", - "dima74", - "mboris1", - "MaxManchak", - "Eugene_Ishchenko" + "bsergey", + "pgooood" ] }, - "Web/SVG/Tutorial/Clipping_and_masking": { - "modified": "2019-03-18T21:33:27.085Z", + "Glossary/application_context": { + "modified": "2019-03-18T21:33:46.218Z", "contributors": [ - "theykillimmortal" + "bsergey", + "Lana-Light" ] }, - "Web/SVG/Tutorial/Fills_and_Strokes": { - "modified": "2019-11-05T15:39:42.604Z", + "Glossary/ARIA": { + "modified": "2019-04-09T10:19:16.954Z", "contributors": [ - "hisbvdis", - "valery-paschenkov", - "tavira" + "JCodeg", + "bsergey" ] }, - "Web/SVG/Tutorial/Filter_effects": { - "modified": "2019-03-18T21:33:29.713Z", + "Glossary/ARPA": { + "modified": "2019-03-18T21:25:48.447Z", "contributors": [ - "theykillimmortal" + "bsergey" ] }, - "Web/SVG/Tutorial/Getting_Started": { - "modified": "2019-11-04T17:28:30.391Z", + "Glossary/Arpanet": { + "modified": "2019-03-18T21:25:16.563Z", "contributors": [ - "hisbvdis", - "alexbs", - "warsan", - "komuroe", - "valery-paschenkov", - "tavira", - "mboris1", - "Eugene_Ishchenko" + "bsergey" ] }, - "Web/SVG/Tutorial/Gradients": { - "modified": "2020-08-11T09:48:48.660Z", + "Glossary/ASCII": { + "modified": "2019-03-18T21:40:49.201Z", "contributors": [ - "wBureshGitHub", - "u.gantimurov", - "warsan", - "valery-paschenkov", - "tavira" + "ValeriiBoiko" ] }, - "Web/SVG/Tutorial/Other_content_in_SVG": { - "modified": "2019-12-31T04:23:04.282Z", + "Glossary/Asynchronous": { + "modified": "2019-03-18T21:40:41.315Z", "contributors": [ - "ekirpichyov", - "warsan" + "jeniasaigak", + "ValeriiBoiko" ] }, - "Web/SVG/Tutorial/Paths": { - "modified": "2019-10-08T05:57:38.968Z", + "Glossary/ATAG": { + "modified": "2019-03-18T21:25:01.427Z", "contributors": [ - "hellvesper", - "red5tart", - "devfedorenko", - "komuroe", - "tavira", - "sonnenhaft", - "reflash", - "riseremi", - "mboris1", - "scaint" + "bsergey" ] }, - "Web/SVG/Tutorial/Patterns": { - "modified": "2019-11-06T13:03:01.053Z", + "Glossary/Bandwidth": { + "modified": "2019-03-23T22:06:46.461Z", "contributors": [ - "hisbvdis", - "warsan", - "valery-paschenkov" + "Morjodrom" ] }, - "Web/SVG/Tutorial/SVG_Image_Tag": { - "modified": "2019-03-23T22:09:37.959Z", + "Glossary/baseline": { + "modified": "2020-08-27T06:37:10.071Z", "contributors": [ - "x-in" + "DarkExodusXX" ] }, - "Web/SVG/Tutorial/SVG_In_HTML_Introduction": { - "modified": "2019-03-23T22:42:40.887Z", + "Glossary/Bézier_curve": { + "modified": "2019-08-19T18:48:29.930Z", "contributors": [ - "chrisdavidmills", - "warsan", - "karpulix" + "regeneratorl" ] }, - "Web/SVG/Tutorial/SVG_fonts": { - "modified": "2019-03-18T21:33:26.235Z", + "Glossary/BiDi": { + "modified": "2019-03-18T21:25:00.810Z", "contributors": [ - "theykillimmortal" + "bsergey" ] }, - "Web/SVG/Tutorial/Texts": { - "modified": "2019-03-18T21:43:56.017Z", + "Glossary/BigInt": { + "modified": "2020-08-27T06:12:45.928Z", "contributors": [ - "theykillimmortal" + "DarkExodusXX", + "maksakova" ] }, - "Web/SVG/Tutorial/Tools_for_SVG": { - "modified": "2019-06-06T06:15:16.270Z", + "Glossary/Blink": { + "modified": "2019-03-18T20:43:00.706Z", "contributors": [ - "Evaphobia", - "Roman-Kosov" + "Frisle" ] }, - "Web/SVG/Tutorial/Базовые_Преобразования": { - "modified": "2020-08-16T23:38:02.015Z", + "Glossary/Boolean": { + "modified": "2020-05-05T17:38:43.691Z", "contributors": [ - "fqf", - "hisbvdis", - "theykillimmortal", - "andrewtk" + "Thr0TT1e", + "ekirpichyov", + "Anna-Myzukina", + "perioad", + "Shankshel", + "boxa6", + "Sheppy", + "jaguardev" ] }, - "Web/SVG/Tutorial/Введение": { - "modified": "2020-08-11T13:52:37.344Z", + "Glossary/Bootstrap": { + "modified": "2020-10-30T10:23:10.825Z", "contributors": [ - "wBureshGitHub", - "hisbvdis", - "tcheburator", - "alexbs", - "Alianta", - "Dizzy", - "tavira", - "mboris1", - "nakhodkiin", - "MaxManchak" + "ksam" ] }, - "Web/SVG/Tutorial/Основные_Фигуры": { - "modified": "2019-03-23T22:33:02.983Z", + "Glossary/Browser": { + "modified": "2019-03-23T22:40:32.512Z", "contributors": [ - "devfedorenko", - "komuroe", - "Dizzy", - "AlexanderLevenskikh", - "mboris1" + "anastasiya-solodkaya", + "AlexandrKalaidzhi", + "tronov", + "MuradAz" ] }, - "Web/SVG/Tutorial/Позиции": { - "modified": "2019-03-23T22:33:09.544Z", + "Glossary/Browsing_context": { + "modified": "2019-03-23T22:17:49.487Z", "contributors": [ - "Dizzy", - "valery-paschenkov", - "AlexanderLevenskikh", - "mboris1" + "anastasiya-solodkaya" + ] + }, + "Glossary/cacheable": { + "modified": "2019-03-23T22:25:05.632Z", + "contributors": [ + "vykulakov", + "pk.prog" ] }, - "Web/SVG/Элемент": { - "modified": "2019-03-23T23:05:44.353Z", + "Glossary/Call_stack": { + "modified": "2019-03-26T03:35:33.245Z", "contributors": [ - "warsan", - "BychekRU", - "littleleshy", - "Eugene_Ishchenko" + "boxa6", + "Dimas-X", + "Iroshh" ] }, - "Web/SVG/Элемент/": { - "modified": "2020-10-15T21:57:25.159Z", + "Glossary/Canvas": { + "modified": "2019-03-18T21:33:34.116Z", "contributors": [ - "boxa6", - "warsan", - "arturparkhisenko", - "Evgenjnr" + "Lana-Light" ] }, - "Web/SVG/Элемент/a": { - "modified": "2020-10-15T21:31:40.250Z", + "Glossary/Card_sorting": { + "modified": "2019-09-13T15:24:23.423Z", "contributors": [ - "ekirpichyov", - "boxa6", - "bogdancdc", - "Sebastianz", - "AlexeyFedotof", - "Eugene_Ishchenko" + "maXimusIsMyName", + "nova-k" ] }, - "Web/SVG/Элемент/animate": { - "modified": "2020-10-15T21:40:35.396Z", + "Glossary/CDN": { + "modified": "2019-07-08T10:40:37.612Z", "contributors": [ - "boxa6", - "wbamberg", - "Sebastianz", - "Eugene_Ishchenko" + "LesikTheCat" ] }, - "Web/SVG/Элемент/animateMotion": { - "modified": "2020-10-15T22:06:06.145Z", + "Glossary/character_encoding": { + "modified": "2019-11-23T10:06:58.821Z", "contributors": [ - "ekirpichyov", - "warsan" + "Igor-Sangin" ] }, - "Web/SVG/Элемент/circle": { - "modified": "2020-10-15T21:41:44.986Z", + "Glossary/Character": { + "modified": "2019-03-26T03:36:39.039Z", "contributors": [ - "LonelyDutchhound", - "boxa6", - "wbamberg", - "Sebastianz", - "AlexeyFedotof", - "littleleshy" + "boxa6" ] }, - "Web/SVG/Элемент/defs": { - "modified": "2020-10-15T22:02:01.863Z", + "Glossary/Chrome": { + "modified": "2019-01-16T20:45:50.537Z", "contributors": [ - "boxa6", - "coshturnina" + "Aleksej" ] }, - "Web/SVG/Элемент/ellipse": { - "modified": "2020-10-15T21:41:43.342Z", + "Glossary/Class": { + "modified": "2019-03-23T22:50:33.763Z", "contributors": [ - "ialexi-bl", - "boxa6", - "wbamberg", - "Sebastianz", - "littleleshy" + "ezekeli", + "scanick" ] }, - "Web/SVG/Элемент/feBlend": { - "modified": "2020-10-15T22:27:27.749Z", + "Glossary/CMS": { + "modified": "2019-03-23T22:17:50.404Z", "contributors": [ - "opereverzeva" + "anastasiya-solodkaya" ] }, - "Web/SVG/Элемент/foreignObject": { - "modified": "2020-10-15T22:16:25.096Z", + "Glossary/Codec": { + "modified": "2019-06-20T09:27:20.089Z", "contributors": [ - "warsan" + "CS313" ] }, - "Web/SVG/Элемент/g": { - "modified": "2020-10-15T21:43:10.879Z", + "Glossary/Compile": { + "modified": "2020-08-27T07:13:45.873Z", "contributors": [ - "Anonymous", - "boxa6", - "dek4nice", - "Sebastianz", - "vaut", - "littleguga", - "AlexeyFedotof" + "DarkExodusXX" ] }, - "Web/SVG/Элемент/image": { - "modified": "2020-11-27T18:39:02.137Z", + "Glossary/Computer_Programming": { + "modified": "2020-02-28T20:10:24.813Z", "contributors": [ - "robert491", - "boxa6", - "Sebastianz", - "AlexeyFedotof" + "almaceleste" ] }, - "Web/SVG/Элемент/line": { - "modified": "2020-10-15T21:43:08.477Z", + "Glossary/Conditional": { + "modified": "2020-02-28T19:51:16.047Z", "contributors": [ - "boxa6", - "konstcos", - "Sebastianz", - "AlexeyFedotof" + "almaceleste" ] }, - "Web/SVG/Элемент/linearGradient": { - "modified": "2020-10-15T22:03:43.312Z", + "Glossary/Constructor": { + "modified": "2019-03-18T21:40:38.410Z", "contributors": [ - "boxa6", - "warsan" + "ValeriiBoiko" ] }, - "Web/SVG/Элемент/path": { - "modified": "2020-10-15T21:43:09.343Z", + "Glossary/Cookie": { + "modified": "2019-03-23T22:19:39.272Z", "contributors": [ - "Solj", - "warsan", - "Sebastianz", - "samufa" + "anastasiya-solodkaya", + "smkoyan" ] }, - "Web/SVG/Элемент/pattern": { - "modified": "2020-10-15T22:14:34.421Z", + "Glossary/Copyleft": { + "modified": "2019-08-22T15:17:45.253Z", "contributors": [ - "boxa6", - "warsan" + "regeneratorl" ] }, - "Web/SVG/Элемент/polygon": { - "modified": "2020-10-15T22:06:44.273Z", + "Glossary/CORS": { + "modified": "2019-03-18T21:01:16.414Z", "contributors": [ - "aak74", - "boxa6", - "bogdancdc" + "ruslan.khaertdinov", + "anastasiya-solodkaya" ] }, - "Web/SVG/Элемент/radialGradient": { - "modified": "2020-10-15T22:03:44.433Z", + "Glossary/Crawler": { + "modified": "2019-10-16T05:50:09.685Z", "contributors": [ - "boxa6", - "warsan" + "e-h-h" ] }, - "Web/SVG/Элемент/rect": { - "modified": "2020-10-15T21:32:22.045Z", + "Glossary/CRLF": { + "modified": "2019-03-18T21:18:06.376Z", "contributors": [ - "boxa6", - "wbamberg", - "warsan", - "VitaliiKotliar", - "Sebastianz", - "xalz" + "alexbs" ] }, - "Web/SVG/Элемент/svg": { - "modified": "2020-10-15T22:31:04.274Z", + "Glossary/CSP": { + "modified": "2020-03-11T16:49:32.227Z", "contributors": [ - "kve1989" + "almaceleste" ] }, - "Web/SVG/Элемент/use": { - "modified": "2020-10-15T22:24:14.813Z", + "Glossary/CSRF": { + "modified": "2019-03-23T22:17:52.593Z", "contributors": [ - "hisbvdis" + "anastasiya-solodkaya" ] }, - "Web/Security": { - "modified": "2019-11-20T21:39:44.381Z", + "Glossary/CSS_preprocessor": { + "modified": "2019-03-26T02:52:52.000Z", "contributors": [ - "wbamberg", - "SphinxKnight", - "pepelsbey", - "Tihoem", - "Sheppy" + "boxa6", + "bazoooker" ] }, - "Web/Security/CSP": { - "modified": "2019-03-23T23:04:20.797Z", + "Glossary/CSS_Selector": { + "modified": "2020-12-07T13:33:11.621Z", "contributors": [ - "sivashev", - "Aleksej", - "Tihoem" + "kucherenkoag", + "DashPisareva" ] }, - "Web/Security/Information_Security_Basics": { - "modified": "2019-03-18T20:42:08.077Z", + "Glossary/CSS": { + "modified": "2020-11-27T18:16:28.046Z", "contributors": [ - "Frisle" + "robert491", + "boxa6", + "andreybakhishev", + "oleg3280", + "AlexandrKalaidzhi" ] }, - "Web/Security/Same-origin_policy": { - "modified": "2020-10-20T11:28:42.439Z", + "Glossary/Data_structure": { + "modified": "2019-03-23T22:40:22.188Z", "contributors": [ - "niklimoff01", - "hisbvdis", - "WhiteApfel", - "iamvector", - "vladlipski", - "ZVanoZ" + "alitskevich" ] }, - "Web/Security/Securing_your_site": { - "modified": "2019-12-18T06:44:18.277Z", + "Glossary/DNS": { + "modified": "2019-07-09T20:05:30.988Z", "contributors": [ - "mfuji09" + "fuggy" ] }, - "Web/Security/Securing_your_site/Turning_off_form_autocompletion": { - "modified": "2019-12-18T06:44:21.121Z", + "Glossary/Doctype": { + "modified": "2019-10-20T09:56:23.239Z", "contributors": [ - "KolesnikovR" + "alexbs", + "gogumaUno" ] }, - "Web/Tutorials": { - "modified": "2019-10-02T16:11:49.043Z", + "Glossary/DOM": { + "modified": "2019-03-23T22:40:33.690Z", "contributors": [ - "Termaro", - "mmbl", - "ukrlex01", - "rhiter", - "anastasiya-solodkaya", - "GraceAredel", - "Tihoem", - "uleming", - "Steln", - "aleks_root" + "tronov", + "MuradAz" ] }, - "Web/WebAPI": { - "modified": "2019-03-25T10:51:55.253Z", + "Glossary/Domain_name": { + "modified": "2019-03-18T21:25:39.712Z", "contributors": [ - "boxa6", - "andreybakhishev", - "wbamberg", - "fscholz", - "Cyemka" + "bsergey" ] }, - "Web/Web_Components": { - "modified": "2020-09-03T10:16:00.956Z", + "Glossary/DOS_attack": { + "modified": "2019-08-14T18:10:26.015Z", "contributors": [ - "m.tven18", - "Loosefer", - "Akh-rman", - "shmel115", - "newbornfrontender", - "Peccansy", - "alinofka", - "curdwithraisins", - "dmitrykurmanov", - "Kalita-Roman" + "Newage3018" ] }, - "Web/Web_Components/HTML_Imports": { - "modified": "2019-03-18T21:40:10.986Z", + "Glossary/Dynamic_programming_language": { + "modified": "2019-03-23T22:22:41.086Z", "contributors": [ - "PaulineNemchak" + "pust0ta", + "thecodecreator" ] }, - "Web/Web_Components/Использование_пользовательских_элементов": { - "modified": "2020-01-05T09:04:07.966Z", + "Glossary/ECMA": { + "modified": "2019-03-23T22:26:58.025Z", "contributors": [ - "Anonymous", - "BurkovBA", - "curtdp", - "curdwithraisins" + "anastasiya-solodkaya", + "werreour" ] }, - "Web/XML": { - "modified": "2019-03-24T13:24:33.354Z" + "Glossary/ECMAScript": { + "modified": "2019-03-23T22:03:14.516Z", + "contributors": [ + "4erty" + ] }, - "Web/XML/XML_introduction": { - "modified": "2019-03-25T08:08:08.506Z", + "Glossary/Empty_element": { + "modified": "2020-06-17T07:35:47.736Z", "contributors": [ - "boxa6" + "fuggy", + "Sheppy", + "Aleksej" ] }, - "Web/XPath": { - "modified": "2019-01-16T14:55:34.456Z", + "Glossary/Encapsulation": { + "modified": "2019-10-15T17:04:32.904Z", "contributors": [ - "ExE-Boss", - "wbamberg", - "teoli", - "Android" + "duckDominatrix" ] }, - "Web/XPath/Funkcje": { - "modified": "2019-01-16T14:55:44.176Z", + "Glossary/Entity_header": { + "modified": "2020-03-13T19:29:42.150Z", "contributors": [ - "ExE-Boss", - "wbamberg", - "teoli", - "Android" + "fuggy", + "opereverzeva" ] }, - "Web/XPath/Funkcje/floor": { - "modified": "2019-01-16T14:55:28.337Z", + "Glossary/event": { + "modified": "2019-08-19T18:18:09.165Z", "contributors": [ - "ExE-Boss", - "Android" + "regeneratorl" ] }, - "Web/XSLT": { - "modified": "2019-03-23T23:58:47.674Z", + "Glossary/Expando": { + "modified": "2019-03-23T22:25:14.834Z", "contributors": [ - "niktariy", - "ExE-Boss", - "teoli", - "iliacmd" + "Chamie", + "Aksana-Tsishchanka" ] }, - "WebAssembly": { - "modified": "2020-10-15T22:05:07.172Z", + "Glossary/Falsy": { + "modified": "2020-02-29T14:01:11.239Z", "contributors": [ - "sharpist", - "deadblackclover", - "vkorniiko", - "warsan", - "thatlldo" + "almaceleste", + "Anna-Myzukina" ] }, - "WebAssembly/C_to_wasm": { - "modified": "2019-03-18T21:33:56.809Z", + "Glossary/First_contentful_paint": { + "modified": "2019-11-20T05:40:40.814Z", "contributors": [ - "thatlldo" + "Antosik" ] }, - "WebAssembly/Concepts": { - "modified": "2019-03-18T21:10:19.900Z", + "Glossary/First_CPU_idle": { + "modified": "2019-11-20T05:48:47.023Z", "contributors": [ - "vkorniiko" + "Antosik" ] }, - "WebAssembly/Exported_functions": { - "modified": "2020-03-04T19:06:28.386Z", + "Glossary/First_input_delay": { + "modified": "2020-11-29T12:51:47.015Z", "contributors": [ - "amuzalevskiy", - "thatlldo" + "BehemothOz", + "Antosik" ] }, - "WebAssembly/Loading_and_running": { - "modified": "2019-06-12T11:14:54.085Z", + "Glossary/First_interactive": { + "modified": "2019-11-20T05:51:30.233Z", "contributors": [ - "deadblackclover" + "Antosik" ] }, - "WebAssembly/Rust_to_wasm": { - "modified": "2020-06-11T14:27:31.970Z", + "Glossary/first_meaningful_paint": { + "modified": "2019-11-19T16:13:59.472Z", "contributors": [ - "DuckerMan", - "idkravitz", - "dlukanin", - "curdwithraisins", - "VLDSLW" + "Antosik" ] }, - "WebAssembly/Understanding_the_text_format": { - "modified": "2019-03-18T21:09:18.859Z", + "Glossary/First_paint": { + "modified": "2019-11-20T05:44:29.012Z", "contributors": [ - "vkorniiko" + "Antosik" ] }, - "WebAssembly/Using_the_JavaScript_API": { - "modified": "2019-06-12T07:08:20.267Z", + "Glossary/First-class_Function": { + "modified": "2019-03-23T22:26:14.132Z", "contributors": [ - "deadblackclover", - "vkorniiko" + "s1lver", + "B0dya", + "pk.prog" ] }, - "WebSockets": { - "modified": "2020-10-15T21:24:23.136Z", + "Glossary/Flex_Item": { + "modified": "2020-03-08T07:29:42.816Z", "contributors": [ - "YozhEzhi", - "Sajag", - "RusinovAnton", - "zarkone", - "uleming", - "LOVEBOYS" + "Radragon" ] }, - "WebSockets/Writing_WebSocket_client_applications": { - "modified": "2019-03-23T23:26:56.301Z", + "Glossary/Flexbox": { + "modified": "2019-03-18T21:33:55.150Z", "contributors": [ - "Anaind", - "DirectX", - "ilya_khaustov" + "b.zvyagintsev" ] }, - "Web_Development/Mobile": { - "modified": "2019-03-23T23:27:06.077Z", + "Glossary/Forbidden_header_name": { + "modified": "2020-11-27T14:27:47.971Z", "contributors": [ - "wbamberg" + "robert491", + "Alex90", + "crabovwik", + "JeanPaulLucien" ] }, - "Web_Development/Mobile/Responsive_design": { - "modified": "2019-03-23T23:27:07.759Z", + "Glossary/FPS": { + "modified": "2019-11-19T15:47:44.839Z", "contributors": [ - "ArsenBespalov" + "Antosik" ] }, - "XMLHttpRequest": { - "modified": "2019-03-24T00:11:01.706Z", + "Glossary/FTP": { + "modified": "2019-03-23T22:56:50.644Z", "contributors": [ - "denpatin", - "dehero", - "teoli", - "torbasow", - "TotalAMD", - "shergin", - "Bzbarsky", - "Atzkey", - "Apparition" + "Aleksej" ] }, - "XML_in_Mozilla": { - "modified": "2019-01-16T14:53:06.925Z", + "Glossary/Gecko": { + "modified": "2019-03-23T22:25:29.241Z", "contributors": [ - "nsvsergey" + "pk.prog" ] }, - "XPCNativeWrapper": { - "modified": "2019-03-24T00:02:27.014Z", + "Glossary/General_header": { + "modified": "2020-11-27T15:28:54.047Z", "contributors": [ - "fscholz", - "Dionys" + "robert491", + "Sergey.Terekhin" ] }, - "XPCOM": { - "modified": "2019-01-16T14:04:32.944Z", + "Glossary/Git": { + "modified": "2019-07-13T19:51:02.847Z", "contributors": [ - "teoli", - "caiiiycuk", - "bill.gates" + "fuggy", + "4erty" ] }, - "Веб-разработка": { - "modified": "2019-03-24T00:00:53.915Z", + "Glossary/Global_object": { + "modified": "2020-01-11T18:59:38.482Z", "contributors": [ - "Dionys" + "Kiryhas" ] }, - "Веб-стандарты": { - "modified": "2019-03-24T00:00:23.706Z", + "Glossary/Global_variable": { + "modified": "2019-06-28T05:46:29.060Z", "contributors": [ - "Marat", - "Protopopulus" + "OlehRula" ] }, - "Вопросы_без_ответов": { - "modified": "2019-03-23T23:58:57.825Z", + "Glossary/Grid_Column": { + "modified": "2019-09-25T10:04:35.112Z", "contributors": [ - "glukin" + "ekirpichyov", + "albinasakhabutdinova" ] }, - "Динамически_изменяемый_пользовательский_интерфейс_на_XUL": { - "modified": "2019-06-25T10:50:01.432Z", + "Glossary/Grid": { + "modified": "2019-09-25T00:37:08.781Z", "contributors": [ - "teoli", - "kup", - "Megapotz" + "Zver64", + "boxa6", + "Paul_Yuhnovich" ] }, - "Доступность": { - "modified": "2019-01-16T14:51:09.522Z", + "Glossary/Host": { + "modified": "2019-03-18T20:56:13.920Z", "contributors": [ - "Sheppy", - "vilky", - "Cobalt747" + "iamvector" ] }, - "Заголовок_ссылки": { - "modified": "2019-03-23T23:43:21.855Z", + "Glossary/HTML": { + "modified": "2020-10-30T06:06:49.972Z", "contributors": [ - "Sheppy", - "Doctor Baaz" + "ksam", + "boxa6", + "oleg3280", + "Ananasovich", + "Rod1on", + "NerRox", + "talgautb" ] }, - "Контроль_качества": { - "modified": "2019-01-16T14:03:27.006Z", + "Glossary/HTML5": { + "modified": "2019-03-23T11:50:58.551Z", "contributors": [ - "Hypante" + "JCodeg", + "oleg3280", + "VEDigit" ] }, - "Локализация": { - "modified": "2019-01-16T14:53:07.899Z", + "Glossary/HTTP_2": { + "modified": "2019-11-06T06:45:14.792Z", "contributors": [ - "Sheppy", - "sM1Le", - "glukin" + "duckDominatrix", + "e-h-h" ] }, - "Настройка_среды_разработки_расширений": { - "modified": "2019-03-24T00:02:36.376Z", + "Glossary/HTTP": { + "modified": "2019-11-07T07:41:21.870Z", "contributors": [ - "alikkille", - "teoli", - "fscholz", - "Yozh88" + "duckDominatrix", + "gadjetron", + "MuradAz" ] }, - "Об_объектной_модели_документа": { - "modified": "2019-06-25T10:49:44.957Z", + "Glossary/https": { + "modified": "2019-01-17T02:14:25.160Z", "contributors": [ - "d.zheleznov", - "cognitive-cake", - "runicelf", - "Megapotz" + "bazoooker", + "dzandut" ] }, - "Переход_с_Internet_Explorer_на_Mozilla": { - "modified": "2019-01-16T15:00:06.072Z", + "Glossary/IANA": { + "modified": "2019-03-18T21:36:56.523Z", "contributors": [ - "karasiov", - "Yura", - "Naterera" + "pavelkarinin" ] }, - "Сборка_и_установка": { - "modified": "2019-03-24T00:05:30.187Z", + "Glossary/ICANN": { + "modified": "2019-03-18T21:36:45.102Z", "contributors": [ - "Protopopulus" + "pavelkarinin" ] }, - "Словарь": { - "modified": "2020-10-07T11:13:45.197Z", + "Glossary/Idempotent": { + "modified": "2020-08-24T16:46:00.432Z", "contributors": [ - "peterbe", - "SphinxKnight", - "wbamberg", - "BychekRU", - "abldi", - "MuradAz", - "Aleksej", - "Sheppy", - "teoli" + "dev4lex", + "snizh", + "pk.prog" ] }, - "Словарь/404": { - "modified": "2019-03-23T22:13:48.343Z", + "Glossary/Identifier": { + "modified": "2019-03-23T22:20:02.500Z", "contributors": [ - "cotolany", - "nudaworks" + "mlilin", + "Kaliukhovich" ] }, - "Словарь/502": { - "modified": "2019-03-18T21:41:50.347Z", + "Glossary/IETF": { + "modified": "2020-10-30T04:28:05.922Z", "contributors": [ - "gadjetron" + "ksam" ] }, - "Словарь/AJAX": { - "modified": "2020-10-30T05:21:31.612Z", + "Glossary/IIFE": { + "modified": "2019-08-02T04:11:30.483Z", "contributors": [ - "ksam", - "duckDominatrix", - "T1mL3arn", - "ifantom", - "mpetrikov", - "gudkovdanila", - "veselik", - "nikokosh" + "alexbutav", + "zavsievich", + "Hiker-Hope", + "anastasiya-solodkaya", + "TheodoreChe", + "c01nd01r" + ] + }, + "Glossary": { + "modified": "2020-10-07T11:13:45.197Z", + "contributors": [ + "peterbe", + "SphinxKnight", + "wbamberg", + "BychekRU", + "abldi", + "MuradAz", + "Aleksej", + "Sheppy", + "teoli" ] }, - "Словарь/API": { - "modified": "2020-10-30T06:23:36.856Z", + "Glossary/IndexedDB": { + "modified": "2020-09-25T14:17:01.625Z", "contributors": [ - "ksam", - "DashPisareva", - "nikitaermishin", - "Severno" + "swimmwatch" ] }, - "Словарь/ARIA": { - "modified": "2019-04-09T10:19:16.954Z", + "Glossary/Information_architecture": { + "modified": "2019-07-02T10:04:49.702Z", "contributors": [ - "JCodeg", - "bsergey" + "wizardbil" ] }, - "Словарь/ARPA": { - "modified": "2019-03-18T21:25:48.447Z", + "Glossary/Internet": { + "modified": "2019-06-17T12:53:37.150Z", "contributors": [ + "kss555", "bsergey" ] }, - "Словарь/ASCII": { - "modified": "2019-03-18T21:40:49.201Z", + "Glossary/IP_Address": { + "modified": "2019-03-18T21:27:42.696Z", "contributors": [ - "ValeriiBoiko" + "Luboshenko" ] }, - "Словарь/ATAG": { - "modified": "2019-03-18T21:25:01.427Z", + "Glossary/ISO": { + "modified": "2020-10-30T04:04:18.482Z", "contributors": [ - "bsergey" + "ksam" ] }, - "Словарь/Abstraction": { - "modified": "2019-03-23T22:51:57.044Z", + "Glossary/Java": { + "modified": "2019-08-04T18:12:34.992Z", "contributors": [ - "alitskevich", - "davidof" + "angelhearted" ] }, - "Словарь/Adobe-Flash": { - "modified": "2019-03-23T22:16:01.660Z", + "Glossary/JavaScript": { + "modified": "2020-10-30T03:58:08.340Z", "contributors": [ - "ifantom" + "ksam", + "ekirpichyov", + "JCodeg", + "boxa6", + "aleshkanet", + "oleg3280", + "MuradAz", + "silentwasd", + "Sheppy", + "Vovchikb6" ] }, - "Словарь/Algorithm": { - "modified": "2019-11-23T15:11:34.488Z", + "Glossary/jpeg": { + "modified": "2019-03-18T21:38:25.986Z", "contributors": [ - "Igor-Sangin", - "boxa6", - "ifantom" + "kayablue" ] }, - "Словарь/Apple_Safari": { - "modified": "2019-03-23T22:09:03.834Z", + "Glossary/jQuery": { + "modified": "2020-11-17T03:47:58.520Z", "contributors": [ - "bsergey", - "pgooood" + "SphinxKnight", + "annamolodcova1909", + "Sparks" ] }, - "Словарь/Arpanet": { - "modified": "2019-03-18T21:25:16.563Z", + "Glossary/JSON": { + "modified": "2019-01-17T00:40:57.677Z", "contributors": [ - "bsergey" + "ezekeli" ] }, - "Словарь/Asynchronous": { - "modified": "2019-03-18T21:40:41.315Z", + "Glossary/loop": { + "modified": "2020-02-28T13:59:22.366Z", "contributors": [ - "jeniasaigak", - "ValeriiBoiko" + "almaceleste" ] }, - "Словарь/Bandwidth": { - "modified": "2019-03-23T22:06:46.461Z", + "Glossary/Main_Axis": { + "modified": "2020-05-21T13:03:11.807Z", "contributors": [ - "Morjodrom" + "HImichun" ] }, - "Словарь/BiDi": { - "modified": "2019-03-18T21:25:00.810Z", + "Glossary/MathML": { + "modified": "2019-03-18T21:19:08.526Z", "contributors": [ "bsergey" ] }, - "Словарь/BigInt": { - "modified": "2020-08-27T06:12:45.928Z", + "Glossary/Method": { + "modified": "2020-10-30T06:40:44.910Z", "contributors": [ - "DarkExodusXX", - "maksakova" + "ksam" ] }, - "Словарь/Blink": { - "modified": "2019-03-18T20:43:00.706Z", + "Glossary/Microsoft_Internet_Explorer": { + "modified": "2019-03-18T21:41:51.997Z", "contributors": [ - "Frisle" + "djigach" ] }, - "Словарь/Boolean": { - "modified": "2020-05-05T17:38:43.691Z", + "Glossary/MIME_type": { + "modified": "2020-04-21T12:17:26.839Z", "contributors": [ - "Thr0TT1e", - "ekirpichyov", - "Anna-Myzukina", - "perioad", - "Shankshel", - "boxa6", - "Sheppy", - "jaguardev" + "an5000", + "elvin666666", + "margaritashvetsov", + "ilia-valchenko" ] }, - "Словарь/Bootstrap": { - "modified": "2020-10-30T10:23:10.825Z", + "Glossary/Mixin": { + "modified": "2020-04-09T10:41:29.634Z", "contributors": [ - "ksam" + "Drrragonica" ] }, - "Словарь/Browser": { - "modified": "2019-03-23T22:40:32.512Z", + "Glossary/Node.js": { + "modified": "2019-03-23T22:28:12.455Z", "contributors": [ - "anastasiya-solodkaya", - "AlexandrKalaidzhi", - "tronov", - "MuradAz" + "tim-zh", + "nikokosh" ] }, - "Словарь/Browsing_context": { - "modified": "2019-03-23T22:17:49.487Z", + "Glossary/Null": { + "modified": "2020-03-23T08:30:22.000Z", "contributors": [ - "anastasiya-solodkaya" + "wentout", + "tim-zh" ] }, - "Словарь/Bézier_curve": { - "modified": "2019-08-19T18:48:29.930Z", + "Glossary/Number": { + "modified": "2019-03-23T22:59:57.277Z", "contributors": [ - "regeneratorl" + "Sheppy", + "jaguardev" ] }, - "Словарь/CDN": { - "modified": "2019-07-08T10:40:37.612Z", + "Glossary/Object": { + "modified": "2019-03-23T22:22:47.659Z", "contributors": [ - "LesikTheCat" + "bsergey", + "haacki47" ] }, - "Словарь/CMS": { - "modified": "2019-03-23T22:17:50.404Z", + "Glossary/OOP": { + "modified": "2019-03-18T21:40:42.132Z", "contributors": [ - "anastasiya-solodkaya" + "ValeriiBoiko" ] }, - "Словарь/CORS": { - "modified": "2019-03-18T21:01:16.414Z", + "Glossary/OpenGL": { + "modified": "2019-11-14T05:58:50.039Z", "contributors": [ - "ruslan.khaertdinov", - "anastasiya-solodkaya" + "ClaS1k" ] }, - "Словарь/CRLF": { - "modified": "2019-03-18T21:18:06.376Z", + "Glossary/Origin": { + "modified": "2019-03-23T22:19:26.751Z", "contributors": [ - "alexbs" + "Angelskih" ] }, - "Словарь/CSP": { - "modified": "2020-03-11T16:49:32.227Z", + "Glossary/PHP": { + "modified": "2019-04-14T04:44:20.115Z", "contributors": [ - "almaceleste" + "MDReal32", + "kirill001" ] }, - "Словарь/CSRF": { - "modified": "2019-03-23T22:17:52.593Z", + "Glossary/Pixel": { + "modified": "2019-03-25T09:54:05.591Z", "contributors": [ - "anastasiya-solodkaya" + "boxa6" ] }, - "Словарь/CSS": { - "modified": "2020-11-27T18:16:28.046Z", + "Glossary/Polymorphism": { + "modified": "2019-10-14T05:46:10.620Z", "contributors": [ - "robert491", - "boxa6", - "andreybakhishev", - "oleg3280", - "AlexandrKalaidzhi" + "duckDominatrix" ] }, - "Словарь/CSS_Selector": { - "modified": "2020-12-07T13:33:11.621Z", + "Glossary/Primitive": { + "modified": "2020-02-16T08:27:27.366Z", "contributors": [ - "kucherenkoag", - "DashPisareva" + "vitaminX", + "bsergey", + "aleks43" ] }, - "Словарь/CSS_preprocessor": { - "modified": "2019-03-26T02:52:52.000Z", + "Glossary/privileged_code": { + "modified": "2019-03-23T22:25:30.067Z", "contributors": [ - "boxa6", - "bazoooker" + "pk.prog" ] }, - "Словарь/Call_stack": { - "modified": "2019-03-26T03:35:33.245Z", + "Glossary/Progressive_web_apps": { + "modified": "2020-10-23T07:12:55.057Z", "contributors": [ - "boxa6", - "Dimas-X", - "Iroshh" + "ksam" ] }, - "Словарь/Canvas": { - "modified": "2019-03-18T21:33:34.116Z", + "Glossary/Promise": { + "modified": "2019-05-15T10:24:56.596Z", "contributors": [ - "Lana-Light" + "Mashka241" ] }, - "Словарь/Card_sorting": { - "modified": "2019-09-13T15:24:23.423Z", + "Glossary/property": { + "modified": "2019-03-23T22:15:35.268Z", "contributors": [ - "maXimusIsMyName", - "nova-k" + "mlilin" ] }, - "Словарь/Character": { - "modified": "2019-03-26T03:36:39.039Z", + "Glossary/Prototype-based_programming": { + "modified": "2019-01-16T23:59:58.315Z", "contributors": [ - "boxa6" + "kulakowka", + "SedovDP", + "pk.prog" ] }, - "Словарь/Chrome": { - "modified": "2019-01-16T20:45:50.537Z", + "Glossary/Pseudo-element": { + "modified": "2019-03-18T21:09:36.141Z", "contributors": [ - "Aleksej" + "Mashka241" ] }, - "Словарь/Class": { - "modified": "2019-03-23T22:50:33.763Z", + "Glossary/Pseudocode": { + "modified": "2020-11-25T09:22:15.778Z", "contributors": [ - "ezekeli", - "scanick" + "tetragidrohlorid", + "ConstantineZz" ] }, - "Словарь/Codec": { - "modified": "2019-06-20T09:27:20.089Z", + "Glossary/Reflow": { + "modified": "2020-06-05T09:05:27.984Z", "contributors": [ - "CS313" + "ArturBasak" ] }, - "Словарь/Compile": { - "modified": "2020-08-27T07:13:45.873Z", + "Glossary/Regular_expression": { + "modified": "2019-04-18T02:00:21.122Z", "contributors": [ - "DarkExodusXX" + "eXcuteD" ] }, - "Словарь/Computer_Programming": { - "modified": "2020-02-28T20:10:24.813Z", + "Glossary/Request_header": { + "modified": "2020-03-13T19:20:00.006Z", "contributors": [ - "almaceleste" + "fuggy", + "andrewtk" ] }, - "Словарь/Conditional": { - "modified": "2020-02-28T19:51:16.047Z", + "Glossary/Responsive_web_design": { + "modified": "2019-03-18T21:43:12.877Z", "contributors": [ - "almaceleste" + "KirilSlender" ] }, - "Словарь/Constructor": { - "modified": "2019-03-18T21:40:38.410Z", + "Glossary/Round_Trip_Time_(RTT)": { + "modified": "2019-11-20T06:08:45.669Z", "contributors": [ - "ValeriiBoiko" + "Antosik" ] }, - "Словарь/Cookie": { - "modified": "2019-03-23T22:19:39.272Z", + "Glossary/safe": { + "modified": "2020-08-24T16:48:10.493Z", "contributors": [ - "anastasiya-solodkaya", - "smkoyan" + "dev4lex", + "InfinityBuddha", + "serhii73", + "pk.prog" ] }, - "Словарь/Copyleft": { - "modified": "2019-08-22T15:17:45.253Z", + "Glossary/Scroll_container": { + "modified": "2020-04-24T15:33:30.579Z", "contributors": [ - "regeneratorl" + "hisbvdis" ] }, - "Словарь/Crawler": { - "modified": "2019-10-16T05:50:09.685Z", + "Glossary/SDP": { + "modified": "2019-07-26T09:45:49.928Z", "contributors": [ - "e-h-h" + "Geloosa" ] }, - "Словарь/DNS": { - "modified": "2019-07-09T20:05:30.988Z", + "Glossary/Self-Executing_Anonymous_Function": { + "modified": "2019-03-18T21:20:03.779Z", "contributors": [ - "fuggy" + "Hiker-Hope" ] }, - "Словарь/DOM": { - "modified": "2019-03-23T22:40:33.690Z", + "Glossary/Semantics": { + "modified": "2020-05-29T09:05:50.440Z", "contributors": [ - "tronov", - "MuradAz" + "mriabokliach", + "EternalCosmos" ] }, - "Словарь/DOS_attack": { - "modified": "2019-08-14T18:10:26.015Z", + "Glossary/SEO": { + "modified": "2019-03-23T22:03:24.051Z", "contributors": [ - "Newage3018" + "dictor93" ] }, - "Словарь/Doctype": { - "modified": "2019-10-20T09:56:23.239Z", + "Glossary/Server": { + "modified": "2020-08-16T17:59:50.094Z", "contributors": [ - "alexbs", - "gogumaUno" + "bogatayabaza" ] }, - "Словарь/Domain_name": { - "modified": "2019-03-18T21:25:39.712Z", + "Glossary/SGML": { + "modified": "2020-10-30T05:53:44.653Z", "contributors": [ - "bsergey" + "ksam" ] }, - "Словарь/Dynamic_programming_language": { - "modified": "2019-03-23T22:22:41.086Z", + "Glossary/Simple_response_header": { + "modified": "2020-04-06T22:27:29.080Z", "contributors": [ - "pust0ta", - "thecodecreator" + "sivackovan" ] }, - "Словарь/ECMA": { - "modified": "2019-03-23T22:26:58.025Z", + "Glossary/Sloppy_mode": { + "modified": "2019-01-17T00:16:18.150Z", "contributors": [ "anastasiya-solodkaya", - "werreour" + "pk.prog" ] }, - "Словарь/ECMAScript": { - "modified": "2019-03-23T22:03:14.516Z", + "Glossary/Specification": { + "modified": "2019-03-23T22:19:46.992Z", "contributors": [ - "4erty" + "gogumaUno", + "anastasiya-solodkaya", + "JeanPaulLucien" ] }, - "Словарь/Empty_element": { - "modified": "2020-06-17T07:35:47.736Z", + "Glossary/SVG": { + "modified": "2019-03-18T21:43:05.908Z", "contributors": [ - "fuggy", - "Sheppy", - "Aleksej" + "KirilSlender" ] }, - "Словарь/Encapsulation": { - "modified": "2019-10-15T17:04:32.904Z", + "Glossary/Symbol": { + "modified": "2019-03-23T22:08:34.792Z", "contributors": [ - "duckDominatrix" + "4opper", + "yanakey", + "GRIDARK", + "animhotep", + "neutral" ] }, - "Словарь/Entity_header": { - "modified": "2020-03-13T19:29:42.150Z", + "Glossary/TCP": { + "modified": "2020-03-13T16:54:36.615Z", "contributors": [ "fuggy", - "opereverzeva" + "michael_v92" ] }, - "Словарь/Expando": { - "modified": "2019-03-23T22:25:14.834Z", + "Glossary/time_to_first_byte": { + "modified": "2019-11-20T06:03:31.278Z", "contributors": [ - "Chamie", - "Aksana-Tsishchanka" + "Antosik" ] }, - "Словарь/FPS": { - "modified": "2019-11-19T15:47:44.839Z", + "Glossary/Time_to_interactive": { + "modified": "2019-11-20T05:58:04.636Z", "contributors": [ "Antosik" ] }, - "Словарь/FTP": { - "modified": "2019-03-23T22:56:50.644Z", + "Glossary/TLS": { + "modified": "2019-03-18T20:53:40.382Z", "contributors": [ - "Aleksej" + "vadjradanta" ] }, - "Словарь/Falsy": { - "modified": "2020-02-29T14:01:11.239Z", + "Glossary/Truthy": { + "modified": "2020-08-31T04:11:21.430Z", "contributors": [ + "Dvash", "almaceleste", "Anna-Myzukina" ] }, - "Словарь/First-class_Function": { - "modified": "2019-03-23T22:26:14.132Z", + "Glossary/Type_coercion": { + "modified": "2020-02-29T11:20:13.549Z", "contributors": [ - "s1lver", - "B0dya", - "pk.prog" + "almaceleste" ] }, - "Словарь/First_CPU_idle": { - "modified": "2019-11-20T05:48:47.023Z", + "Glossary/Type_Conversion": { + "modified": "2020-02-29T13:57:43.565Z", "contributors": [ - "Antosik" + "almaceleste" ] }, - "Словарь/First_contentful_paint": { - "modified": "2019-11-20T05:40:40.814Z", + "Glossary/Type": { + "modified": "2020-03-23T07:29:25.211Z", "contributors": [ - "Antosik" + "wentout", + "almaceleste" ] }, - "Словарь/First_input_delay": { - "modified": "2020-11-29T12:51:47.015Z", + "Glossary/UI": { + "modified": "2019-03-31T19:21:03.782Z", "contributors": [ - "BehemothOz", - "Antosik" + "niktariy", + "boxa6" ] }, - "Словарь/First_interactive": { - "modified": "2019-11-20T05:51:30.233Z", + "Glossary/undefined": { + "modified": "2019-03-23T22:59:57.929Z", "contributors": [ - "Antosik" + "Sheppy", + "jaguardev" ] }, - "Словарь/First_paint": { - "modified": "2019-11-20T05:44:29.012Z", + "Glossary/URL": { + "modified": "2019-03-23T22:09:11.858Z", "contributors": [ - "Antosik" + "djigach", + "gadjetron", + "s-mage" ] }, - "Словарь/Flex_Item": { - "modified": "2020-03-08T07:29:42.816Z", + "Glossary/User_agent": { + "modified": "2019-04-09T06:22:31.182Z", "contributors": [ - "Radragon" + "JCodeg", + "fidelman", + "while0pass" ] }, - "Словарь/Flexbox": { - "modified": "2019-03-18T21:33:55.150Z", + "Glossary/Variable": { + "modified": "2019-03-23T22:22:44.135Z", "contributors": [ - "b.zvyagintsev" + "thecodecreator" ] }, - "Словарь/Forbidden_header_name": { - "modified": "2020-11-27T14:27:47.971Z", + "Glossary/Vendor_Prefix": { + "modified": "2020-06-20T15:20:37.026Z", + "contributors": [ + "bushuevky" + ] + }, + "Glossary/Viewport": { + "modified": "2019-09-13T09:25:23.206Z", + "contributors": [ + "deex_iv", + "ozil07" + ] + }, + "Glossary/W3C": { + "modified": "2019-03-23T22:19:42.916Z", "contributors": [ - "robert491", - "Alex90", - "crabovwik", "JeanPaulLucien" ] }, - "Словарь/Gecko": { - "modified": "2019-03-23T22:25:29.241Z", + "Glossary/WAI": { + "modified": "2019-03-18T20:56:13.772Z", "contributors": [ - "pk.prog" + "iamvector" ] }, - "Словарь/General_header": { - "modified": "2020-11-27T15:28:54.047Z", + "Glossary/WebKit": { + "modified": "2020-10-10T22:56:31.647Z", "contributors": [ - "robert491", - "Sergey.Terekhin" + "tz4678", + "Madihander" ] }, - "Словарь/Git": { - "modified": "2019-07-13T19:51:02.847Z", + "Glossary/WebSockets": { + "modified": "2020-03-13T16:54:50.064Z", "contributors": [ "fuggy", - "4erty" + "Sheppy", + "Pavel69" ] }, - "Словарь/Global_object": { - "modified": "2020-01-11T18:59:38.482Z", + "Glossary/WHATWG": { + "modified": "2019-07-07T09:42:47.815Z", "contributors": [ - "Kiryhas" + "fuggy" ] }, - "Словарь/Grid": { - "modified": "2019-09-25T00:37:08.781Z", + "Glossary/World_Wide_Web": { + "modified": "2019-04-10T12:11:00.638Z", "contributors": [ - "Zver64", - "boxa6", - "Paul_Yuhnovich" + "JCodeg", + "boxa6" ] }, - "Словарь/Grid_Column": { - "modified": "2019-09-25T10:04:35.112Z", + "Glossary/Wrapper": { + "modified": "2019-03-23T22:19:46.418Z", "contributors": [ - "ekirpichyov", - "albinasakhabutdinova" + "smkoyan" ] }, - "Словарь/HTML": { - "modified": "2020-10-30T06:06:49.972Z", + "Glossary/XHR_(XMLHttpRequest)": { + "modified": "2020-10-27T09:22:04.704Z", "contributors": [ - "ksam", - "boxa6", - "oleg3280", - "Ananasovich", - "Rod1on", - "NerRox", - "talgautb" + "duckDominatrix" ] }, - "Словарь/HTML5": { - "modified": "2019-03-23T11:50:58.551Z", + "Glossary/XHTML": { + "modified": "2019-03-24T00:04:41.651Z", "contributors": [ - "JCodeg", - "oleg3280", - "VEDigit" + "Sheppy", + "teoli", + "shaman" ] }, - "Словарь/HTTP": { - "modified": "2019-11-07T07:41:21.870Z", + "Glossary/XML": { + "modified": "2019-03-26T03:12:53.364Z", "contributors": [ - "duckDominatrix", - "gadjetron", - "MuradAz" + "boxa6", + "Houstton" ] }, - "Словарь/HTTP_2": { - "modified": "2019-11-06T06:45:14.792Z", + "Glossary/Argument": { + "modified": "2019-05-03T12:07:33.735Z", "contributors": [ - "duckDominatrix", - "e-h-h" + "Lana-Light" ] }, - "Словарь/Host": { - "modified": "2019-03-18T20:56:13.920Z", + "Glossary/Attribute": { + "modified": "2019-01-16T23:17:06.806Z", "contributors": [ - "iamvector" + "anastasiya-solodkaya", + "nikokosh" ] }, - "Словарь/IANA": { - "modified": "2019-03-18T21:36:56.523Z", + "Glossary/buffer": { + "modified": "2019-03-18T21:38:54.270Z", "contributors": [ - "pavelkarinin" + "PavelVolkovRussia", + "ivan-krot" ] }, - "Словарь/ICANN": { - "modified": "2019-03-18T21:36:45.102Z", + "Glossary/Statement": { + "modified": "2019-03-23T22:35:20.625Z", "contributors": [ - "pavelkarinin" + "DashPisareva", + "tronov", + "BychekRU" ] }, - "Словарь/IETF": { - "modified": "2020-10-30T04:28:05.922Z", + "Glossary/High-level_programming_language": { + "modified": "2020-01-06T03:30:38.101Z", "contributors": [ - "ksam" + "LesikTheCat" ] }, - "Словарь/IIFE": { - "modified": "2019-08-02T04:11:30.483Z", + "Glossary/Hypertext": { + "modified": "2019-03-18T21:41:54.496Z", "contributors": [ - "alexbutav", - "zavsievich", - "Hiker-Hope", - "anastasiya-solodkaya", - "TheodoreChe", - "c01nd01r" + "gadjetron" ] }, - "Словарь/IP_Address": { - "modified": "2019-03-18T21:27:42.696Z", + "Glossary/Decryption": { + "modified": "2019-03-18T20:41:22.238Z", "contributors": [ - "Luboshenko" + "Frisle" ] }, - "Словарь/ISO": { - "modified": "2020-10-30T04:04:18.482Z", + "Glossary/Domain": { + "modified": "2019-03-23T22:20:15.133Z", "contributors": [ - "ksam" + "richandhandsomeman" ] }, - "Словарь/Idempotent": { - "modified": "2020-08-24T16:46:00.432Z", + "Glossary/Accessibility": { + "modified": "2019-03-23T22:16:03.534Z", "contributors": [ - "dev4lex", - "snizh", - "pk.prog" + "iamvector", + "ifantom" ] }, - "Словарь/Identifier": { - "modified": "2019-03-23T22:20:02.500Z", + "Glossary/Head": { + "modified": "2019-03-18T21:25:04.199Z", "contributors": [ - "mlilin", - "Kaliukhovich" + "AlexeyIoffe" ] }, - "Словарь/IndexedDB": { - "modified": "2020-09-25T14:17:01.625Z", + "Glossary/Forbidden_response_header_name": { + "modified": "2019-03-18T21:30:41.483Z", "contributors": [ - "swimmwatch" + "crabovwik" ] }, - "Словарь/Information_architecture": { - "modified": "2019-07-02T10:04:49.702Z", + "Glossary/Developer_Tools": { + "modified": "2019-03-18T21:46:30.400Z", "contributors": [ - "wizardbil" + "bazoooker" ] }, - "Словарь/Internet": { - "modified": "2019-06-17T12:53:37.150Z", + "Glossary/ISP": { + "modified": "2019-03-18T21:16:47.489Z", "contributors": [ - "kss555", - "bsergey" + "skapesec" ] }, - "Словарь/JSON": { - "modified": "2019-01-17T00:40:57.677Z", + "Glossary/Constant": { + "modified": "2019-03-23T22:04:38.615Z", "contributors": [ - "ezekeli" + "JorJeG" ] }, - "Словарь/Java": { - "modified": "2019-08-04T18:12:34.992Z", + "Glossary/CIA": { + "modified": "2019-03-23T22:06:38.806Z", "contributors": [ - "angelhearted" + "Morjodrom" ] }, - "Словарь/JavaScript": { - "modified": "2020-10-30T03:58:08.340Z", + "Glossary/Cache": { + "modified": "2019-05-20T15:27:57.334Z", "contributors": [ - "ksam", - "ekirpichyov", - "JCodeg", - "boxa6", - "aleshkanet", - "oleg3280", - "MuradAz", - "silentwasd", - "Sheppy", - "Vovchikb6" + "vanjacksing" ] }, - "Словарь/MIME_type": { - "modified": "2020-04-21T12:17:26.839Z", + "Glossary/array": { + "modified": "2020-01-06T03:28:26.834Z", "contributors": [ - "an5000", - "elvin666666", - "margaritashvetsov", - "ilia-valchenko" + "LesikTheCat", + "sashakrauzer", + "Cyganov" ] }, - "Словарь/Main_Axis": { - "modified": "2020-05-21T13:03:11.807Z", + "Glossary/Metadata": { + "modified": "2019-03-18T21:23:05.612Z", "contributors": [ - "HImichun" + "SoMuchEffort" ] }, - "Словарь/MathML": { - "modified": "2019-03-18T21:19:08.526Z", + "Glossary/Hoisting": { + "modified": "2019-03-23T22:28:46.641Z", "contributors": [ - "bsergey" + "ArtyomResh", + "boldyrev-d", + "anastasiya-solodkaya", + "shkarlet", + "AlexKhram" ] }, - "Словарь/Method": { - "modified": "2020-10-30T06:40:44.910Z", + "Glossary/Port": { + "modified": "2019-03-23T22:26:53.058Z", "contributors": [ - "ksam" + "tim-zh" ] }, - "Словарь/Microsoft_Internet_Explorer": { - "modified": "2019-03-18T21:41:51.997Z", + "Glossary/Whitespace": { + "modified": "2019-04-29T04:51:03.174Z", "contributors": [ - "djigach" + "sergey.bannikov" ] }, - "Словарь/Mixin": { - "modified": "2020-04-09T10:41:29.634Z", + "Glossary/Proxy_server": { + "modified": "2020-10-29T15:29:38.405Z", "contributors": [ - "Drrragonica" + "Rams3ska" ] }, - "Словарь/Node.js": { - "modified": "2019-03-23T22:28:12.455Z", + "Glossary/Simple_header": { + "modified": "2019-03-18T21:32:57.580Z", "contributors": [ - "tim-zh", - "nikokosh" + "Skinny-Hunter" ] }, - "Словарь/Null": { - "modified": "2020-03-23T08:30:22.000Z", + "Glossary/Protocol": { + "modified": "2019-03-18T21:36:48.161Z", "contributors": [ - "wentout", - "tim-zh" + "reksar" ] }, - "Словарь/Number": { - "modified": "2019-03-23T22:59:57.277Z", + "Glossary/Prototype": { + "modified": "2019-03-23T22:22:22.879Z", "contributors": [ - "Sheppy", - "jaguardev" + "cezsored" ] }, - "Словарь/OOP": { - "modified": "2019-03-18T21:40:42.132Z", + "Glossary/Certified": { + "modified": "2019-03-18T20:41:22.573Z", "contributors": [ - "ValeriiBoiko" + "Frisle" ] }, - "Словарь/Object": { - "modified": "2019-03-23T22:22:47.659Z", + "Glossary/Synchronous": { + "modified": "2020-09-18T11:00:03.984Z", "contributors": [ - "bsergey", - "haacki47" + "victortemnov", + "jeniasaigak" ] }, - "Словарь/OpenGL": { - "modified": "2019-11-14T05:58:50.039Z", + "Glossary/Static_typing": { + "modified": "2019-08-04T18:24:12.862Z", "contributors": [ - "ClaS1k" + "angelhearted" ] }, - "Словарь/PHP": { - "modified": "2019-04-14T04:44:20.115Z", + "Glossary/String": { + "modified": "2019-03-23T22:43:22.623Z", "contributors": [ - "MDReal32", - "kirill001" + "anastasiya-solodkaya", + "arturparkhisenko" ] }, - "Словарь/Pixel": { - "modified": "2019-03-25T09:54:05.591Z", + "Glossary/Entity": { + "modified": "2019-04-29T04:00:32.874Z", "contributors": [ - "boxa6" + "sergey.bannikov" ] }, - "Словарь/Polymorphism": { - "modified": "2019-10-14T05:46:10.620Z", + "Glossary/Tag": { + "modified": "2019-03-23T22:18:08.637Z", "contributors": [ - "duckDominatrix" + "skapesec", + "AKonia" ] }, - "Словарь/Primitive": { - "modified": "2020-02-16T08:27:27.366Z", + "Glossary/Callback_function": { + "modified": "2019-03-18T21:32:02.443Z", "contributors": [ - "vitaminX", - "bsergey", - "aleks43" + "jeniasaigak" ] }, - "Словарь/Progressive_web_apps": { - "modified": "2020-10-23T07:12:55.057Z", + "Glossary/Function": { + "modified": "2019-03-23T22:38:18.825Z", "contributors": [ - "ksam" + "MuradAz" ] }, - "Словарь/Promise": { - "modified": "2019-05-15T10:24:56.596Z", + "Glossary/hash": { + "modified": "2019-03-23T22:13:59.337Z", "contributors": [ - "Mashka241" + "RealRedFox" ] }, - "Словарь/Prototype-based_programming": { - "modified": "2019-01-16T23:59:58.315Z", + "Glossary/Element": { + "modified": "2019-03-18T21:38:41.974Z", "contributors": [ - "kulakowka", - "SedovDP", - "pk.prog" + "skapesec", + "kayablue" ] }, - "Словарь/Pseudo-element": { - "modified": "2019-03-18T21:09:36.141Z", + "orphaned/Создание_расширения_для_Firefox_с_использованием_Mozilla_Build_System": { + "modified": "2019-01-16T16:11:17.475Z", "contributors": [ - "Mashka241" + "Kwinto", + "S e r g e y r" ] }, - "Словарь/Pseudocode": { - "modified": "2020-11-25T09:22:15.778Z", + "orphaned/Создание_расширения": { + "modified": "2019-03-24T00:02:37.950Z", "contributors": [ - "tetragidrohlorid", - "ConstantineZz" + "kaifonaft", + "teoli", + "kup", + "fscholz", + "Tmax", + "Yozh88" ] }, - "Словарь/Reflow": { - "modified": "2020-06-05T09:05:27.984Z", + "orphaned/Создание_расширения/Настройка_Firefox_для_разработки_расширений": { + "modified": "2019-03-23T23:59:36.564Z", "contributors": [ - "ArturBasak" + "Protopopulus" ] }, - "Словарь/Regular_expression": { - "modified": "2019-04-18T02:00:21.122Z", + "orphaned/Создание_расширения/Настройка_Firefox_для_разработки": { + "modified": "2019-03-23T23:59:35.072Z", "contributors": [ - "eXcuteD" + "Protopopulus" ] }, - "Словарь/Request_header": { - "modified": "2020-03-13T19:20:00.006Z", + "orphaned/Справочная_информация_по_Gecko_DOM": { + "modified": "2019-01-16T16:08:57.530Z", "contributors": [ - "fuggy", - "andrewtk" + "Megapotz" ] }, - "Словарь/Responsive_web_design": { - "modified": "2019-03-18T21:43:12.877Z", + "orphaned/Справочная_информация_по_Gecko_DOM/Введение": { + "modified": "2019-03-24T00:04:55.948Z", "contributors": [ - "KirilSlender" + "ivaskonyan", + "arturparkhisenko", + "T-V-N", + "Paul_Yuhnovich", + "arunpandianp", + "ethertank", + "shaman" ] }, - "Словарь/Round_Trip_Time_(RTT)": { - "modified": "2019-11-20T06:08:45.669Z", + "orphaned/Справочная_информация_по_Gecko_DOM/Предисловие": { + "modified": "2019-03-23T23:44:43.352Z", "contributors": [ - "Antosik" + "marat-curious", + "Megapotz" ] }, - "Словарь/SDP": { - "modified": "2019-07-26T09:45:49.928Z", + "orphaned/Справочная_информация_по_Gecko_DOM/Примеры": { + "modified": "2019-01-16T14:46:48.913Z", "contributors": [ - "Geloosa" + "Sheppy", + "abba7" ] }, - "Словарь/SEO": { - "modified": "2019-03-23T22:03:24.051Z", + "orphaned/Темы": { + "modified": "2019-01-16T14:53:24.105Z", "contributors": [ - "dictor93" + "teoli", + "glukin" ] }, - "Словарь/SGML": { - "modified": "2020-10-30T05:53:44.653Z", + "conflicting/Glossary/Chrome": { + "modified": "2019-03-23T23:17:01.096Z", "contributors": [ - "ksam" + "Norville", + "LunaticRL" ] }, - "Словарь/SVG": { - "modified": "2019-03-18T21:43:05.908Z", + "conflicting/Web/API/Document_Object_Model": { + "modified": "2019-06-25T10:49:54.010Z", "contributors": [ - "KirilSlender" + "ethertank", + "Megapotz" ] }, - "Словарь/Scroll_container": { - "modified": "2020-04-24T15:33:30.579Z", + "Mozilla/Developer_guide/Introduction": { + "modified": "2019-03-23T23:38:23.548Z", "contributors": [ - "hisbvdis" + "Nick_Pershin", + "greybax" ] }, - "Словарь/Self-Executing_Anonymous_Function": { - "modified": "2019-03-18T21:20:03.779Z", + "conflicting/Learn/CSS/Building_blocks/Selectors": { + "modified": "2020-07-16T22:25:39.788Z", "contributors": [ - "Hiker-Hope" + "sviter" ] }, - "Словарь/Semantics": { - "modified": "2020-05-29T09:05:50.440Z", + "conflicting/MDN/Tools": { + "modified": "2019-01-16T19:44:47.259Z", "contributors": [ - "mriabokliach", - "EternalCosmos" + "wbamberg", + "Mingun" ] }, - "Словарь/Server": { - "modified": "2020-08-16T17:59:50.094Z", + "conflicting/Tools/Performance": { + "modified": "2020-07-16T22:35:29.176Z", "contributors": [ - "bogatayabaza" + "wbamberg", + "CamelFoe" ] }, - "Словарь/Simple_response_header": { - "modified": "2020-04-06T22:27:29.080Z", + "conflicting/Mozilla/Firefox/Releases": { + "modified": "2020-07-16T22:35:57.039Z", "contributors": [ - "sivackovan" + "wbamberg", + "dimon4ezzz", + "Aleksej", + "uleming" ] }, - "Словарь/Sloppy_mode": { - "modified": "2019-01-17T00:16:18.150Z", + "conflicting/Web/Guide/Mobile": { + "modified": "2019-03-23T23:27:06.077Z", "contributors": [ - "anastasiya-solodkaya", - "pk.prog" + "wbamberg" ] }, - "Словарь/Specification": { - "modified": "2019-03-23T22:19:46.992Z", + "conflicting/Web/Progressive_web_apps": { + "modified": "2019-03-23T23:27:07.759Z", "contributors": [ - "gogumaUno", - "anastasiya-solodkaya", - "JeanPaulLucien" + "ArsenBespalov" ] }, - "Словарь/Symbol": { - "modified": "2019-03-23T22:08:34.792Z", + "conflicting/Web/Accessibility": { + "modified": "2019-03-23T22:57:21.133Z", "contributors": [ - "4opper", - "yanakey", - "GRIDARK", - "animhotep", - "neutral" + "Aleksej" ] }, - "Словарь/TCP": { - "modified": "2020-03-13T16:54:36.615Z", + "Web/API/DocumentOrShadowRoot/activeElement": { + "modified": "2019-03-23T23:07:52.737Z", "contributors": [ - "fuggy", - "michael_v92" + "wbamberg", + "fscholz", + "mrDinckleman", + "my8bit" ] }, - "Словарь/TLS": { - "modified": "2019-03-18T20:53:40.382Z", + "Web/API/DocumentOrShadowRoot/getSelection": { + "modified": "2019-03-23T22:34:05.751Z", "contributors": [ - "vadjradanta" + "YakovL" ] }, - "Словарь/Time_to_interactive": { - "modified": "2019-11-20T05:58:04.636Z", + "Web/API/HTMLElement/accessKey": { + "modified": "2019-03-23T22:51:14.902Z", "contributors": [ - "Antosik" + "In4in" ] }, - "Словарь/Truthy": { - "modified": "2020-08-31T04:11:21.430Z", + "conflicting/Web/API/EventTarget/addEventListener": { + "modified": "2020-12-08T04:43:39.858Z", "contributors": [ - "Dvash", - "almaceleste", - "Anna-Myzukina" + "bershanskiy", + "akrom123", + "paulvoloschuk" ] }, - "Словарь/Type": { - "modified": "2020-03-23T07:29:25.211Z", + "conflicting/Web/API/EventTarget/removeEventListener": { + "modified": "2019-03-23T22:07:41.302Z", "contributors": [ - "wentout", - "almaceleste" + "paulvoloschuk" ] }, - "Словарь/Type_Conversion": { - "modified": "2020-02-29T13:57:43.565Z", + "conflicting/Web/API/Geolocation": { + "modified": "2019-03-23T22:43:32.725Z", "contributors": [ - "almaceleste" + "AlexAlex" ] }, - "Словарь/Type_coercion": { - "modified": "2020-02-29T11:20:13.549Z", + "conflicting/Web/API/Node": { + "modified": "2019-03-23T22:53:30.789Z", "contributors": [ - "almaceleste" + "AlexAlex" ] }, - "Словарь/UI": { - "modified": "2019-03-31T19:21:03.782Z", + "conflicting/Web/API/Node_378aed5ed6869e50853edbc988cf9556": { + "modified": "2019-03-23T22:53:31.496Z", "contributors": [ - "niktariy", - "boxa6" + "AlexAlex" ] }, - "Словарь/URL": { - "modified": "2019-03-23T22:09:11.858Z", + "conflicting/Web/API/Push_API": { + "modified": "2019-03-23T22:33:26.535Z", "contributors": [ - "djigach", - "gadjetron", - "s-mage" + "vasyan", + "zvadym", + "curdwithraisins", + "amutylo", + "alfaslash" ] }, - "Словарь/User_agent": { - "modified": "2019-04-09T06:22:31.182Z", + "conflicting/Web/API/Crypto/getRandomValues": { + "modified": "2019-07-04T02:33:27.227Z", "contributors": [ - "JCodeg", - "fidelman", - "while0pass" + "freezer278", + "Jeremie" ] }, - "Словарь/Variable": { - "modified": "2019-03-23T22:22:44.135Z", + "conflicting/Web/API/Element": { + "modified": "2020-10-15T22:17:53.998Z", "contributors": [ - "thecodecreator" + "opereverzeva" ] }, - "Словарь/Vendor_Prefix": { - "modified": "2020-06-20T15:20:37.026Z", + "conflicting/Web/API/Window/localStorage": { + "modified": "2019-03-23T22:05:00.067Z", "contributors": [ - "bushuevky" + "ZVanoZ" ] }, - "Словарь/Viewport": { - "modified": "2019-09-13T09:25:23.206Z", + "conflicting/Web/API/SVGAElement/target": { + "modified": "2019-03-18T21:45:46.517Z", "contributors": [ - "deex_iv", - "ozil07" + "Liubava77" ] }, - "Словарь/W3C": { - "modified": "2019-03-23T22:19:42.916Z", + "conflicting/Web/API/WebRTC_API/Signaling_and_video_calling": { + "modified": "2020-11-01T04:44:10.388Z", "contributors": [ - "JeanPaulLucien" + "mechtool", + "kostya-skr", + "coderxone" ] }, - "Словарь/WAI": { - "modified": "2019-03-18T20:56:13.772Z", + "conflicting/Web/API/WindowOrWorkerGlobalScope": { + "modified": "2019-03-23T22:50:51.451Z", "contributors": [ - "iamvector" + "teoli" ] }, - "Словарь/WHATWG": { - "modified": "2019-07-07T09:42:47.815Z", + "conflicting/Web/API/WindowOrWorkerGlobalScope_e2691f7ad05781a30c5fc5bb3b3f633a": { + "modified": "2019-03-23T23:01:38.088Z", "contributors": [ - "fuggy" + "fscholz" ] }, - "Словарь/WebKit": { - "modified": "2020-10-10T22:56:31.647Z", + "conflicting/Web/CSS/:is": { + "modified": "2019-03-23T22:39:12.816Z", "contributors": [ - "tz4678", - "Madihander" + "BychekRU", + "JhonyLe" ] }, - "Словарь/WebSockets": { - "modified": "2020-03-13T16:54:50.064Z", + "conflicting/Web/CSS/@viewport": { + "modified": "2019-03-23T22:21:08.056Z", "contributors": [ - "fuggy", - "Sheppy", - "Pavel69" + "Hydrock" ] }, - "Словарь/World_Wide_Web": { - "modified": "2019-04-10T12:11:00.638Z", + "Web/CSS/CSS_Backgrounds_and_Borders": { + "modified": "2019-03-23T22:40:44.971Z", "contributors": [ - "JCodeg", - "boxa6" + "teoli" ] }, - "Словарь/Wrapper": { - "modified": "2019-03-23T22:19:46.418Z", + "Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds": { + "modified": "2019-03-23T22:13:04.810Z", "contributors": [ - "smkoyan" + "J-N-Z" ] }, - "Словарь/XHR_(XMLHttpRequest)": { - "modified": "2020-10-27T09:22:04.704Z", + "Web/CSS/CSS_Color": { + "modified": "2019-03-23T22:34:30.410Z", "contributors": [ - "duckDominatrix" + "BychekRU", + "Krenair" ] }, - "Словарь/XHTML": { - "modified": "2019-03-24T00:04:41.651Z", + "conflicting/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox": { + "modified": "2019-09-25T09:43:14.453Z", "contributors": [ - "Sheppy", - "teoli", - "shaman" + "RomanBush", + "billlater", + "KadirTopal", + "DmitriyPoltavskiy", + "MrDaedra", + "antenko", + "dixiony", + "SKaznadei", + "iamale" ] }, - "Словарь/XML": { - "modified": "2019-03-26T03:12:53.364Z", + "conflicting/Web/CSS/CSS_Basic_User_Interface": { + "modified": "2019-03-23T22:05:55.155Z", "contributors": [ - "boxa6", - "Houstton" + "SphinxKnight", + "ExE-Boss", + "mfluehr" ] }, - "Словарь/application_context": { - "modified": "2019-03-18T21:33:46.218Z", + "conflicting/Web/CSS/url()": { + "modified": "2020-04-29T08:14:17.353Z", "contributors": [ - "bsergey", - "Lana-Light" + "podocenov" ] }, - "Словарь/baseline": { - "modified": "2020-08-27T06:37:10.071Z", + "conflicting/Web/CSS/gap": { + "modified": "2020-10-15T22:05:04.554Z", "contributors": [ - "DarkExodusXX" + "oxmap", + "slychai85" ] }, - "Словарь/cacheable": { - "modified": "2019-03-23T22:25:05.632Z", + "conflicting/Web/CSS/url()_168028c4e5edd9e19c061adb4b604d4f": { + "modified": "2020-10-15T22:16:56.689Z", "contributors": [ - "vykulakov", - "pk.prog" + "opereverzeva", + "AliaksandrZahorski" ] }, - "Словарь/character_encoding": { - "modified": "2019-11-23T10:06:58.821Z", + "conflicting/Web/API/HTMLMediaElement/abort_event": { + "modified": "2019-04-30T14:17:57.211Z", "contributors": [ - "Igor-Sangin" + "wbamberg", + "Corba", + "fscholz", + "e-omo" ] }, - "Словарь/data_structure": { - "modified": "2019-03-23T22:40:22.188Z", + "conflicting/Web/API/Document_Object_Model_dd00a71ceceac547ab464128db6bd8ef": { + "modified": "2019-09-02T16:41:36.691Z", "contributors": [ - "alitskevich" + "NiroWoolf", + "Jeremie" ] }, - "Словарь/event": { - "modified": "2019-08-19T18:18:09.165Z", + "conflicting/Web/API/Web_Storage_API": { + "modified": "2019-03-23T23:13:28.239Z", "contributors": [ - "regeneratorl" + "Steln", + "akhabibullina" ] }, - "Словарь/first_meaningful_paint": { - "modified": "2019-11-19T16:13:59.472Z", + "conflicting/Web/API/WebRTC_API": { + "modified": "2019-03-23T22:34:55.398Z", "contributors": [ - "Antosik" + "MoksS", + "franzy1709" ] }, - "Словарь/global_variable": { - "modified": "2019-06-28T05:46:29.060Z", + "conflicting/Learn/CSS/Building_blocks/Cascade_and_inheritance": { + "modified": "2019-03-23T22:51:54.874Z", "contributors": [ - "OlehRula" + "Tankerxyz", + "BychekRU", + "F-302", + "sofiaglynyana" ] }, - "Словарь/https": { - "modified": "2019-01-17T02:14:25.160Z", + "conflicting/Learn/CSS/Building_blocks/Values_and_units": { + "modified": "2019-03-23T22:31:38.617Z", "contributors": [ - "bazoooker", - "dzandut" + "TuchaNK" ] }, - "Словарь/jQuery": { - "modified": "2020-11-17T03:47:58.520Z", + "conflicting/Learn/CSS/First_steps/How_CSS_works": { + "modified": "2019-03-18T21:17:13.180Z", "contributors": [ - "SphinxKnight", - "annamolodcova1909", - "Sparks" + "BychekRU", + "F-302" ] }, - "Словарь/jpeg": { - "modified": "2019-03-18T21:38:25.986Z", + "conflicting/Learn/CSS/First_steps": { + "modified": "2019-03-23T23:09:39.395Z", "contributors": [ - "kayablue" + "BychekRU", + "Aleksej", + "frontgirl", + "wjinca" ] }, - "Словарь/loop": { - "modified": "2020-02-28T13:59:22.366Z", + "conflicting/Learn/CSS/First_steps/How_CSS_is_structured": { + "modified": "2019-03-23T22:49:44.377Z", "contributors": [ - "almaceleste" + "Svart", + "F-302", + "Crystal" ] }, - "Словарь/origin": { - "modified": "2019-03-23T22:19:26.751Z", + "conflicting/Learn/CSS/Building_blocks/Selectors_918fb6c37a4d06789bc062c48d591992": { + "modified": "2020-02-28T21:44:59.981Z", "contributors": [ - "Angelskih" + "nkaskov", + "SergeyNikolaev70", + "1cprog", + "Tankerxyz", + "BigBond", + "mztrp", + "tnt4brain" ] }, - "Словарь/privileged_code": { - "modified": "2019-03-23T22:25:30.067Z", + "conflicting/Learn/CSS/Styling_text/Fundamentals": { + "modified": "2019-03-23T22:31:35.056Z", "contributors": [ - "pk.prog" + "DKas", + "TuchaNK" ] }, - "Словарь/property": { - "modified": "2019-03-23T22:15:35.268Z", + "conflicting/Learn/CSS/First_steps/How_CSS_works_b66915031fb62b5fee1201086144e209": { + "modified": "2019-10-10T16:46:49.900Z", "contributors": [ - "mlilin" + "gleb-svitelskiy", + "BychekRU", + "Aleksej", + "frontgirl" ] }, - "Словарь/safe": { - "modified": "2020-08-24T16:48:10.493Z", + "conflicting/Learn/CSS/First_steps/How_CSS_works_64ba4331a7a5f4319c6e06b06ccdd521": { + "modified": "2019-03-23T22:33:27.543Z", "contributors": [ - "dev4lex", - "InfinityBuddha", - "serhii73", - "pk.prog" + "BychekRU", + "F-302" ] }, - "Словарь/time_to_first_byte": { - "modified": "2019-11-20T06:03:31.278Z", + "conflicting/Learn/CSS/Building_blocks/Styling_tables": { + "modified": "2019-03-23T23:09:44.945Z", "contributors": [ - "Antosik" + "BychekRU", + "ldone" ] }, - "Словарь/undefined": { - "modified": "2019-03-23T22:59:57.929Z", + "conflicting/Learn/CSS": { + "modified": "2019-09-11T09:43:50.277Z", "contributors": [ - "Sheppy", - "jaguardev" + "SphinxKnight", + "Aleksej", + "vtambourine", + "KrishnaKevalam", + "jswisher" ] }, - "Словарь/Аргумент": { - "modified": "2019-05-03T12:07:33.735Z", + "conflicting/Web/Media/Formats": { + "modified": "2019-03-23T22:40:43.218Z", "contributors": [ - "Lana-Light" + "SedovDP", + "a-goodwin", + "PPerminov", + "MuradAz" ] }, - "Словарь/Атрибут": { - "modified": "2019-01-16T23:17:06.806Z", + "conflicting/Web/HTTP/CORS": { + "modified": "2019-07-16T07:11:05.759Z", "contributors": [ - "anastasiya-solodkaya", - "nikokosh" + "curdwithraisins" ] }, - "Словарь/Буфер": { - "modified": "2019-03-18T21:38:54.270Z", + "conflicting/Web/JavaScript/Guide/Introduction": { + "modified": "2019-05-16T15:03:00.750Z", "contributors": [ - "PavelVolkovRussia", - "ivan-krot" + "wbamberg", + "BychekRU", + "fscholz", + "teoli", + "smfd", + "uleming" ] }, - "Словарь/Выражение": { - "modified": "2019-03-23T22:35:20.625Z", + "conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b": { + "modified": "2019-05-16T14:33:41.396Z", "contributors": [ - "DashPisareva", - "tronov", - "BychekRU" + "wbamberg", + "ivan.p", + "fscholz", + "teoli", + "smfd", + "uleming" ] }, - "Словарь/Высокоуровневый_язык_программированияprogramming_language": { - "modified": "2020-01-06T03:30:38.101Z", + "conflicting/Web/JavaScript/Guide": { + "modified": "2019-03-23T23:06:22.825Z", "contributors": [ - "LesikTheCat" + "wbamberg", + "warsan", + "AlexChuev", + "razarusu" ] }, - "Словарь/Гипертекст": { - "modified": "2019-03-18T21:41:54.496Z", + "conflicting/Learn/JavaScript/Objects": { + "modified": "2019-06-04T15:16:30.349Z", "contributors": [ - "gadjetron" + "MiishaG", + "Trubochkin", + "MefistofelUgur", + "rockad", + "susov", + "movasyl", + "forestbird", + "hydrognomik", + "RayzRazko", + "Leo240", + "impetuhant", + "Saviloff", + "VolodymyrKr", + "iegik" ] }, - "Словарь/Дешифрование": { - "modified": "2019-03-18T20:41:22.238Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Boolean": { + "modified": "2019-03-23T23:08:22.785Z", "contributors": [ - "Frisle" + "Mingun" ] }, - "Словарь/Домен": { - "modified": "2019-03-23T22:20:15.133Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Date": { + "modified": "2020-02-07T02:50:13.993Z", "contributors": [ - "richandhandsomeman" + "alexbs", + "deepdarkness", + "Mingun" ] }, - "Словарь/Доступность": { - "modified": "2019-03-23T22:16:03.534Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Error": { + "modified": "2019-03-23T23:08:50.114Z", "contributors": [ - "iamvector", - "ifantom" + "rinbik", + "Mingun" ] }, - "Словарь/Заголовок": { - "modified": "2019-03-18T21:25:04.199Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/EvalError": { + "modified": "2019-03-23T23:08:32.207Z", "contributors": [ - "AlexeyIoffe" + "Mingun" ] }, - "Словарь/Запрещённое_имя_заголовка_ответа": { - "modified": "2019-03-18T21:30:41.483Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Function": { + "modified": "2019-03-24T00:03:59.291Z", "contributors": [ - "crabovwik" + "Devinora", + "pk.prog", + "Mingun", + "teoli", + "fscholz", + "Skorney" ] }, - "Словарь/Инструменты_разработчика": { - "modified": "2019-03-18T21:46:30.400Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/GeneratorFunction": { + "modified": "2020-10-15T22:22:51.990Z", "contributors": [ - "bazoooker" + "ekirpichyov" ] }, - "Словарь/Интернет-провайдер": { - "modified": "2019-03-18T21:16:47.489Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/InternalError": { + "modified": "2019-03-23T23:08:27.124Z", "contributors": [ - "skapesec" + "Mingun" ] }, - "Словарь/КЦД": { - "modified": "2019-03-23T22:06:38.806Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Collator": { + "modified": "2020-04-21T07:27:03.529Z", "contributors": [ - "Morjodrom" + "fscholz", + "Mingun" ] }, - "Словарь/Константа": { - "modified": "2019-03-23T22:04:38.615Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat": { + "modified": "2020-04-21T09:00:46.875Z", "contributors": [ - "JorJeG" + "fscholz", + "Mingun" ] }, - "Словарь/Кэш": { - "modified": "2019-05-20T15:27:57.334Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat": { + "modified": "2020-04-21T09:08:23.861Z", "contributors": [ - "vanjacksing" + "fscholz", + "Mingun" ] }, - "Словарь/Массив": { - "modified": "2020-01-06T03:28:26.834Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Map": { + "modified": "2019-04-17T08:32:17.620Z", "contributors": [ - "LesikTheCat", - "sashakrauzer", - "Cyganov" + "craby-c", + "SphinxKnight", + "Grinv" ] }, - "Словарь/Метаданные": { - "modified": "2019-03-18T21:23:05.612Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Number": { + "modified": "2019-03-23T23:08:18.833Z", "contributors": [ - "SoMuchEffort" + "Mingun" ] }, - "Словарь/Поднятие": { - "modified": "2019-03-23T22:28:46.641Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Object": { + "modified": "2020-03-13T11:04:21.413Z", "contributors": [ - "ArtyomResh", - "boldyrev-d", - "anastasiya-solodkaya", - "shkarlet", - "AlexKhram" + "fishr-flash", + "AMurkin", + "Mingun", + "teoli", + "kreshikhin" ] }, - "Словарь/Порт": { - "modified": "2019-03-23T22:26:53.058Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Promise": { + "modified": "2019-10-16T18:35:40.649Z", "contributors": [ - "tim-zh" + "tsimafey", + "viosng", + "alexicum", + "AlexKhram" ] }, - "Словарь/Пробельные_символы": { - "modified": "2019-04-29T04:51:03.174Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy": { + "modified": "2020-11-18T06:44:17.889Z", "contributors": [ - "sergey.bannikov" + "kosarev_va", + "SphinxKnight" ] }, - "Словарь/Прокси_сервер": { - "modified": "2020-10-29T15:29:38.405Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/RangeError": { + "modified": "2019-03-23T23:08:28.689Z", "contributors": [ - "Rams3ska" + "Mingun" ] }, - "Словарь/Простой_заголовок": { - "modified": "2019-03-18T21:32:57.580Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/ReferenceError": { + "modified": "2019-03-23T23:08:22.399Z", "contributors": [ - "Skinny-Hunter" + "Mingun" ] }, - "Словарь/Протокол": { - "modified": "2019-03-18T21:36:48.161Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/RegExp": { + "modified": "2019-03-23T23:05:56.982Z", "contributors": [ - "reksar" + "Mingun" ] }, - "Словарь/Прототип": { - "modified": "2019-03-23T22:22:22.879Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Set": { + "modified": "2020-10-15T22:08:32.198Z", "contributors": [ - "cezsored" + "AndreyGlyan", + "qqwweeaassdd", + "paramoshkinandrew" ] }, - "Словарь/Сертифицировано": { - "modified": "2019-03-18T20:41:22.573Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/String": { + "modified": "2019-08-27T15:11:15.337Z", "contributors": [ - "Frisle" + "Yialo", + "EugeneTarasenko", + "ukrlex01", + "arctic-hare", + "webnarmin", + "Mingun" ] }, - "Словарь/Синхронный": { - "modified": "2020-09-18T11:00:03.984Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Symbol": { + "modified": "2019-03-23T22:50:51.135Z", "contributors": [ - "victortemnov", - "jeniasaigak" + "SphinxKnight", + "neutral" ] }, - "Словарь/Статическая_типизация": { - "modified": "2019-08-04T18:24:12.862Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError": { + "modified": "2019-03-23T23:08:31.199Z", "contributors": [ - "angelhearted" + "Mingun" ] }, - "Словарь/Строка": { - "modified": "2019-03-23T22:43:22.623Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/TypedArray": { + "modified": "2020-10-15T21:49:43.029Z", "contributors": [ - "anastasiya-solodkaya", - "arturparkhisenko" + "pk.prog" ] }, - "Словарь/Сущности": { - "modified": "2019-04-29T04:00:32.874Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/TypeError": { + "modified": "2019-03-23T23:08:29.800Z", "contributors": [ - "sergey.bannikov" + "Mingun" ] }, - "Словарь/Тег": { - "modified": "2019-03-23T22:18:08.637Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/URIError": { + "modified": "2019-03-23T23:08:26.327Z", "contributors": [ - "skapesec", - "AKonia" + "Mingun" ] }, - "Словарь/Функция": { - "modified": "2019-03-23T22:38:18.825Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/WeakMap": { + "modified": "2020-10-15T22:08:59.129Z", "contributors": [ - "MuradAz" + "kan.a" ] }, - "Словарь/Элемент": { - "modified": "2019-03-18T21:38:41.974Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/WeakSet": { + "modified": "2019-03-23T22:33:26.886Z", "contributors": [ - "skapesec", - "kayablue" + "stRavens" ] }, - "Словарь/функция_обратного_вызова": { - "modified": "2019-03-18T21:32:02.443Z", + "conflicting/Web/JavaScript/Reference/Operators": { + "modified": "2020-10-15T21:14:39.538Z", "contributors": [ - "jeniasaigak" + "Nichon4", + "fscholz", + "wbamberg", + "MedvedevWeb", + "kachid", + "shark_ate_my_shorts", + "ktsabolov", + "BychekRU", + "Anthelion", + "Aleksej", + "teoli", + "Dionys", + "karasiov" ] }, - "Словарь/хеш": { - "modified": "2019-03-23T22:13:59.337Z", + "conflicting/Web/JavaScript/Reference/Operators_8d54701de06af40a7c984517cbe87b3e": { + "modified": "2020-03-12T19:39:48.712Z", "contributors": [ - "RealRedFox" + "JasonRammoray", + "Piterden", + "Siteograf", + "AlexChuev", + "dtretyakov", + "SphinxKnight", + "BurkovBA" ] }, - "Создание_расширения": { - "modified": "2019-03-24T00:02:37.950Z", + "conflicting/Web/JavaScript/Reference/Operators_7c8eb9475d97a4a734c5991857698560": { + "modified": "2020-03-12T19:37:00.110Z", "contributors": [ - "kaifonaft", - "teoli", - "kup", + "CoruNethron", + "kss555", + "joezavtra", + "d1soft", + "byshik", + "AlekKras", + "angyvolin", + "artem328", + "goodwin64", + "tselishev-semen", + "dtretyakov", "fscholz", - "Tmax", - "Yozh88" + "teoli", + "karasiov" ] }, - "Создание_расширения/Настройка_Firefox_для_разработки": { - "modified": "2019-03-23T23:59:35.072Z", + "conflicting/Web/JavaScript/Reference/Operators_843c998343f0cdaa5699874c806d4cea": { + "modified": "2020-03-12T19:42:07.763Z", "contributors": [ - "Protopopulus" + "Coo1Cmd", + "BychekRU", + "Frenk1", + "alexbaumgertner", + "SergeyShpak" ] }, - "Создание_расширения/Настройка_Firefox_для_разработки_расширений": { - "modified": "2019-03-23T23:59:36.564Z", + "conflicting/Web/JavaScript/Reference/Operators_69135a8d5772f8b6e45265523df05d89": { + "modified": "2020-09-29T02:39:38.965Z", "contributors": [ - "Protopopulus" + "nikolasmelui", + "X7Becka", + "nakhodkiin", + "BychekRU", + "nbaksalyar", + "CatWhoCode" ] }, - "Создание_расширения_для_Firefox_с_использованием_Mozilla_Build_System": { - "modified": "2019-01-16T16:11:17.475Z", + "conflicting/Web/JavaScript/Reference/Statements/switch": { + "modified": "2020-10-15T21:54:01.294Z", "contributors": [ - "Kwinto", - "S e r g e y r" + "ekirpichyov", + "AntonPtitsyn" ] }, - "Справочная_информация_по_Gecko_DOM": { - "modified": "2019-01-16T16:08:57.530Z", + "conflicting/Web/Progressive_web_apps_628955cdadd77b10ec99de034fc76374": { + "modified": "2019-03-18T20:52:07.177Z", "contributors": [ - "Megapotz" + "chrisdavidmills", + "ruslan_g02" ] }, - "Справочная_информация_по_Gecko_DOM/Введение": { - "modified": "2019-03-24T00:04:55.948Z", + "conflicting/Web/HTTP/CSP": { + "modified": "2019-03-23T23:04:20.797Z", "contributors": [ - "ivaskonyan", - "arturparkhisenko", - "T-V-N", - "Paul_Yuhnovich", - "arunpandianp", - "ethertank", - "shaman" + "sivashev", + "Aleksej", + "Tihoem" ] }, - "Справочная_информация_по_Gecko_DOM/Предисловие": { - "modified": "2019-03-23T23:44:43.352Z", + "conflicting/Web/API": { + "modified": "2019-03-25T10:51:55.253Z", "contributors": [ - "marat-curious", - "Megapotz" + "boxa6", + "andreybakhishev", + "wbamberg", + "fscholz", + "Cyemka" ] }, - "Справочная_информация_по_Gecko_DOM/Примеры": { - "modified": "2019-01-16T14:46:48.913Z", + "conflicting/Web/Guide": { + "modified": "2019-03-24T00:00:53.915Z", "contributors": [ - "Sheppy", - "abba7" + "Dionys" ] }, - "Темы": { - "modified": "2019-01-16T14:53:24.105Z", + "conflicting/Web/API/Document_Object_Model_5521049528397035462607d58539e0cc": { + "modified": "2019-06-25T10:49:44.957Z", "contributors": [ - "teoli", - "glukin" + "d.zheleznov", + "cognitive-cake", + "runicelf", + "Megapotz" ] } } \ No newline at end of file diff --git a/files/ru/conflicting/glossary/chrome/index.html b/files/ru/conflicting/glossary/chrome/index.html index e9f42b17a8..eedafb7f55 100644 --- a/files/ru/conflicting/glossary/chrome/index.html +++ b/files/ru/conflicting/glossary/chrome/index.html @@ -1,10 +1,11 @@ --- title: Chrome -slug: Chrome +slug: conflicting/Glossary/Chrome tags: - Toolkit API translation_of: Glossary/Chrome translation_of_original: Chrome +original_slug: Chrome ---

Chrome применительно к Mozilla имеет несколько разных значений.

Браузерный chrome / Chrome

diff --git a/files/ru/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html b/files/ru/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html index a192eb1d28..346f30c01e 100644 --- a/files/ru/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html +++ b/files/ru/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html @@ -1,16 +1,17 @@ --- title: Каскадность и наследование -slug: Web/Guide/CSS/Getting_started/Cascading_and_inheritance +slug: conflicting/Learn/CSS/Building_blocks/Cascade_and_inheritance tags: - Beginner - CSS - - 'CSS:Getting_Started' + - CSS:Getting_Started - Guide - Web - Веб - Новичку translation_of: Learn/CSS/Building_blocks/Cascade_and_inheritance translation_of_original: Web/Guide/CSS/Getting_started/Cascading_and_inheritance +original_slug: Web/Guide/CSS/Getting_started/Cascading_and_inheritance ---

{{ CSSTutorialTOC() }}

diff --git a/files/ru/conflicting/learn/css/building_blocks/selectors/index.html b/files/ru/conflicting/learn/css/building_blocks/selectors/index.html index a6d9e5d116..f883db7b62 100644 --- a/files/ru/conflicting/learn/css/building_blocks/selectors/index.html +++ b/files/ru/conflicting/learn/css/building_blocks/selectors/index.html @@ -1,8 +1,9 @@ --- title: 'CSS properties: what they are and how to use them' -slug: Learn/CSS/CSS_properties +slug: conflicting/Learn/CSS/Building_blocks/Selectors translation_of: Learn/CSS/Building_blocks/Selectors translation_of_original: Learn/CSS/CSS_properties +original_slug: Learn/CSS/CSS_properties ---

{{Glossary("CSS")}} определяет как должна выглядеть вебстраница. Он использует предопределенные правила вместе с селекторами и свойствами для применения стилей к элементам HTML или группам элементов.

diff --git a/files/ru/conflicting/learn/css/building_blocks/selectors_918fb6c37a4d06789bc062c48d591992/index.html b/files/ru/conflicting/learn/css/building_blocks/selectors_918fb6c37a4d06789bc062c48d591992/index.html index 797aefefa3..f66eb23b48 100644 --- a/files/ru/conflicting/learn/css/building_blocks/selectors_918fb6c37a4d06789bc062c48d591992/index.html +++ b/files/ru/conflicting/learn/css/building_blocks/selectors_918fb6c37a4d06789bc062c48d591992/index.html @@ -1,8 +1,10 @@ --- title: Selectors -slug: Web/Guide/CSS/Getting_started/Selectors +slug: >- + conflicting/Learn/CSS/Building_blocks/Selectors_918fb6c37a4d06789bc062c48d591992 translation_of: Learn/CSS/Building_blocks/Selectors translation_of_original: Web/Guide/CSS/Getting_started/Selectors +original_slug: Web/Guide/CSS/Getting_started/Selectors ---

{{ CSSTutorialTOC() }}

diff --git a/files/ru/conflicting/learn/css/building_blocks/styling_tables/index.html b/files/ru/conflicting/learn/css/building_blocks/styling_tables/index.html index 82b7edae60..738d092cbe 100644 --- a/files/ru/conflicting/learn/css/building_blocks/styling_tables/index.html +++ b/files/ru/conflicting/learn/css/building_blocks/styling_tables/index.html @@ -1,12 +1,13 @@ --- title: Таблицы -slug: Web/Guide/CSS/Getting_started/Таблицы +slug: conflicting/Learn/CSS/Building_blocks/Styling_tables tags: - CSS - Веб - Руководство translation_of: Learn/CSS/Building_blocks/Styling_tables translation_of_original: Web/Guide/CSS/Getting_started/Tables +original_slug: Web/Guide/CSS/Getting_started/Таблицы ---

{{CSSTutorialTOC}}{{previousPage("/ru/docs/Web/Guide/CSS/Getting_Started/Layout", "Layout")}}

diff --git a/files/ru/conflicting/learn/css/building_blocks/values_and_units/index.html b/files/ru/conflicting/learn/css/building_blocks/values_and_units/index.html index 911a8010b6..504ee90832 100644 --- a/files/ru/conflicting/learn/css/building_blocks/values_and_units/index.html +++ b/files/ru/conflicting/learn/css/building_blocks/values_and_units/index.html @@ -1,8 +1,9 @@ --- title: Color -slug: Web/Guide/CSS/Getting_started/Color +slug: conflicting/Learn/CSS/Building_blocks/Values_and_units translation_of: Learn/CSS/Introduction_to_CSS/Values_and_units#Colors translation_of_original: Web/Guide/CSS/Getting_started/Color +original_slug: Web/Guide/CSS/Getting_started/Color ---

{{ CSSTutorialTOC() }}

diff --git a/files/ru/conflicting/learn/css/first_steps/how_css_is_structured/index.html b/files/ru/conflicting/learn/css/first_steps/how_css_is_structured/index.html index 9e9a4231a9..5f825e836d 100644 --- a/files/ru/conflicting/learn/css/first_steps/how_css_is_structured/index.html +++ b/files/ru/conflicting/learn/css/first_steps/how_css_is_structured/index.html @@ -1,8 +1,9 @@ --- title: Чистый СSS код -slug: Web/Guide/CSS/Getting_started/Readable_CSS +slug: conflicting/Learn/CSS/First_steps/How_CSS_is_structured translation_of: Learn/CSS/Introduction_to_CSS/Syntax#Beyond_syntax_make_CSS_readable translation_of_original: Web/Guide/CSS/Getting_started/Readable_CSS +original_slug: Web/Guide/CSS/Getting_started/Readable_CSS ---

{{ CSSTutorialTOC() }}

diff --git a/files/ru/conflicting/learn/css/first_steps/how_css_works/index.html b/files/ru/conflicting/learn/css/first_steps/how_css_works/index.html index 9edeb9fe1f..8e7fae4eb2 100644 --- a/files/ru/conflicting/learn/css/first_steps/how_css_works/index.html +++ b/files/ru/conflicting/learn/css/first_steps/how_css_works/index.html @@ -1,8 +1,9 @@ --- title: Как работает CSS -slug: Web/Guide/CSS/Getting_started/How_CSS_works +slug: conflicting/Learn/CSS/First_steps/How_CSS_works translation_of: Learn/CSS/First_steps/How_CSS_works translation_of_original: Web/Guide/CSS/Getting_started/How_CSS_works +original_slug: Web/Guide/CSS/Getting_started/How_CSS_works ---

{{ CSSTutorialTOC() }}

diff --git a/files/ru/conflicting/learn/css/first_steps/how_css_works_64ba4331a7a5f4319c6e06b06ccdd521/index.html b/files/ru/conflicting/learn/css/first_steps/how_css_works_64ba4331a7a5f4319c6e06b06ccdd521/index.html index 3041d28920..05b7c9e54c 100644 --- a/files/ru/conflicting/learn/css/first_steps/how_css_works_64ba4331a7a5f4319c6e06b06ccdd521/index.html +++ b/files/ru/conflicting/learn/css/first_steps/how_css_works_64ba4331a7a5f4319c6e06b06ccdd521/index.html @@ -1,10 +1,11 @@ --- title: Зачем нужен CSS? -slug: Web/Guide/CSS/Getting_started/Why_use_CSS +slug: >- + conflicting/Learn/CSS/First_steps/How_CSS_works_64ba4331a7a5f4319c6e06b06ccdd521 tags: - Beginner - CSS - - 'CSS:Getting_Started' + - CSS:Getting_Started - Example - Guide - Web @@ -13,6 +14,7 @@ tags: - Руководство translation_of: Learn/CSS/First_steps/How_CSS_works translation_of_original: Web/Guide/CSS/Getting_started/Why_use_CSS +original_slug: Web/Guide/CSS/Getting_started/Why_use_CSS ---

{{ CSSTutorialTOC() }}

diff --git a/files/ru/conflicting/learn/css/first_steps/how_css_works_b66915031fb62b5fee1201086144e209/index.html b/files/ru/conflicting/learn/css/first_steps/how_css_works_b66915031fb62b5fee1201086144e209/index.html index 95df2fe915..b97a4ef068 100644 --- a/files/ru/conflicting/learn/css/first_steps/how_css_works_b66915031fb62b5fee1201086144e209/index.html +++ b/files/ru/conflicting/learn/css/first_steps/how_css_works_b66915031fb62b5fee1201086144e209/index.html @@ -1,16 +1,18 @@ --- title: Что такое CSS? -slug: Web/Guide/CSS/Getting_started/What_is_CSS +slug: >- + conflicting/Learn/CSS/First_steps/How_CSS_works_b66915031fb62b5fee1201086144e209 tags: - Beginner - CSS - - 'CSS:Getting_Started' + - CSS:Getting_Started - Example - Guide - Веб - Новичку translation_of: Learn/CSS/First_steps/How_CSS_works translation_of_original: Web/Guide/CSS/Getting_started/What_is_CSS +original_slug: Web/Guide/CSS/Getting_started/What_is_CSS ---
{{ CSSTutorialTOC() }}
diff --git a/files/ru/conflicting/learn/css/first_steps/index.html b/files/ru/conflicting/learn/css/first_steps/index.html index b2f6ebed77..e7f3f73dce 100644 --- a/files/ru/conflicting/learn/css/first_steps/index.html +++ b/files/ru/conflicting/learn/css/first_steps/index.html @@ -1,10 +1,10 @@ --- title: CSS для начинающих -slug: Web/Guide/CSS/Getting_started +slug: conflicting/Learn/CSS/First_steps tags: - Beginner - CSS - - 'CSS:Getting_Started' + - CSS:Getting_Started - Guide - Needs - NeedsBeginnerUpdate @@ -16,6 +16,7 @@ tags: - Руководство translation_of: Learn/CSS/First_steps translation_of_original: Web/Guide/CSS/Getting_started +original_slug: Web/Guide/CSS/Getting_started ---

Это руководство (самоучитель) познакомит вас с базовыми возможностями и языком (синтаксом) Каскадных таблиц стилей (CSS). CSS используется для изменения внешнего вида структурированного документа, такого как веб-страница. Руководство также включает простые упражнения, которые вы сможете выполнить на своем компьютере и увидеть, как работает CSS, а также его возможности в современных браузерах.

diff --git a/files/ru/conflicting/learn/css/index.html b/files/ru/conflicting/learn/css/index.html index 7529234ef5..2a639c4b61 100644 --- a/files/ru/conflicting/learn/css/index.html +++ b/files/ru/conflicting/learn/css/index.html @@ -1,6 +1,6 @@ --- title: Руководство разработчика CSS -slug: Web/Guide/CSS +slug: conflicting/Learn/CSS tags: - CSS - Landing @@ -8,5 +8,6 @@ tags: - TopicStub translation_of: Learn/CSS translation_of_original: Web/Guide/CSS +original_slug: Web/Guide/CSS --- prepare for redirect diff --git a/files/ru/conflicting/learn/css/styling_text/fundamentals/index.html b/files/ru/conflicting/learn/css/styling_text/fundamentals/index.html index a25565cf79..f61ad3b65e 100644 --- a/files/ru/conflicting/learn/css/styling_text/fundamentals/index.html +++ b/files/ru/conflicting/learn/css/styling_text/fundamentals/index.html @@ -1,8 +1,9 @@ --- title: Text styles -slug: Web/Guide/CSS/Getting_started/Text_styles +slug: conflicting/Learn/CSS/Styling_text/Fundamentals translation_of: Learn/CSS/Styling_text/Fundamentals translation_of_original: Web/Guide/CSS/Getting_started/Text_styles +original_slug: Web/Guide/CSS/Getting_started/Text_styles ---

{{ CSSTutorialTOC() }}

diff --git a/files/ru/conflicting/learn/javascript/objects/index.html b/files/ru/conflicting/learn/javascript/objects/index.html index d07cf043cc..1fe76e2806 100644 --- a/files/ru/conflicting/learn/javascript/objects/index.html +++ b/files/ru/conflicting/learn/javascript/objects/index.html @@ -1,8 +1,9 @@ --- title: Вступление в Объектно-ориентированный JavaScript -slug: Web/JavaScript/Introduction_to_Object-Oriented_JavaScript +slug: conflicting/Learn/JavaScript/Objects translation_of: Learn/JavaScript/Objects translation_of_original: Web/JavaScript/Introduction_to_Object-Oriented_JavaScript +original_slug: Web/JavaScript/Introduction_to_Object-Oriented_JavaScript ---

Объектно-ориентированный до основания, JavaScript предоставляет мощные и гибкие {{Glossary("OOP")}} возможности. Эта статья начинается с введения в объектно-ориентированное программирование, затем рассматривает модель объекта JavaScript и, наконец, демонстрирует концепции объектно-ориентированного программирования в JavaScript.

diff --git a/files/ru/conflicting/mdn/contribute/index.html b/files/ru/conflicting/mdn/contribute/index.html index a8227dafed..d5989bfd3c 100644 --- a/files/ru/conflicting/mdn/contribute/index.html +++ b/files/ru/conflicting/mdn/contribute/index.html @@ -1,11 +1,12 @@ --- title: Участие в MDN -slug: MDN_at_ten/Contributing_to_MDN +slug: conflicting/MDN/Contribute tags: - MDN Мета - Mozilla - Участие translation_of: MDN_at_ten/Contributing_to_MDN +original_slug: MDN_at_ten/Contributing_to_MDN ---
diff --git a/files/ru/conflicting/mdn/tools/index.html b/files/ru/conflicting/mdn/tools/index.html index 88a0659232..ba40675886 100644 --- a/files/ru/conflicting/mdn/tools/index.html +++ b/files/ru/conflicting/mdn/tools/index.html @@ -1,12 +1,13 @@ --- title: Руководство пользователя MDN -slug: MDN/User_guide +slug: conflicting/MDN/Tools tags: - Documentation - Landing - MDN translation_of: MDN/Tools translation_of_original: MDN/User_guide +original_slug: MDN/User_guide ---
{{MDNSidebar}}

Сайт сети разработчиков Mozilla является продвинутой системой для поиска, чтения и внесения документации и примеров исходного кода для веб-разработчиков (а также для разработчиков под браузер Firefox и ОС Firefox). Руководство пользователя MDN предоставляет статьи, в подробностях описывающие, как использовать MDN для поиска нужной вам документации и, если вы желаете, как помочь сделать материалы лучше: более полными и обширными.

diff --git a/files/ru/conflicting/mozilla/add-ons/index.html b/files/ru/conflicting/mozilla/add-ons/index.html index f147f764bb..de1f3416a5 100644 --- a/files/ru/conflicting/mozilla/add-ons/index.html +++ b/files/ru/conflicting/mozilla/add-ons/index.html @@ -1,9 +1,10 @@ --- title: Создание расширения -slug: Building_an_Extension +slug: conflicting/Mozilla/Add-ons tags: - Расширение - Создание +original_slug: Building_an_Extension ---

Введение

Этот урок по шагам покажет Вам как создать простое Расширение – сутью которого является добавление в панель статуса Firefox блока со строкой "Hello, World!"

diff --git a/files/ru/conflicting/mozilla/firefox/releases/index.html b/files/ru/conflicting/mozilla/firefox/releases/index.html index ba7f7887f2..7fbfd3fe07 100644 --- a/files/ru/conflicting/mozilla/firefox/releases/index.html +++ b/files/ru/conflicting/mozilla/firefox/releases/index.html @@ -1,8 +1,9 @@ --- title: Замечания к релизу -slug: Tools/Release_notes +slug: conflicting/Mozilla/Firefox/Releases translation_of: Mozilla/Firefox/Releases translation_of_original: Tools/Release_notes +original_slug: Tools/Release_notes ---
{{ToolsSidebar}}

Firefox 48

diff --git a/files/ru/conflicting/tools/performance/index.html b/files/ru/conflicting/tools/performance/index.html index 10e4254907..6bf96a6c91 100644 --- a/files/ru/conflicting/tools/performance/index.html +++ b/files/ru/conflicting/tools/performance/index.html @@ -1,6 +1,6 @@ --- title: Профилирование JavaScript -slug: Tools/Profiler +slug: conflicting/Tools/Performance tags: - Firefox - Отладка @@ -10,6 +10,7 @@ tags: - инструменты translation_of: Tools/Performance translation_of_original: Tools/Profiler +original_slug: Tools/Profiler ---
{{ToolsSidebar}}

Используйте средства профилирования, чтобы находить узкие места в своём JavaScript коде.  Профайлер периодически проверяет состояние стека вызовов JavaScript и составляет статистику на основе полученных в результате измерения величин.

diff --git a/files/ru/conflicting/web/accessibility/index.html b/files/ru/conflicting/web/accessibility/index.html index ce48a75de2..93cd4b80cb 100644 --- a/files/ru/conflicting/web/accessibility/index.html +++ b/files/ru/conflicting/web/accessibility/index.html @@ -1,6 +1,6 @@ --- title: Веб-разработка -slug: Web/Accessibility/Веб-разработка +slug: conflicting/Web/Accessibility tags: - ARIA - Web Development @@ -8,6 +8,7 @@ tags: - доступность translation_of: Web/Accessibility translation_of_original: Web/Accessibility/Web_Development +original_slug: Web/Accessibility/Веб-разработка ---

Здесь ссылки на более подробную информацию для разработчиков о доступности (accessibility) в Веб и в XUL.

diff --git a/files/ru/conflicting/web/api/canvas_api/a_basic_ray-caster/index.html b/files/ru/conflicting/web/api/canvas_api/a_basic_ray-caster/index.html index 23b14adb7c..b96f0a95a3 100644 --- a/files/ru/conflicting/web/api/canvas_api/a_basic_ray-caster/index.html +++ b/files/ru/conflicting/web/api/canvas_api/a_basic_ray-caster/index.html @@ -1,8 +1,9 @@ --- title: A Basic RayCaster -slug: A_Basic_RayCaster +slug: conflicting/Web/API/Canvas_API/A_basic_ray-caster tags: - Canvas_examples +original_slug: A_Basic_RayCaster ---

 

diff --git a/files/ru/conflicting/web/api/crypto/getrandomvalues/index.html b/files/ru/conflicting/web/api/crypto/getrandomvalues/index.html index d56506a90a..0193cc0447 100644 --- a/files/ru/conflicting/web/api/crypto/getrandomvalues/index.html +++ b/files/ru/conflicting/web/api/crypto/getrandomvalues/index.html @@ -1,6 +1,6 @@ --- title: RandomSource -slug: Web/API/RandomSource +slug: conflicting/Web/API/Crypto/getRandomValues tags: - API - Interface @@ -11,6 +11,7 @@ tags: - Web Crypto API translation_of: Web/API/Crypto/getRandomValues translation_of_original: Web/API/RandomSource +original_slug: Web/API/RandomSource ---

{{APIRef("Web Crypto API")}}

diff --git a/files/ru/conflicting/web/api/document_object_model/index.html b/files/ru/conflicting/web/api/document_object_model/index.html index 3acab80018..def3b15b61 100644 --- a/files/ru/conflicting/web/api/document_object_model/index.html +++ b/files/ru/conflicting/web/api/document_object_model/index.html @@ -1,10 +1,11 @@ --- title: DOM -slug: DOM +slug: conflicting/Web/API/Document_Object_Model tags: - DOM translation_of: Web/API/Document_Object_Model translation_of_original: DOM +original_slug: DOM ---

Объектная модель документа (DOM) — это API для HTML и XML документов. Она предоставляет структуру документа, что позволяет изменять его содержимое и внешний вид. По сути, она связывает веб-страницы со скриптами или языками программирования.

diff --git a/files/ru/conflicting/web/api/document_object_model_5521049528397035462607d58539e0cc/index.html b/files/ru/conflicting/web/api/document_object_model_5521049528397035462607d58539e0cc/index.html index ab6a5c0435..ba7d7d07d8 100644 --- a/files/ru/conflicting/web/api/document_object_model_5521049528397035462607d58539e0cc/index.html +++ b/files/ru/conflicting/web/api/document_object_model_5521049528397035462607d58539e0cc/index.html @@ -1,10 +1,11 @@ --- title: Об объектной модели документа -slug: Об_объектной_модели_документа +slug: conflicting/Web/API/Document_Object_Model_5521049528397035462607d58539e0cc tags: - DOM translation_of: Web/API/Document_Object_Model translation_of_original: DOM/About_the_Document_Object_Model +original_slug: Об_объектной_модели_документа ---

Что такое DOM?

diff --git a/files/ru/conflicting/web/api/document_object_model_dd00a71ceceac547ab464128db6bd8ef/index.html b/files/ru/conflicting/web/api/document_object_model_dd00a71ceceac547ab464128db6bd8ef/index.html index 1671813170..4d8706e804 100644 --- a/files/ru/conflicting/web/api/document_object_model_dd00a71ceceac547ab464128db6bd8ef/index.html +++ b/files/ru/conflicting/web/api/document_object_model_dd00a71ceceac547ab464128db6bd8ef/index.html @@ -1,6 +1,6 @@ --- title: DOM developer guide -slug: Web/Guide/API/DOM +slug: conflicting/Web/API/Document_Object_Model_dd00a71ceceac547ab464128db6bd8ef tags: - API - DOM @@ -10,6 +10,7 @@ tags: - TopicStub translation_of: Web/API/Document_Object_Model translation_of_original: Web/Guide/API/DOM +original_slug: Web/Guide/API/DOM ---

{{draft}}

diff --git a/files/ru/conflicting/web/api/element/index.html b/files/ru/conflicting/web/api/element/index.html index af6ec4765c..8656365064 100644 --- a/files/ru/conflicting/web/api/element/index.html +++ b/files/ru/conflicting/web/api/element/index.html @@ -1,10 +1,11 @@ --- title: Slotable -slug: Web/API/Slotable +slug: conflicting/Web/API/Element tags: - миксины translation_of: Web/API/Slottable translation_of_original: Web/API/Slotable +original_slug: Web/API/Slotable ---

{{APIRef("Shadow DOM")}}

diff --git a/files/ru/conflicting/web/api/eventtarget/addeventlistener/index.html b/files/ru/conflicting/web/api/eventtarget/addeventlistener/index.html index a428f9724c..ce515d9e4f 100644 --- a/files/ru/conflicting/web/api/eventtarget/addeventlistener/index.html +++ b/files/ru/conflicting/web/api/eventtarget/addeventlistener/index.html @@ -1,9 +1,10 @@ --- title: EventTarget.attachEvent() -slug: Web/API/EventTarget/attachEvent +slug: conflicting/Web/API/EventTarget/addEventListener tags: - Junk translation_of: Web/API/EventTarget/addEventListener translation_of_original: Web/API/EventTarget/attachEvent +original_slug: Web/API/EventTarget/attachEvent ---

{{DOMxRef("EventTarget.addEventListener","EventTarget.addEventListener()")}}

diff --git a/files/ru/conflicting/web/api/eventtarget/removeeventlistener/index.html b/files/ru/conflicting/web/api/eventtarget/removeeventlistener/index.html index 9a62ecb63c..c83a135fd4 100644 --- a/files/ru/conflicting/web/api/eventtarget/removeeventlistener/index.html +++ b/files/ru/conflicting/web/api/eventtarget/removeeventlistener/index.html @@ -1,8 +1,9 @@ --- title: EventTarget.detachEvent() -slug: Web/API/EventTarget/detachEvent +slug: conflicting/Web/API/EventTarget/removeEventListener translation_of: Web/API/EventTarget/removeEventListener translation_of_original: Web/API/EventTarget/detachEvent +original_slug: Web/API/EventTarget/detachEvent ---

{{APIRef("DOM Events")}}

diff --git a/files/ru/conflicting/web/api/geolocation/index.html b/files/ru/conflicting/web/api/geolocation/index.html index 7287eee669..9a15927312 100644 --- a/files/ru/conflicting/web/api/geolocation/index.html +++ b/files/ru/conflicting/web/api/geolocation/index.html @@ -1,8 +1,9 @@ --- title: NavigatorGeolocation -slug: Web/API/NavigatorGeolocation +slug: conflicting/Web/API/Geolocation translation_of: Web/API/Geolocation translation_of_original: Web/API/NavigatorGeolocation +original_slug: Web/API/NavigatorGeolocation ---
{{APIRef("Geolocation API")}}
diff --git a/files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.html b/files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.html index d8029e2378..22fadfb200 100644 --- a/files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.html +++ b/files/ru/conflicting/web/api/htmlmediaelement/abort_event/index.html @@ -1,10 +1,11 @@ --- title: abort -slug: Web/Events/abort +slug: conflicting/Web/API/HTMLMediaElement/abort_event tags: - Событие translation_of: Web/API/HTMLMediaElement/abort_event translation_of_original: Web/Events/abort +original_slug: Web/Events/abort ---

Событие "abort" вызывается когда загрузка какого-либо ресурса была прервана.

diff --git a/files/ru/conflicting/web/api/index.html b/files/ru/conflicting/web/api/index.html index 9ffb624bc7..325f2ca52b 100644 --- a/files/ru/conflicting/web/api/index.html +++ b/files/ru/conflicting/web/api/index.html @@ -1,10 +1,11 @@ --- title: WebAPI -slug: Web/WebAPI +slug: conflicting/Web/API tags: - API translation_of: Web/API translation_of_original: WebAPI +original_slug: Web/WebAPI ---

WebAPI is a term used to refer to a suite of device compatibility and access APIs that allow Web apps and content to access device hardware (such as battery status or the device vibration hardware), as well as access to data stored on the device (such as the calendar or contacts list). By adding these APIs, we hope to expand what the Web can do today to also include what only proprietary platforms were able to do in the past.

diff --git a/files/ru/conflicting/web/api/node/index.html b/files/ru/conflicting/web/api/node/index.html index 7f7dbfb782..867810d345 100644 --- a/files/ru/conflicting/web/api/node/index.html +++ b/files/ru/conflicting/web/api/node/index.html @@ -1,8 +1,9 @@ --- title: Node.baseURIObject -slug: Web/API/Node/baseURIObject +slug: conflicting/Web/API/Node translation_of: Web/API/Node translation_of_original: Web/API/Node/baseURIObject +original_slug: Web/API/Node/baseURIObject ---
{{APIRef("DOM")}} {{Non-standard_header}}
diff --git a/files/ru/conflicting/web/api/node_378aed5ed6869e50853edbc988cf9556/index.html b/files/ru/conflicting/web/api/node_378aed5ed6869e50853edbc988cf9556/index.html index 11b342e6c3..8de371b4cf 100644 --- a/files/ru/conflicting/web/api/node_378aed5ed6869e50853edbc988cf9556/index.html +++ b/files/ru/conflicting/web/api/node_378aed5ed6869e50853edbc988cf9556/index.html @@ -1,8 +1,9 @@ --- title: Node.nodePrincipal -slug: Web/API/Node/nodePrincipal +slug: conflicting/Web/API/Node_378aed5ed6869e50853edbc988cf9556 translation_of: Web/API/Node translation_of_original: Web/API/Node/nodePrincipal +original_slug: Web/API/Node/nodePrincipal ---
{{APIRef("DOM")}}
diff --git a/files/ru/conflicting/web/api/push_api/index.html b/files/ru/conflicting/web/api/push_api/index.html index 40086e4e91..1a1de71329 100644 --- a/files/ru/conflicting/web/api/push_api/index.html +++ b/files/ru/conflicting/web/api/push_api/index.html @@ -1,8 +1,9 @@ --- title: Использование Push API -slug: Web/API/Push_API/Using_the_Push_API +slug: conflicting/Web/API/Push_API translation_of: Web/API/Push_API translation_of_original: Web/API/Push_API/Using_the_Push_API +original_slug: Web/API/Push_API/Using_the_Push_API ---

W3C Push API предоставляет некоторый захватывающий новый функционал для разработчиков для использования в web-приложениях: эта статья предлагает вводную информацию о том, как настроить Push-уведомления и управлять ими, с помощью простого демо.

diff --git a/files/ru/conflicting/web/api/svgaelement/target/index.html b/files/ru/conflicting/web/api/svgaelement/target/index.html index dcd76310d4..376099e1f3 100644 --- a/files/ru/conflicting/web/api/svgaelement/target/index.html +++ b/files/ru/conflicting/web/api/svgaelement/target/index.html @@ -1,8 +1,9 @@ --- title: SVGAElement.target -slug: Web/API/SVGAElement/SVGAlement.target +slug: conflicting/Web/API/SVGAElement/target translation_of: Web/API/SVGAElement/target translation_of_original: Web/API/SVGAElement/SVGAlement.target +original_slug: Web/API/SVGAElement/SVGAlement.target ---

{{APIRef("SVGAElement")}}

diff --git a/files/ru/conflicting/web/api/web_storage_api/index.html b/files/ru/conflicting/web/api/web_storage_api/index.html index b63a374c8c..b6e37422a6 100644 --- a/files/ru/conflicting/web/api/web_storage_api/index.html +++ b/files/ru/conflicting/web/api/web_storage_api/index.html @@ -1,8 +1,9 @@ --- title: DOM Storage guide -slug: Web/Guide/API/DOM/Storage +slug: conflicting/Web/API/Web_Storage_API translation_of: Web/API/Web_Storage_API translation_of_original: Web/Guide/API/DOM/Storage +original_slug: Web/Guide/API/DOM/Storage ---

 

diff --git a/files/ru/conflicting/web/api/webrtc_api/index.html b/files/ru/conflicting/web/api/webrtc_api/index.html index d8fbf01983..59ab196363 100644 --- a/files/ru/conflicting/web/api/webrtc_api/index.html +++ b/files/ru/conflicting/web/api/webrtc_api/index.html @@ -1,8 +1,9 @@ --- title: WebRTC -slug: Web/Guide/API/WebRTC +slug: conflicting/Web/API/WebRTC_API translation_of: Web/API/WebRTC_API translation_of_original: Web/Guide/API/WebRTC +original_slug: Web/Guide/API/WebRTC ---

WebRTC (где RTC расшифровывается как Real-Time Communications) - это технология, которая позволяет передавать данные и потоковое аудио/видео между браузерами. Как набор стандартов в целом, WebRTC предоставляет любым поддерживающим этот стандарт, браузерам обмениваться данными и устраивать сеансы телеконференций в режиме точка-точка, без необходимости устанавливать какие-либо плагины и стороннее програмное обеспечение.

diff --git a/files/ru/conflicting/web/api/webrtc_api/signaling_and_video_calling/index.html b/files/ru/conflicting/web/api/webrtc_api/signaling_and_video_calling/index.html index 863dde7e14..b8473336af 100644 --- a/files/ru/conflicting/web/api/webrtc_api/signaling_and_video_calling/index.html +++ b/files/ru/conflicting/web/api/webrtc_api/signaling_and_video_calling/index.html @@ -1,8 +1,9 @@ --- title: Основы WebRTC -slug: Web/API/WebRTC_API/WebRTC_basics +slug: conflicting/Web/API/WebRTC_API/Signaling_and_video_calling translation_of: Web/API/WebRTC_API/Signaling_and_video_calling translation_of_original: Web/API/WebRTC_API/WebRTC_basics +original_slug: Web/API/WebRTC_API/WebRTC_basics ---

{{WebRTCSidebar}}

diff --git a/files/ru/conflicting/web/api/window/localstorage/index.html b/files/ru/conflicting/web/api/window/localstorage/index.html index f0fab82609..7e9f60bb88 100644 --- a/files/ru/conflicting/web/api/window/localstorage/index.html +++ b/files/ru/conflicting/web/api/window/localstorage/index.html @@ -1,8 +1,9 @@ --- title: LocalStorage -slug: Web/API/Storage/LocalStorage +slug: conflicting/Web/API/Window/localStorage translation_of: Web/API/Window/localStorage translation_of_original: Web/API/Web_Storage_API/Local_storage +original_slug: Web/API/Storage/LocalStorage ---

localStorage это аналог sessionStorage, с некоторыми same-origin правилами, но значения хранятся постоянно (в отличии от sessions). localStorage появился в Firefox 3.5.

diff --git a/files/ru/conflicting/web/api/windoworworkerglobalscope/index.html b/files/ru/conflicting/web/api/windoworworkerglobalscope/index.html index f51b72c102..69bc73a64f 100644 --- a/files/ru/conflicting/web/api/windoworworkerglobalscope/index.html +++ b/files/ru/conflicting/web/api/windoworworkerglobalscope/index.html @@ -1,6 +1,6 @@ --- title: WindowBase64 -slug: Web/API/WindowBase64 +slug: conflicting/Web/API/WindowOrWorkerGlobalScope tags: - API - HTML-DOM @@ -10,6 +10,7 @@ tags: - WindowBase64 translation_of: Web/API/WindowOrWorkerGlobalScope translation_of_original: Web/API/WindowBase64 +original_slug: Web/API/WindowBase64 ---

{{APIRef("HTML DOM")}}

diff --git a/files/ru/conflicting/web/api/windoworworkerglobalscope_e2691f7ad05781a30c5fc5bb3b3f633a/index.html b/files/ru/conflicting/web/api/windoworworkerglobalscope_e2691f7ad05781a30c5fc5bb3b3f633a/index.html index ac80f42b5f..21a473532e 100644 --- a/files/ru/conflicting/web/api/windoworworkerglobalscope_e2691f7ad05781a30c5fc5bb3b3f633a/index.html +++ b/files/ru/conflicting/web/api/windoworworkerglobalscope_e2691f7ad05781a30c5fc5bb3b3f633a/index.html @@ -1,11 +1,12 @@ --- title: WindowTimers -slug: Web/API/WindowTimers +slug: conflicting/Web/API/WindowOrWorkerGlobalScope_e2691f7ad05781a30c5fc5bb3b3f633a tags: - API - HTML DOM translation_of: Web/API/WindowOrWorkerGlobalScope translation_of_original: Web/API/WindowTimers +original_slug: Web/API/WindowTimers ---
{{APIRef("HTML DOM")}}
diff --git a/files/ru/conflicting/web/api/xmlhttprequest/index.html b/files/ru/conflicting/web/api/xmlhttprequest/index.html index 0de9dfed9d..0d2e6c16e7 100644 --- a/files/ru/conflicting/web/api/xmlhttprequest/index.html +++ b/files/ru/conflicting/web/api/xmlhttprequest/index.html @@ -1,9 +1,10 @@ --- title: XMLHttpRequest -slug: XMLHttpRequest +slug: conflicting/Web/API/XMLHttpRequest tags: - AJAX - XMLHttpRequest +original_slug: XMLHttpRequest ---

XMLHttpRequest — это объект JavaScript, созданный Microsoft и адаптированный Mozilla. Вы можете использовать его для простой передачи данных через HTTP. Несмотря на свое название, он может быть использован не только для XML документов, но и, например, для JSON.

diff --git a/files/ru/conflicting/web/css/@viewport/index.html b/files/ru/conflicting/web/css/@viewport/index.html index 3cb5768532..6778691ba7 100644 --- a/files/ru/conflicting/web/css/@viewport/index.html +++ b/files/ru/conflicting/web/css/@viewport/index.html @@ -1,8 +1,9 @@ --- title: user-zoom -slug: Web/CSS/@viewport/user-zoom +slug: conflicting/Web/CSS/@viewport translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/user-zoom +original_slug: Web/CSS/@viewport/user-zoom ---
{{ CSSRef }}
diff --git a/files/ru/conflicting/web/css/_colon_is/index.html b/files/ru/conflicting/web/css/_colon_is/index.html index 6a9dab56ac..d2ed013366 100644 --- a/files/ru/conflicting/web/css/_colon_is/index.html +++ b/files/ru/conflicting/web/css/_colon_is/index.html @@ -1,14 +1,15 @@ --- title: ':any' -slug: 'Web/CSS/:any' +slug: conflicting/Web/CSS/:is tags: - CSS - Experimental - Псевдоклассы - Руководство - Экспериментальное -translation_of: 'Web/CSS/:is' -translation_of_original: 'Web/CSS/:any' +translation_of: Web/CSS/:is +translation_of_original: Web/CSS/:any +original_slug: Web/CSS/:any ---
{{CSSRef}}{{SeeCompatTable}}
diff --git a/files/ru/conflicting/web/css/css_basic_user_interface/index.html b/files/ru/conflicting/web/css/css_basic_user_interface/index.html index 2a4028644d..3a739dcff4 100644 --- a/files/ru/conflicting/web/css/css_basic_user_interface/index.html +++ b/files/ru/conflicting/web/css/css_basic_user_interface/index.html @@ -1,6 +1,6 @@ --- title: CSS Basic User Interface -slug: Web/CSS/CSS_User_Interface +slug: conflicting/Web/CSS/CSS_Basic_User_Interface tags: - CSS - CSS Basic User Interface @@ -10,6 +10,7 @@ tags: - TopicStub translation_of: Web/CSS/CSS_Basic_User_Interface translation_of_original: Web/CSS/CSS_User_Interface +original_slug: Web/CSS/CSS_User_Interface ---
{{CSSRef}}
diff --git a/files/ru/conflicting/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html b/files/ru/conflicting/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html index 3f0b229d20..e40fb04a90 100644 --- a/files/ru/conflicting/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html +++ b/files/ru/conflicting/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html @@ -1,8 +1,9 @@ --- title: Используем CSS Flexible Boxes -slug: Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes +slug: conflicting/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox translation_of: Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox translation_of_original: Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes +original_slug: Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes ---
Эта статья устарела и удалена из английской версии. Вместо неё идёт перенаправление на статью:

Основные понятия Flexbox

diff --git a/files/ru/conflicting/web/css/gap/index.html b/files/ru/conflicting/web/css/gap/index.html index 90daa7c0ea..bc37f159e8 100644 --- a/files/ru/conflicting/web/css/gap/index.html +++ b/files/ru/conflicting/web/css/gap/index.html @@ -1,8 +1,9 @@ --- title: grid-gap -slug: Web/CSS/grid-gap +slug: conflicting/Web/CSS/gap translation_of: Web/CSS/gap translation_of_original: Web/CSS/grid-gap +original_slug: Web/CSS/grid-gap ---

{{Deprecated_Header}}

diff --git a/files/ru/conflicting/web/css/url()/index.html b/files/ru/conflicting/web/css/url()/index.html index 755d1adfe4..abbc8af65a 100644 --- a/files/ru/conflicting/web/css/url()/index.html +++ b/files/ru/conflicting/web/css/url()/index.html @@ -1,6 +1,6 @@ --- title: url() -slug: Web/CSS/filter-function/url +slug: conflicting/Web/CSS/url() tags: - CSS - Начинающий @@ -8,6 +8,7 @@ tags: - Функция translation_of: Web/CSS/url() translation_of_original: Web/CSS/filter-function/url +original_slug: Web/CSS/filter-function/url ---
{{cssref}}
diff --git a/files/ru/conflicting/web/css/url()_168028c4e5edd9e19c061adb4b604d4f/index.html b/files/ru/conflicting/web/css/url()_168028c4e5edd9e19c061adb4b604d4f/index.html index 82965bf827..c3184e46fa 100644 --- a/files/ru/conflicting/web/css/url()_168028c4e5edd9e19c061adb4b604d4f/index.html +++ b/files/ru/conflicting/web/css/url()_168028c4e5edd9e19c061adb4b604d4f/index.html @@ -1,12 +1,13 @@ --- title: -slug: Web/CSS/url +slug: conflicting/Web/CSS/url()_168028c4e5edd9e19c061adb4b604d4f tags: - Адрес - Типы данных - относительный адрес translation_of: Web/CSS/url() translation_of_original: Web/CSS/url +original_slug: Web/CSS/url ---
{{CssRef}}
diff --git a/files/ru/conflicting/web/guide/index.html b/files/ru/conflicting/web/guide/index.html index 3dd0b4cbcc..2ea0c7199a 100644 --- a/files/ru/conflicting/web/guide/index.html +++ b/files/ru/conflicting/web/guide/index.html @@ -1,8 +1,9 @@ --- title: Веб-разработка -slug: Веб-разработка +slug: conflicting/Web/Guide translation_of: Web/Guide translation_of_original: Web_Development +original_slug: Веб-разработка ---

Веб-разработка включает в себя все аспекты разработки веб-сайта или веб-приложения. Статьи этого раздела освещают создание как простых веб-сайтов, так и сложных, интерактивных веб-приложений с использованием новейших технологий разработки для веб.

diff --git a/files/ru/conflicting/web/guide/mobile/index.html b/files/ru/conflicting/web/guide/mobile/index.html index cc288a9c45..028d0c71ed 100644 --- a/files/ru/conflicting/web/guide/mobile/index.html +++ b/files/ru/conflicting/web/guide/mobile/index.html @@ -1,6 +1,6 @@ --- title: Mobile Web development -slug: Web_Development/Mobile +slug: conflicting/Web/Guide/Mobile tags: - Mobile - NeedsTranslation @@ -8,6 +8,7 @@ tags: - Web Development translation_of: Web/Guide/Mobile translation_of_original: Web_Development/Mobile +original_slug: Web_Development/Mobile ---

Developing web sites to be viewed on mobile devices requires approaches that ensure a web site works as well on mobile devices as it does on desktop browsers. The following articles describe some of these approaches.

    diff --git a/files/ru/conflicting/web/http/cors/index.html b/files/ru/conflicting/web/http/cors/index.html index c3d53cb730..0d44c873b3 100644 --- a/files/ru/conflicting/web/http/cors/index.html +++ b/files/ru/conflicting/web/http/cors/index.html @@ -1,8 +1,9 @@ --- title: Server-Side Access Control (CORS) -slug: Web/HTTP/Server-Side_Access_Control +slug: conflicting/Web/HTTP/CORS translation_of: Web/HTTP/CORS translation_of_original: Web/HTTP/Server-Side_Access_Control +original_slug: Web/HTTP/Server-Side_Access_Control ---

    Системы контроля доступа производят идентификацию авторизацииаутентификацию, подтверждение доступа и подотчетность сущностей с помощью учетных данных для входа, включая пароль, личный идентификационный номер (PINs), биометрическое сканирование и физический или электронный ключ.

    diff --git a/files/ru/conflicting/web/http/csp/index.html b/files/ru/conflicting/web/http/csp/index.html index 5a3bfeae33..df563abc30 100644 --- a/files/ru/conflicting/web/http/csp/index.html +++ b/files/ru/conflicting/web/http/csp/index.html @@ -1,11 +1,12 @@ --- title: CSP (Политика Защиты Контента) -slug: Web/Security/CSP +slug: conflicting/Web/HTTP/CSP tags: - CSP - Landing translation_of: Web/HTTP/CSP translation_of_original: Web/Security/CSP +original_slug: Web/Security/CSP ---
    {{gecko_minversion_header("2.0")}}
    diff --git a/files/ru/conflicting/web/javascript/guide/index.html b/files/ru/conflicting/web/javascript/guide/index.html index a0f5770315..3e4633d7b3 100644 --- a/files/ru/conflicting/web/javascript/guide/index.html +++ b/files/ru/conflicting/web/javascript/guide/index.html @@ -1,8 +1,9 @@ --- title: Predefined Core Objects -slug: Web/JavaScript/Guide/Predefined_Core_Objects +slug: conflicting/Web/JavaScript/Guide translation_of: Web/JavaScript/Guide translation_of_original: Web/JavaScript/Guide/Predefined_Core_Objects +original_slug: Web/JavaScript/Guide/Predefined_Core_Objects ---

    Эта глава описывает предопределённые объекты в стандартном JavaScript: Array, Boolean, Date, Function, Math, Number, RegExp, и String.

    diff --git a/files/ru/conflicting/web/javascript/guide/introduction/index.html b/files/ru/conflicting/web/javascript/guide/introduction/index.html index 6d58fafb80..c8132f92df 100644 --- a/files/ru/conflicting/web/javascript/guide/introduction/index.html +++ b/files/ru/conflicting/web/javascript/guide/introduction/index.html @@ -1,8 +1,9 @@ --- title: Об этом учебнике -slug: Web/JavaScript/Guide/About +slug: conflicting/Web/JavaScript/Guide/Introduction translation_of: Web/JavaScript/Guide/Introduction translation_of_original: Web/JavaScript/Guide/About +original_slug: Web/JavaScript/Guide/About ---

    JavaScript это кросс-платформенный, объектно-ориентированный интерпретируемый язык программирования. В этом учебнике описано все, что вам нужно знать для того, чтобы начать ипользовать JavaScript.

    diff --git a/files/ru/conflicting/web/javascript/guide/introduction_6f341ba6db4b060ccbd8dce4a0d5214b/index.html b/files/ru/conflicting/web/javascript/guide/introduction_6f341ba6db4b060ccbd8dce4a0d5214b/index.html index 5db1f95ca4..2cea75700e 100644 --- a/files/ru/conflicting/web/javascript/guide/introduction_6f341ba6db4b060ccbd8dce4a0d5214b/index.html +++ b/files/ru/conflicting/web/javascript/guide/introduction_6f341ba6db4b060ccbd8dce4a0d5214b/index.html @@ -1,8 +1,9 @@ --- title: Обзор JavaScript -slug: Web/JavaScript/Guide/JavaScript_Overview +slug: conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b translation_of: Web/JavaScript/Guide/Introduction translation_of_original: Web/JavaScript/Guide/JavaScript_Overview +original_slug: Web/JavaScript/Guide/JavaScript_Overview ---

    Эта глава является введением в JavaScript и описывает некоторые из базовых понятий.

    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/boolean/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/boolean/index.html index f0188080f1..83fb169e1e 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/boolean/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/boolean/index.html @@ -1,6 +1,6 @@ --- title: Boolean.prototype -slug: Web/JavaScript/Reference/Global_Objects/Boolean/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Boolean tags: - Boolean - JavaScript @@ -8,6 +8,7 @@ tags: - Prototype translation_of: Web/JavaScript/Reference/Global_Objects/Boolean translation_of_original: Web/JavaScript/Reference/Global_Objects/Boolean/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Boolean/prototype ---
    {{JSRef("Global_Objects", "Boolean")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/date/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/date/index.html index 956a7555a1..bb3a1eb411 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/date/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/date/index.html @@ -1,6 +1,6 @@ --- title: Date.prototype -slug: Web/JavaScript/Reference/Global_Objects/Date/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Date tags: - Date - JavaScript @@ -10,6 +10,7 @@ tags: - Référence(2) translation_of: Web/JavaScript/Reference/Global_Objects/Date translation_of_original: Web/JavaScript/Reference/Global_Objects/Date/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Date/prototype ---
    {{JSRef("Global_Objects", "Date")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/error/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/error/index.html index 668277c4e0..d92653c075 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/error/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/error/index.html @@ -1,12 +1,13 @@ --- title: Error.prototype -slug: Web/JavaScript/Reference/Global_Objects/Error/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Error tags: - Error - JavaScript - Property translation_of: Web/JavaScript/Reference/Global_Objects/Error translation_of_original: Web/JavaScript/Reference/Global_Objects/Error/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Error/prototype ---
    {{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/evalerror/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/evalerror/index.html index e7de1a018e..94204588e2 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/evalerror/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/evalerror/index.html @@ -1,6 +1,6 @@ --- title: EvalError.prototype -slug: Web/JavaScript/Reference/Global_Objects/EvalError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/EvalError tags: - Error - EvalError @@ -8,6 +8,7 @@ tags: - Property translation_of: Web/JavaScript/Reference/Global_Objects/EvalError translation_of_original: Web/JavaScript/Reference/Global_Objects/EvalError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/EvalError/prototype ---
    {{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/function/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/function/index.html index acf9fc5c6e..40db9c03d2 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/function/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/function/index.html @@ -1,6 +1,6 @@ --- title: Function.prototype -slug: Web/JavaScript/Reference/Global_Objects/Function/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Function tags: - Function - JavaScript @@ -10,6 +10,7 @@ tags: - Référence(2) translation_of: Web/JavaScript/Reference/Global_Objects/Function translation_of_original: Web/JavaScript/Reference/Global_Objects/Function/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Function/prototype ---
    {{JSRef("Global_Objects", "Function")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html index b9974a46a3..7821c0d48c 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html @@ -1,8 +1,9 @@ --- title: GeneratorFunction.prototype -slug: Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/GeneratorFunction translation_of: Web/JavaScript/Reference/Global_Objects/GeneratorFunction translation_of_original: Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype ---
    {{JSRef}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/internalerror/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/internalerror/index.html index 633ffbf9fb..0aa65612d3 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/internalerror/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/internalerror/index.html @@ -1,6 +1,6 @@ --- title: InternalError.prototype -slug: Web/JavaScript/Reference/Global_Objects/InternalError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/InternalError tags: - Error - InternalError @@ -9,6 +9,7 @@ tags: - Property translation_of: Web/JavaScript/Reference/Global_Objects/InternalError translation_of_original: Web/JavaScript/Reference/Global_Objects/InternalError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/InternalError/prototype ---
    {{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}} {{non-standard_header}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/intl/collator/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/intl/collator/index.html index eb708cca36..8c3e037a3f 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/intl/collator/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/intl/collator/index.html @@ -1,6 +1,6 @@ --- title: Intl.Collator.prototype -slug: Web/JavaScript/Reference/Global_Objects/Intl/Collator/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Collator tags: - Collator - Internationalization @@ -9,6 +9,7 @@ tags: - Prototype translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Collator translation_of_original: Web/JavaScript/Reference/Global_Objects/Intl/Collator/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Intl/Collator/prototype ---
    {{JSRef("Global_Objects", "Collator", "Intl,DateTimeFormat,NumberFormat")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/intl/datetimeformat/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/intl/datetimeformat/index.html index a22ec7aeaa..7338c53fd2 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/intl/datetimeformat/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/intl/datetimeformat/index.html @@ -1,6 +1,6 @@ --- title: Intl.DateTimeFormat.prototype -slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat tags: - DateTimeFormat - Internationalization @@ -9,6 +9,7 @@ tags: - Prototype translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat translation_of_original: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/prototype ---
    {{JSRef("Global_Objects", "DateTimeFormat", "Intl,Collator,NumberFormat")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/intl/numberformat/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/intl/numberformat/index.html index fd9fbeeac8..3f5329e5fc 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/intl/numberformat/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/intl/numberformat/index.html @@ -1,6 +1,6 @@ --- title: Intl.NumberFormat.prototype -slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat tags: - Internationalization - JavaScript @@ -9,6 +9,7 @@ tags: - Prototype translation_of: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat translation_of_original: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/prototype ---
    {{JSRef("Global_Objects", "NumberFormat", "Intl,Collator,DateTimeFormat")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/map/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/map/index.html index a3af6a0c61..2cdca5b3b0 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/map/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/map/index.html @@ -1,8 +1,9 @@ --- title: Map.prototype -slug: Web/JavaScript/Reference/Global_Objects/Map/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Map translation_of: Web/JavaScript/Reference/Global_Objects/Map translation_of_original: Web/JavaScript/Reference/Global_Objects/Map/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Map/prototype ---
    {{JSRef}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/number/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/number/index.html index 259d8a3fb3..251386b750 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/number/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/number/index.html @@ -1,6 +1,6 @@ --- title: Number.prototype -slug: Web/JavaScript/Reference/Global_Objects/Number/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Number tags: - JavaScript - Number @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Number translation_of_original: Web/JavaScript/Reference/Global_Objects/Number/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Number/prototype ---
    {{JSRef("Global_Objects", "Number")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/object/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/object/index.html index aaa398171d..27b29f5934 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/object/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/object/index.html @@ -1,6 +1,6 @@ --- title: Object.prototype -slug: Web/JavaScript/Reference/Global_Objects/Object/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Object tags: - JavaScript - Object @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Object translation_of_original: Web/JavaScript/Reference/Global_Objects/Object/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Object/prototype ---
    {{JSRef("Global_Objects", "Object")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/promise/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/promise/index.html index 65384e8346..517ac975fc 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/promise/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/promise/index.html @@ -1,12 +1,13 @@ --- title: Promise.prototype -slug: Web/JavaScript/Reference/Global_Objects/Promise/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Promise tags: - JavaScript - Обещание - Свойство translation_of: Web/JavaScript/Reference/Global_Objects/Promise translation_of_original: Web/JavaScript/Reference/Global_Objects/Promise/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Promise/prototype ---
    {{JSRef}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/proxy/proxy/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/proxy/proxy/index.html index 472e9d4735..6690f5b5bf 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/proxy/proxy/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/proxy/proxy/index.html @@ -1,6 +1,6 @@ --- title: Proxy handler -slug: Web/JavaScript/Reference/Global_Objects/Proxy/handler +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy tags: - ECMAScript 2015 - JavaScript @@ -12,6 +12,7 @@ tags: - ловушки translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy translation_of_original: Web/JavaScript/Reference/Global_Objects/Proxy/handler +original_slug: Web/JavaScript/Reference/Global_Objects/Proxy/handler ---
    {{JSRef}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/rangeerror/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/rangeerror/index.html index 0e1df7fb7c..9f3a393d34 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/rangeerror/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/rangeerror/index.html @@ -1,6 +1,6 @@ --- title: RangeError.prototype -slug: Web/JavaScript/Reference/Global_Objects/RangeError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/RangeError tags: - Error - JavaScript @@ -9,6 +9,7 @@ tags: - RangeError translation_of: Web/JavaScript/Reference/Global_Objects/RangeError translation_of_original: Web/JavaScript/Reference/Global_Objects/RangeError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/RangeError/prototype ---
    {{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/referenceerror/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/referenceerror/index.html index 1c73b6cb4e..541fdaf0a1 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/referenceerror/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/referenceerror/index.html @@ -1,6 +1,6 @@ --- title: ReferenceError.prototype -slug: Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/ReferenceError tags: - Error - JavaScript @@ -9,6 +9,7 @@ tags: - ReferenceError translation_of: Web/JavaScript/Reference/Global_Objects/ReferenceError translation_of_original: Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype ---
    {{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/regexp/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/regexp/index.html index b0a655760c..8162ff726f 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/regexp/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/regexp/index.html @@ -1,6 +1,6 @@ --- title: RegExp.prototype -slug: Web/JavaScript/Reference/Global_Objects/RegExp/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/RegExp tags: - JavaScript - Property @@ -10,6 +10,7 @@ tags: - регулярные выражения translation_of: Web/JavaScript/Reference/Global_Objects/RegExp translation_of_original: Web/JavaScript/Reference/Global_Objects/RegExp/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/RegExp/prototype ---
    {{JSRef("Global_Objects", "RegExp")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/set/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/set/index.html index a09b758046..6609e026ae 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/set/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/set/index.html @@ -1,8 +1,9 @@ --- title: Set.prototype -slug: Web/JavaScript/Reference/Global_Objects/Set/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Set translation_of: Web/JavaScript/Reference/Global_Objects/Set translation_of_original: Web/JavaScript/Reference/Global_Objects/Set/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Set/prototype ---
    {{JSRef}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/string/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/string/index.html index 66537d9ae8..8a2b8f4d63 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/string/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/string/index.html @@ -1,6 +1,6 @@ --- title: String.prototype -slug: Web/JavaScript/Reference/Global_Objects/String/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/String tags: - JavaScript - Property @@ -9,6 +9,7 @@ tags: - String translation_of: Web/JavaScript/Reference/Global_Objects/String translation_of_original: Web/JavaScript/Reference/Global_Objects/String/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/String/prototype ---
    {{JSRef("Global_Objects", "String")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.html index b9ce5254e6..9da7ee5440 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/symbol/index.html @@ -1,6 +1,6 @@ --- title: Symbol.prototype -slug: Web/JavaScript/Reference/Global_Objects/Symbol/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Symbol tags: - ECMAScript6 - JavaScript @@ -8,6 +8,7 @@ tags: - Символы translation_of: Web/JavaScript/Reference/Global_Objects/Symbol translation_of_original: Web/JavaScript/Reference/Global_Objects/Symbol/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Symbol/prototype ---
    {{JSRef}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html index 840ac61f2b..20340178e9 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html @@ -1,6 +1,6 @@ --- title: SyntaxError.prototype -slug: Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError tags: - Error - JavaScript @@ -9,6 +9,7 @@ tags: - SyntaxError translation_of: Web/JavaScript/Reference/Global_Objects/SyntaxError translation_of_original: Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype ---
    {{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/typedarray/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/typedarray/index.html index 1b79a06ad9..76b18ce93b 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/typedarray/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/typedarray/index.html @@ -1,11 +1,12 @@ --- title: TypedArray.prototype -slug: Web/JavaScript/Reference/Global_Objects/TypedArray/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/TypedArray tags: - TypedArray - Типизированный массив translation_of: Web/JavaScript/Reference/Global_Objects/TypedArray translation_of_original: Web/JavaScript/Reference/Global_Objects/TypedArray/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/TypedArray/prototype ---
    {{JSRef}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/typeerror/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/typeerror/index.html index 87a22a4a94..0c83655781 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/typeerror/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/typeerror/index.html @@ -1,6 +1,6 @@ --- title: TypeError.prototype -slug: Web/JavaScript/Reference/Global_Objects/TypeError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/TypeError tags: - Error - JavaScript @@ -9,6 +9,7 @@ tags: - TypeError translation_of: Web/JavaScript/Reference/Global_Objects/TypeError translation_of_original: Web/JavaScript/Reference/Global_Objects/TypeError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/TypeError/prototype ---
    {{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/urierror/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/urierror/index.html index 9998443521..65bae4f674 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/urierror/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/urierror/index.html @@ -1,6 +1,6 @@ --- title: URIError.prototype -slug: Web/JavaScript/Reference/Global_Objects/URIError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/URIError tags: - Error - JavaScript @@ -9,6 +9,7 @@ tags: - URIError translation_of: Web/JavaScript/Reference/Global_Objects/URIError translation_of_original: Web/JavaScript/Reference/Global_Objects/URIError/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/URIError/prototype ---
    {{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/weakmap/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/weakmap/index.html index 56e1cf2fd8..aa72a7f092 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/weakmap/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/weakmap/index.html @@ -1,8 +1,9 @@ --- title: WeakMap.prototype -slug: Web/JavaScript/Reference/Global_Objects/WeakMap/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/WeakMap translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap translation_of_original: Web/JavaScript/Reference/Global_Objects/WeakMap/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/WeakMap/prototype ---
    {{JSRef}}
    diff --git a/files/ru/conflicting/web/javascript/reference/global_objects/weakset/index.html b/files/ru/conflicting/web/javascript/reference/global_objects/weakset/index.html index 00725e2331..fe31196afe 100644 --- a/files/ru/conflicting/web/javascript/reference/global_objects/weakset/index.html +++ b/files/ru/conflicting/web/javascript/reference/global_objects/weakset/index.html @@ -1,6 +1,6 @@ --- title: WeakSet.prototype -slug: Web/JavaScript/Reference/Global_Objects/WeakSet/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/WeakSet tags: - ECMAScript6 - JavaScript @@ -8,6 +8,7 @@ tags: - WeakSet translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet translation_of_original: Web/JavaScript/Reference/Global_Objects/WeakSet/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/WeakSet/prototype ---
    {{JSRef("Global_Objects", "WeakSet")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/operators/index.html b/files/ru/conflicting/web/javascript/reference/operators/index.html index f1091e3706..85a37e17a8 100644 --- a/files/ru/conflicting/web/javascript/reference/operators/index.html +++ b/files/ru/conflicting/web/javascript/reference/operators/index.html @@ -1,11 +1,12 @@ --- title: Арифметические операции -slug: Web/JavaScript/Reference/Operators/Arithmetic_Operators +slug: conflicting/Web/JavaScript/Reference/Operators tags: - JavaScript - Операторы translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Arithmetic_Operators +original_slug: Web/JavaScript/Reference/Operators/Arithmetic_Operators ---
    {{jsSidebar("Operators")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/operators_69135a8d5772f8b6e45265523df05d89/index.html b/files/ru/conflicting/web/javascript/reference/operators_69135a8d5772f8b6e45265523df05d89/index.html index ee0565dc94..a08c948525 100644 --- a/files/ru/conflicting/web/javascript/reference/operators_69135a8d5772f8b6e45265523df05d89/index.html +++ b/files/ru/conflicting/web/javascript/reference/operators_69135a8d5772f8b6e45265523df05d89/index.html @@ -1,11 +1,13 @@ --- title: Операторы сравнения -slug: Web/JavaScript/Reference/Operators/Операторы_сравнения +slug: >- + conflicting/Web/JavaScript/Reference/Operators_69135a8d5772f8b6e45265523df05d89 tags: - JavaScript - Операторы translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Comparison_Operators +original_slug: Web/JavaScript/Reference/Operators/Операторы_сравнения ---
    {{jsSidebar("Operators")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/operators_7c8eb9475d97a4a734c5991857698560/index.html b/files/ru/conflicting/web/javascript/reference/operators_7c8eb9475d97a4a734c5991857698560/index.html index ba4703c2c3..11aea9ec89 100644 --- a/files/ru/conflicting/web/javascript/reference/operators_7c8eb9475d97a4a734c5991857698560/index.html +++ b/files/ru/conflicting/web/javascript/reference/operators_7c8eb9475d97a4a734c5991857698560/index.html @@ -1,11 +1,13 @@ --- title: Битовые операции -slug: Web/JavaScript/Reference/Operators/Bitwise_Operators +slug: >- + conflicting/Web/JavaScript/Reference/Operators_7c8eb9475d97a4a734c5991857698560 tags: - JavaScript - Оператор translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Bitwise_Operators +original_slug: Web/JavaScript/Reference/Operators/Bitwise_Operators ---
    {{jsSidebar("Operators")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/operators_843c998343f0cdaa5699874c806d4cea/index.html b/files/ru/conflicting/web/javascript/reference/operators_843c998343f0cdaa5699874c806d4cea/index.html index b840f1e584..eeb43a5072 100644 --- a/files/ru/conflicting/web/javascript/reference/operators_843c998343f0cdaa5699874c806d4cea/index.html +++ b/files/ru/conflicting/web/javascript/reference/operators_843c998343f0cdaa5699874c806d4cea/index.html @@ -1,8 +1,10 @@ --- title: Логические операторы -slug: Web/JavaScript/Reference/Operators/Логические_операторы +slug: >- + conflicting/Web/JavaScript/Reference/Operators_843c998343f0cdaa5699874c806d4cea translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Logical_Operators +original_slug: Web/JavaScript/Reference/Operators/Логические_операторы ---
    {{jsSidebar("Operators")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/operators_8d54701de06af40a7c984517cbe87b3e/index.html b/files/ru/conflicting/web/javascript/reference/operators_8d54701de06af40a7c984517cbe87b3e/index.html index 5399324df0..a084333733 100644 --- a/files/ru/conflicting/web/javascript/reference/operators_8d54701de06af40a7c984517cbe87b3e/index.html +++ b/files/ru/conflicting/web/javascript/reference/operators_8d54701de06af40a7c984517cbe87b3e/index.html @@ -1,11 +1,13 @@ --- title: Операторы присваивания -slug: Web/JavaScript/Reference/Operators/Assignment_Operators +slug: >- + conflicting/Web/JavaScript/Reference/Operators_8d54701de06af40a7c984517cbe87b3e tags: - JavaScript - Оператор translation_of: Web/JavaScript/Reference/Operators#Assignment_operators translation_of_original: Web/JavaScript/Reference/Operators/Assignment_Operators +original_slug: Web/JavaScript/Reference/Operators/Assignment_Operators ---
    {{jsSidebar("Operators")}}
    diff --git a/files/ru/conflicting/web/javascript/reference/statements/switch/index.html b/files/ru/conflicting/web/javascript/reference/statements/switch/index.html index c1f3f6b923..373d7c8a17 100644 --- a/files/ru/conflicting/web/javascript/reference/statements/switch/index.html +++ b/files/ru/conflicting/web/javascript/reference/statements/switch/index.html @@ -1,6 +1,6 @@ --- title: default -slug: Web/JavaScript/Reference/Statements/default +slug: conflicting/Web/JavaScript/Reference/Statements/switch tags: - JavaScript - Keyword @@ -8,6 +8,7 @@ tags: - export translation_of: Web/JavaScript/Reference/Statements/switch translation_of_original: Web/JavaScript/Reference/Statements/default +original_slug: Web/JavaScript/Reference/Statements/default ---
    {{jsSidebar("Statements")}}
    diff --git a/files/ru/conflicting/web/media/formats/index.html b/files/ru/conflicting/web/media/formats/index.html index 9f86b15ff2..a6ae3f4e38 100644 --- a/files/ru/conflicting/web/media/formats/index.html +++ b/files/ru/conflicting/web/media/formats/index.html @@ -1,8 +1,9 @@ --- title: Форматы медиа поддерживаемые HTML audio и video элементами -slug: Web/HTML/Поддерживаемые_медиа_форматы +slug: conflicting/Web/Media/Formats translation_of: Web/Media/Formats translation_of_original: Web/HTML/Supported_media_formats +original_slug: Web/HTML/Поддерживаемые_медиа_форматы ---

    {{ HTMLElement("audio") }} и {{ HTMLElement("video") }} элементы предоставляют поддержку для проигрывания аудио и видео медиа без нужды в плагинах. Формат медиафайла состоит из контейнера, содержащего один или несколько потоков данных, закодированных с использованием формата сжатия, называемого кодеком. Контейнер идентифицируется по расширению файла. Потоки внутри контейнера имеют несколько типов, которые могут включать в себя видео, аудио, данные или титры. Один контейнер (т. е. медиафайл) может содержать несколько потоков одного типа. В аудио- и видео- потоках находятся кодеки. Кодек — сокращенние слов "кодера-декодер" — является алгоритмом сжатия данных в файле. Каждый тип контейнера имеет только определенные кодеки, которые он поддерживает.

    diff --git a/files/ru/conflicting/web/progressive_web_apps/index.html b/files/ru/conflicting/web/progressive_web_apps/index.html index 8d8c8ba678..ff8150db65 100644 --- a/files/ru/conflicting/web/progressive_web_apps/index.html +++ b/files/ru/conflicting/web/progressive_web_apps/index.html @@ -1,8 +1,9 @@ --- title: Адаптивный дизайн -slug: Web_Development/Mobile/Responsive_design +slug: conflicting/Web/Progressive_web_apps translation_of: Web/Progressive_web_apps translation_of_original: Web/Guide/Responsive_design +original_slug: Web_Development/Mobile/Responsive_design ---

    As a reaction to the problems associated with the separate sites approach to developing Web sites for both mobile and desktop, a relatively new idea (which is actually quite old) is growing in popularity: ditch user-agent detection, and instead make your page respond on the client-side to the browser’s capabilities. This approach, introduced by Ethan Marcotte in his article for A List Apart, came to be known as Responsive Web Design. Like the separate sites approach, responsive Web design has positive and negative aspects.

    The Advantages

    diff --git a/files/ru/conflicting/web/progressive_web_apps_628955cdadd77b10ec99de034fc76374/index.html b/files/ru/conflicting/web/progressive_web_apps_628955cdadd77b10ec99de034fc76374/index.html index 1ed152b1e8..26b2ec685c 100644 --- a/files/ru/conflicting/web/progressive_web_apps_628955cdadd77b10ec99de034fc76374/index.html +++ b/files/ru/conflicting/web/progressive_web_apps_628955cdadd77b10ec99de034fc76374/index.html @@ -1,6 +1,6 @@ --- title: Заметный -slug: Web/Progressive_web_apps/Заметный +slug: conflicting/Web/Progressive_web_apps_628955cdadd77b10ec99de034fc76374 tags: - Веб-манифест - Видимый @@ -10,6 +10,7 @@ tags: - Современные веб-приложения translation_of: Web/Progressive_web_apps translation_of_original: Web/Progressive_web_apps/Discoverable +original_slug: Web/Progressive_web_apps/Заметный ---
    Как только вы опубликуете новое веб-приложение, вы захотите, чтобы мир узнал об этом. Поисковые системы, конечно, помогают, но, обычно, большее внимание уделяется тому, как Ваши приложения представлены на результатах поиска. Новый манифест W3C для веб-приложений может помочь с этим и предоставить дополнительные возможности.
    diff --git a/files/ru/games/anatomy/index.html b/files/ru/games/anatomy/index.html index 0396fc4159..6935f33666 100644 --- a/files/ru/games/anatomy/index.html +++ b/files/ru/games/anatomy/index.html @@ -1,7 +1,8 @@ --- title: Анатомия видеоигры -slug: Games/Анатомия +slug: Games/Anatomy translation_of: Games/Anatomy +original_slug: Games/Анатомия ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/introduction/index.html b/files/ru/games/introduction/index.html index 65d1aed2c0..56359a41eb 100644 --- a/files/ru/games/introduction/index.html +++ b/files/ru/games/introduction/index.html @@ -1,11 +1,12 @@ --- title: Ввод в разработку Web-игр -slug: Games/Ввод +slug: Games/Introduction tags: - Firefox OS - Игры - уроки translation_of: Games/Introduction +original_slug: Games/Ввод ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tools/asm.js/index.html b/files/ru/games/tools/asm.js/index.html index 3f9b2afde0..08e08bb6bc 100644 --- a/files/ru/games/tools/asm.js/index.html +++ b/files/ru/games/tools/asm.js/index.html @@ -1,11 +1,12 @@ --- title: asm.js -slug: Games/Инструменты/asm.js +slug: Games/Tools/asm.js tags: - JavaScript - WebAssembly - asm.js translation_of: Games/Tools/asm.js +original_slug: Games/Инструменты/asm.js ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tools/index.html b/files/ru/games/tools/index.html index 8981085874..8129376e06 100644 --- a/files/ru/games/tools/index.html +++ b/files/ru/games/tools/index.html @@ -1,7 +1,8 @@ --- title: Инструменты для разработки игр -slug: Games/Инструменты +slug: Games/Tools translation_of: Games/Tools +original_slug: Games/Инструменты ---
    {{GamesSidebar}}
    {{IncludeSubnav("/en-US/docs/Games")}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/bounce_off_the_walls/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/bounce_off_the_walls/index.html index aedabaaf25..0b945f61fc 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/bounce_off_the_walls/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/bounce_off_the_walls/index.html @@ -1,7 +1,8 @@ --- title: Отскакивания -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Bounce_off_the_walls +slug: Games/Tutorials/2D_breakout_game_Phaser/Bounce_off_the_walls translation_of: Games/Tutorials/2D_breakout_game_Phaser/Bounce_off_the_walls +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Bounce_off_the_walls ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/build_the_brick_field/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/build_the_brick_field/index.html index ffdd6c1d6d..4b68f11f31 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/build_the_brick_field/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/build_the_brick_field/index.html @@ -1,7 +1,8 @@ --- title: Создание кирпичей -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Создание_кирпичей +slug: Games/Tutorials/2D_breakout_game_Phaser/Build_the_brick_field translation_of: Games/Tutorials/2D_breakout_game_Phaser/Build_the_brick_field +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Создание_кирпичей ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/collision_detection/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/collision_detection/index.html index e3fb27724b..f8bf45148e 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/collision_detection/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/collision_detection/index.html @@ -1,7 +1,8 @@ --- title: Обработка коллизий -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Обработка_коллизий +slug: Games/Tutorials/2D_breakout_game_Phaser/Collision_detection translation_of: Games/Tutorials/2D_breakout_game_Phaser/Collision_detection +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Обработка_коллизий ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/extra_lives/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/extra_lives/index.html index b6bb403469..94734655f6 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/extra_lives/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/extra_lives/index.html @@ -1,7 +1,8 @@ --- title: Жизни -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Жизни +slug: Games/Tutorials/2D_breakout_game_Phaser/Extra_lives translation_of: Games/Tutorials/2D_breakout_game_Phaser/Extra_lives +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Жизни ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/game_over/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/game_over/index.html index a617f8969d..1916b9b931 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/game_over/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/game_over/index.html @@ -1,7 +1,8 @@ --- title: Game over -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Game_over +slug: Games/Tutorials/2D_breakout_game_Phaser/Game_over translation_of: Games/Tutorials/2D_breakout_game_Phaser/Game_over +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Game_over ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/index.html index 05a0439cc7..c99663b5ef 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/index.html @@ -1,6 +1,6 @@ --- title: 2D игра на Phaser -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser +slug: Games/Tutorials/2D_breakout_game_Phaser tags: - 2D - Canvas @@ -11,6 +11,7 @@ tags: - Руководство - туториал translation_of: Games/Tutorials/2D_breakout_game_Phaser +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/initialize_the_framework/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/initialize_the_framework/index.html index bf1fac5bfc..aab8ab6cf4 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/initialize_the_framework/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/initialize_the_framework/index.html @@ -1,6 +1,6 @@ --- title: Инициализация фреймворка -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Initialize_the_framework +slug: Games/Tutorials/2D_breakout_game_Phaser/Initialize_the_framework tags: - 2D - Canvas @@ -10,6 +10,7 @@ tags: - Игры - Руководство translation_of: Games/Tutorials/2D_breakout_game_Phaser/Initialize_the_framework +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Initialize_the_framework ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/load_the_assets_and_print_them_on_screen/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/load_the_assets_and_print_them_on_screen/index.html index 57274a84c0..278bc8c91c 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/load_the_assets_and_print_them_on_screen/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/load_the_assets_and_print_them_on_screen/index.html @@ -1,7 +1,7 @@ --- title: Загрузка ресурсов и их вывод slug: >- - Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Load_the_assets_and_print_them_on_screen + Games/Tutorials/2D_breakout_game_Phaser/Load_the_assets_and_print_them_on_screen tags: - 2D - Canvas @@ -9,6 +9,8 @@ tags: - Phaser translation_of: >- Games/Tutorials/2D_breakout_game_Phaser/Load_the_assets_and_print_them_on_screen +original_slug: >- + Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Load_the_assets_and_print_them_on_screen ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/move_the_ball/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/move_the_ball/index.html index deed4a9494..38f9ccd46a 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/move_the_ball/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/move_the_ball/index.html @@ -1,6 +1,6 @@ --- title: Движение мяча -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Move_the_ball +slug: Games/Tutorials/2D_breakout_game_Phaser/Move_the_ball tags: - 2D - Beginner @@ -8,6 +8,7 @@ tags: - JavaScript - Phaser translation_of: Games/Tutorials/2D_breakout_game_Phaser/Move_the_ball +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Move_the_ball ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/physics/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/physics/index.html index 20acffa239..d7acbb92d3 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/physics/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/physics/index.html @@ -1,6 +1,6 @@ --- title: Физика -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Physics +slug: Games/Tutorials/2D_breakout_game_Phaser/Physics tags: - 2D - Beginner @@ -8,6 +8,7 @@ tags: - JavaScript - Phaser translation_of: Games/Tutorials/2D_breakout_game_Phaser/Physics +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Physics ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/player_paddle_and_controls/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/player_paddle_and_controls/index.html index 46713cdddb..35001ea66d 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/player_paddle_and_controls/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/player_paddle_and_controls/index.html @@ -1,7 +1,8 @@ --- title: Платформа и управление -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Платформа_и_управление +slug: Games/Tutorials/2D_breakout_game_Phaser/Player_paddle_and_controls translation_of: Games/Tutorials/2D_breakout_game_Phaser/Player_paddle_and_controls +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Платформа_и_управление ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/scaling/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/scaling/index.html index 395e9f52de..78495b48fa 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/scaling/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/scaling/index.html @@ -1,6 +1,6 @@ --- title: Масштабирование -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Scaling +slug: Games/Tutorials/2D_breakout_game_Phaser/Scaling tags: - 2D - Canvas @@ -8,6 +8,7 @@ tags: - Phaser - Начинающий translation_of: Games/Tutorials/2D_breakout_game_Phaser/Scaling +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Scaling ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/the_score/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/the_score/index.html index 9f4b18ace1..e7a01d4c61 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/the_score/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/the_score/index.html @@ -1,7 +1,8 @@ --- title: Очки -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Очки +slug: Games/Tutorials/2D_breakout_game_Phaser/The_score translation_of: Games/Tutorials/2D_breakout_game_Phaser/The_score +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Очки ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_phaser/win_the_game/index.html b/files/ru/games/tutorials/2d_breakout_game_phaser/win_the_game/index.html index 21ff763bbf..72e57116a1 100644 --- a/files/ru/games/tutorials/2d_breakout_game_phaser/win_the_game/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_phaser/win_the_game/index.html @@ -1,7 +1,8 @@ --- title: Победа -slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Победа +slug: Games/Tutorials/2D_breakout_game_Phaser/Win_the_game translation_of: Games/Tutorials/2D_breakout_game_Phaser/Win_the_game +original_slug: Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Победа ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/build_the_brick_field/index.html b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/build_the_brick_field/index.html index 91c7ea5405..c2b6c134d0 100644 --- a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/build_the_brick_field/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/build_the_brick_field/index.html @@ -1,7 +1,8 @@ --- title: Создаем зону кирпичей -slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Создаем_зону_кирпичей +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Build_the_brick_field translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Build_the_brick_field +original_slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Создаем_зону_кирпичей ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/collision_detection/index.html b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/collision_detection/index.html index 576f17e7cc..3f03e0f748 100644 --- a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/collision_detection/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/collision_detection/index.html @@ -1,7 +1,8 @@ --- title: Обнаружение столкновений -slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Обнаружение_столкновений +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Collision_detection translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Collision_detection +original_slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Обнаружение_столкновений ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/create_the_canvas_and_draw_on_it/index.html b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/create_the_canvas_and_draw_on_it/index.html index 84f23b0e2a..aa69757156 100644 --- a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/create_the_canvas_and_draw_on_it/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/create_the_canvas_and_draw_on_it/index.html @@ -1,7 +1,7 @@ --- title: Создание Canvas и рисование на нём slug: >- - Games/Tutorials/2D_Breakout_game_pure_JavaScript/Создание_Canvas_и_рисование_на_нём + Games/Tutorials/2D_Breakout_game_pure_JavaScript/Create_the_Canvas_and_draw_on_it tags: - JavaScript - Игры @@ -9,6 +9,8 @@ tags: - создание игр translation_of: >- Games/Tutorials/2D_Breakout_game_pure_JavaScript/Create_the_Canvas_and_draw_on_it +original_slug: >- + Games/Tutorials/2D_Breakout_game_pure_JavaScript/Создание_Canvas_и_рисование_на_нём ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/finishing_up/index.html b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/finishing_up/index.html index d8f40896e1..6a62e46e4e 100644 --- a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/finishing_up/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/finishing_up/index.html @@ -1,12 +1,13 @@ --- title: Заключение -slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Заключение +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Finishing_up tags: - Игры - Канва - Начинающий - жизни translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Finishing_up +original_slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Заключение ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.html b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.html index b3ab4efaca..50ed197298 100644 --- a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.html @@ -1,12 +1,13 @@ --- title: Управление мышью -slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Управление_мышью +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Mouse_controls tags: - Игры - Начинающий - канвас - мышь translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Mouse_controls +original_slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Управление_мышью ---
    {{GamesSidebar}}
    diff --git a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/move_the_ball/index.html b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/move_the_ball/index.html index f6d26cfc52..45f650d6b4 100644 --- a/files/ru/games/tutorials/2d_breakout_game_pure_javascript/move_the_ball/index.html +++ b/files/ru/games/tutorials/2d_breakout_game_pure_javascript/move_the_ball/index.html @@ -1,6 +1,6 @@ --- title: Переместить мяч -slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Переместить_мяч +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Move_the_ball tags: - 2D - Canvas @@ -10,6 +10,7 @@ tags: - передвижение - пишем игру на javascript translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Move_the_ball +original_slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Переместить_мяч ---
    {{GamesSidebar}}
    diff --git a/files/ru/glossary/404/index.html b/files/ru/glossary/404/index.html index f198be3c1c..aa92181684 100644 --- a/files/ru/glossary/404/index.html +++ b/files/ru/glossary/404/index.html @@ -1,7 +1,8 @@ --- title: '404' -slug: Словарь/404 +slug: Glossary/404 translation_of: Glossary/404 +original_slug: Словарь/404 ---

    Ошибка 404 - код стандартного ответа, означающий, что {{Glossary("Server", "сервер")}} не может найти ресурс по запрашиваемому адресу.

    diff --git a/files/ru/glossary/502/index.html b/files/ru/glossary/502/index.html index 5879d7c153..e7419ccf16 100644 --- a/files/ru/glossary/502/index.html +++ b/files/ru/glossary/502/index.html @@ -1,11 +1,12 @@ --- title: Код ошибки 502 -slug: Словарь/502 +slug: Glossary/502 tags: - '502' - Глоссарий - Коды ошибок HTTP translation_of: Glossary/502 +original_slug: Словарь/502 ---

    Код ошибки в протоколе {{Glossary("HTTP")}}, означающий "Ошибка шлюза".

    diff --git a/files/ru/glossary/abstraction/index.html b/files/ru/glossary/abstraction/index.html index 860db30148..4fdfba39c1 100644 --- a/files/ru/glossary/abstraction/index.html +++ b/files/ru/glossary/abstraction/index.html @@ -1,7 +1,8 @@ --- title: Абстракция -slug: Словарь/Abstraction +slug: Glossary/Abstraction translation_of: Glossary/Abstraction +original_slug: Словарь/Abstraction ---

    Абстракция(обобщение) в {{Glossary("computer programming", "программировании")}} это способ дать упрощённое представление о компонентах системы, скрыть их сложность и детали реализации, предоставив подходящий {{Glossary("API", "программный интерфейс")}}.

    diff --git a/files/ru/glossary/accessibility/index.html b/files/ru/glossary/accessibility/index.html index 2d2b7fc6da..5c9ab60f03 100644 --- a/files/ru/glossary/accessibility/index.html +++ b/files/ru/glossary/accessibility/index.html @@ -1,11 +1,12 @@ --- title: Accessibility -slug: Словарь/Доступность +slug: Glossary/Accessibility tags: - Доступность web-контента - Словарь - доступность translation_of: Glossary/Accessibility +original_slug: Словарь/Доступность ---

    Accessibility (Web Accessibility, A11Y - "Доступность Web-контента") - регламентирует лучшие практики обеспечения работоспособности и доступности сайта вне зависимости от физических и технических ограничений. Web Accessibility описывается и обсуждается в рамках Инициативы по обеспечению доступности {{Glossary("W3С")}} ({{Glossary("WAI","Web Accessibility Initiative (WAI)")}}).

    diff --git a/files/ru/glossary/adobe_flash/index.html b/files/ru/glossary/adobe_flash/index.html index 645dc39095..d9b241ab93 100644 --- a/files/ru/glossary/adobe_flash/index.html +++ b/files/ru/glossary/adobe_flash/index.html @@ -1,12 +1,13 @@ --- title: Adobe Flash -slug: Словарь/Adobe-Flash +slug: Glossary/Adobe_Flash tags: - Adobe - Flash - Словарь - инфраструктура translation_of: Glossary/Adobe_Flash +original_slug: Словарь/Adobe-Flash ---

    Adobe Flash, Flash - устаревшая технология, разработанная Adobe, благодаря которой стали возможными {{Interwiki("wikipedia", "Rich Internet Application", "RIA")}} (Rich Internet Application), векторная графика и мультимедия. Для использования Flash необходимо установить соответствующий плагин в ваш {{Glossary("Browser","браузер")}}.

    diff --git a/files/ru/glossary/ajax/index.html b/files/ru/glossary/ajax/index.html index 6c727c56cf..bd13d82abd 100644 --- a/files/ru/glossary/ajax/index.html +++ b/files/ru/glossary/ajax/index.html @@ -1,12 +1,13 @@ --- title: AJAX -slug: Словарь/AJAX +slug: Glossary/AJAX tags: - AJAX - Glossary - Словарь - инфраструктура translation_of: Glossary/AJAX +original_slug: Словарь/AJAX ---

    Асинхронный {{Glossary ("JavaScript")}} And {{Glossary ("XML")}} (AJAX) - это практика программирования для создания более сложных, динамических веб-страниц с использованием технологии, известной как {{Glossary("XHR_(XMLHttpRequest)","XMLHttpRequest")}}..

    diff --git a/files/ru/glossary/algorithm/index.html b/files/ru/glossary/algorithm/index.html index 83fc20ca7e..61cd5b1a56 100644 --- a/files/ru/glossary/algorithm/index.html +++ b/files/ru/glossary/algorithm/index.html @@ -1,11 +1,12 @@ --- title: Алгоритм -slug: Словарь/Algorithm +slug: Glossary/Algorithm tags: - CodingScripting - Glossary - Словарь translation_of: Glossary/Algorithm +original_slug: Словарь/Algorithm ---

    Алгоритм - это независимая серия инструкций для выполнения функции.

    diff --git a/files/ru/glossary/api/index.html b/files/ru/glossary/api/index.html index b83cecf0fe..621cdec35b 100644 --- a/files/ru/glossary/api/index.html +++ b/files/ru/glossary/api/index.html @@ -1,10 +1,11 @@ --- title: API -slug: Словарь/API +slug: Glossary/API tags: - Словарь - инфраструктура translation_of: Glossary/API +original_slug: Словарь/API ---

    API (Application Programming Interface - интерфейс программных приложений )   это установка функций и правил позволяющая взаимодействовать между программным обеспечением, которое предоставляет API и другими программными компонентами. В Веб разработке, под API обычно подразумевают набор стандартных методов, свойств, событий и URL ссылок для взаимодействия с Веб контентом.

    diff --git a/files/ru/glossary/apple_safari/index.html b/files/ru/glossary/apple_safari/index.html index fafc97520d..bac747d02f 100644 --- a/files/ru/glossary/apple_safari/index.html +++ b/files/ru/glossary/apple_safari/index.html @@ -1,6 +1,6 @@ --- title: Apple Safari -slug: Словарь/Apple_Safari +slug: Glossary/Apple_Safari tags: - Glossary - Navigation @@ -8,6 +8,7 @@ tags: - Навигация - Словарь translation_of: Glossary/Apple_Safari +original_slug: Словарь/Apple_Safari ---

    Safari (Сафари) - это {{Glossary("Browser","веб-браузер")}} разработанный компанией Apple, входит в состав операционных систем Mac OS X и iOS. Safari работает на движке WebKit.

    diff --git a/files/ru/glossary/application_context/index.html b/files/ru/glossary/application_context/index.html index f14a41fa76..9989eea079 100644 --- a/files/ru/glossary/application_context/index.html +++ b/files/ru/glossary/application_context/index.html @@ -1,11 +1,12 @@ --- title: Контекст приложения -slug: Словарь/application_context +slug: Glossary/application_context tags: - CodingScripting - Glossary - Словарь translation_of: Glossary/application_context +original_slug: Словарь/application_context ---

    Контекст приложения - это  browsing context (контекст просмотра) верхнего уровня, к которому применяется манифест

    diff --git a/files/ru/glossary/argument/index.html b/files/ru/glossary/argument/index.html index c1314c28f9..ae32934042 100644 --- a/files/ru/glossary/argument/index.html +++ b/files/ru/glossary/argument/index.html @@ -1,11 +1,12 @@ --- title: Аргумент -slug: Словарь/Аргумент +slug: Glossary/Argument tags: - CodingScripting - Glossary - JavaScript translation_of: Glossary/Argument +original_slug: Словарь/Аргумент ---

    Аргумент - это {{glossary("value")}} ({{Glossary("primitive")}} или {{Glossary("object")}}) , переданное в качестве входных данных в {{Glossary("function")}}.

    diff --git a/files/ru/glossary/aria/index.html b/files/ru/glossary/aria/index.html index 3571787b67..cc5265c347 100644 --- a/files/ru/glossary/aria/index.html +++ b/files/ru/glossary/aria/index.html @@ -1,12 +1,13 @@ --- title: ARIA -slug: Словарь/ARIA +slug: Glossary/ARIA tags: - Accessibility - Glossary - Словарь - доступность translation_of: Glossary/ARIA +original_slug: Словарь/ARIA ---

    ARIA (Accessible Rich {{glossary("Internet")}} Applications) является {{Glossary("W3C")}} спецификацией для добавления семантики и других метаданных в {{Glossary("HTML")}} при использовании вспомогательных технологий.

    diff --git a/files/ru/glossary/arpa/index.html b/files/ru/glossary/arpa/index.html index 4de5199f91..0e56b840f5 100644 --- a/files/ru/glossary/arpa/index.html +++ b/files/ru/glossary/arpa/index.html @@ -1,12 +1,13 @@ --- title: ARPA -slug: Словарь/ARPA +slug: Glossary/ARPA tags: - Glossary - Infrastructure - Словарь - инфраструктура translation_of: Glossary/ARPA +original_slug: Словарь/ARPA ---

    .arpa (address and routing parameter area) является {{glossary("TLD","доменом верхнего уровня")}}, который используется в интернет-инфраструктуре, особенно в обратном DNS запросе (т.е., определить {{glossary("domain name", "имя домена")}} для заданного {{glossary("IP address", "IP адреса")}}).

    diff --git a/files/ru/glossary/arpanet/index.html b/files/ru/glossary/arpanet/index.html index e3261c859a..c4b205ef8a 100644 --- a/files/ru/glossary/arpanet/index.html +++ b/files/ru/glossary/arpanet/index.html @@ -1,12 +1,13 @@ --- title: Arpanet -slug: Словарь/Arpanet +slug: Glossary/Arpanet tags: - Glossary - Infrastructure - Словарь - инфраструктура translation_of: Glossary/Arpanet +original_slug: Словарь/Arpanet ---

    Компьютерная сеть ARPAnet (advanced research projects agency network) является одной из первых компьютерных сетей, была создана в 1969 как надежная среда для передачи конфиденциальных военных данных и для подключения ведущих исследовательских групп по всей территории Соединенных Штатов. Изначально ARPAnet использовал NCP (протокол сетевого управления), а затем первую версию интернет-протокола или пакета {{glossary ("TCP")}} / {{glossary ("IPv6", "IP")}}, что делает ARPAnet выдающейся частью зарождающегося {{glossary("Internet","Интернета")}}. ARPAnet была закрыта в начале 1990 года.

    diff --git a/files/ru/glossary/array/index.html b/files/ru/glossary/array/index.html index 3fb91ee460..ceeeb06fb1 100644 --- a/files/ru/glossary/array/index.html +++ b/files/ru/glossary/array/index.html @@ -1,12 +1,13 @@ --- title: Maccив -slug: Словарь/Массив +slug: Glossary/array tags: - JavaScript - - 'Массив,' + - Массив, - Программирование - Словарь translation_of: Glossary/array +original_slug: Словарь/Массив ---

    Массив это упорядоченный набор информации (смотрите еще {{Glossary("Примитив")}} или {{Glossary("Объект")}} зависит от языка). Массивы используются, что сохранять множество значений или единичные переменные. Это относится к переменным, которые могут сохранять только одно значение.

    diff --git a/files/ru/glossary/ascii/index.html b/files/ru/glossary/ascii/index.html index a0b95692b3..92422b71da 100644 --- a/files/ru/glossary/ascii/index.html +++ b/files/ru/glossary/ascii/index.html @@ -1,10 +1,11 @@ --- title: ASCII -slug: Словарь/ASCII +slug: Glossary/ASCII tags: - Glossary - Infrastructure translation_of: Glossary/ASCII +original_slug: Словарь/ASCII ---

    ASCII (American Standard Code for Information Interchange) это один из самых известных методов кодирования, используемый компьютерами для превращения букв, чисел, знаков препинания и кодов управления в цифровую форму. С 2007, {{Glossary("UTF-8")}} заменил его в Web.

    diff --git a/files/ru/glossary/asynchronous/index.html b/files/ru/glossary/asynchronous/index.html index 36ca8210e4..573b4a3d93 100644 --- a/files/ru/glossary/asynchronous/index.html +++ b/files/ru/glossary/asynchronous/index.html @@ -1,11 +1,12 @@ --- title: Асинхронный -slug: Словарь/Asynchronous +slug: Glossary/Asynchronous tags: - Glossary - Web - WebMechanics translation_of: Glossary/Asynchronous +original_slug: Словарь/Asynchronous ---

    Асинхронный относится к среде связи, где каждый участник получает и обрабатывает сообщение, когда это удобно, или возможно, а не сразу.

    diff --git a/files/ru/glossary/atag/index.html b/files/ru/glossary/atag/index.html index 9723709297..d282b4ecc8 100644 --- a/files/ru/glossary/atag/index.html +++ b/files/ru/glossary/atag/index.html @@ -1,6 +1,6 @@ --- title: ATAG -slug: Словарь/ATAG +slug: Glossary/ATAG tags: - ATAG - Accessibility @@ -9,6 +9,7 @@ tags: - Общедоступность - Словарь translation_of: Glossary/ATAG +original_slug: Словарь/ATAG ---

    ATAG (Authoring Tool {{glossary("Accessibility")}} Guidelines) - это {{Glossary("W3C")}} рекомендации для создания общедоступных инструментов разработчика, которые создают общедоступный контент.

    diff --git a/files/ru/glossary/attribute/index.html b/files/ru/glossary/attribute/index.html index c7b35806e5..28c88e31b1 100644 --- a/files/ru/glossary/attribute/index.html +++ b/files/ru/glossary/attribute/index.html @@ -1,10 +1,11 @@ --- title: Атрибут -slug: Словарь/Атрибут +slug: Glossary/Attribute tags: - HTML - Словарь translation_of: Glossary/Attribute +original_slug: Словарь/Атрибут ---

    Атрибут является частью {{Glossary("tag", "тега")}}, позволяющей менять его поведение или добавлять метаданные. Атрибут всегда представлен в виде название=значение, которые определяют соответственно идентификатор атрибута и присвоенное ему значение.

    diff --git a/files/ru/glossary/bandwidth/index.html b/files/ru/glossary/bandwidth/index.html index ec85dd71fd..63d30b2a49 100644 --- a/files/ru/glossary/bandwidth/index.html +++ b/files/ru/glossary/bandwidth/index.html @@ -1,10 +1,11 @@ --- title: Пропускная способность -slug: Словарь/Bandwidth +slug: Glossary/Bandwidth tags: - Глоссарий - инфраструктура translation_of: Glossary/Bandwidth +original_slug: Словарь/Bandwidth ---

    Пропускная способность (скорость передачи данных) - мера количества информции, которая может быть передана по каналу связи за заданный промежуток времени. Обычно измеряется в величинах, кратных битам в секунду (бит/с), например в мегабитах (Мбит/с) или гигабитах (Гбит/с) в секунду.

    diff --git a/files/ru/glossary/base64/index.html b/files/ru/glossary/base64/index.html index b85f3671ef..248dcbbf87 100644 --- a/files/ru/glossary/base64/index.html +++ b/files/ru/glossary/base64/index.html @@ -1,7 +1,8 @@ --- title: Кодирование и декодирование в формате Base64 -slug: Web/API/WindowBase64/Base64_encoding_and_decoding +slug: Glossary/Base64 translation_of: Glossary/Base64 +original_slug: Web/API/WindowBase64/Base64_encoding_and_decoding ---

    Base64 - это группа cхожих binary-to-text encoding схем, которые представляют двоичные данные в ASCII-формате методом перевода в radix-64 представление. Термин Base64 происходит от a specific MIME content transfer encoding.

    diff --git a/files/ru/glossary/baseline/index.html b/files/ru/glossary/baseline/index.html index 38a90cea5d..d17f1c57e1 100644 --- a/files/ru/glossary/baseline/index.html +++ b/files/ru/glossary/baseline/index.html @@ -1,6 +1,6 @@ --- title: Baseline -slug: Словарь/baseline +slug: Glossary/baseline tags: - CSS - SVG @@ -8,6 +8,7 @@ tags: - Глоссарий - типография translation_of: Glossary/baseline +original_slug: Словарь/baseline ---

    Базовая линия - это термин, используемый в европейской и западно-азиатской типографии, означающий воображаемую линию, на которую опираются символы шрифта.

    diff --git a/files/ru/glossary/bidi/index.html b/files/ru/glossary/bidi/index.html index ee2b409eb7..cbac07f584 100644 --- a/files/ru/glossary/bidi/index.html +++ b/files/ru/glossary/bidi/index.html @@ -1,12 +1,13 @@ --- title: BiDi -slug: Словарь/BiDi +slug: Glossary/BiDi tags: - Accessibility - Glossary - Общедоступность - Словарь translation_of: Glossary/BiDi +original_slug: Словарь/BiDi ---

    BiDi (BiDirectional) относится к документу, содержащему текст справа налево и слева направо. Даже когда оба направления встречаются в одном и том же абзаце, текст на каждом языке должен отображаться в правильной направленности.

    diff --git a/files/ru/glossary/bigint/index.html b/files/ru/glossary/bigint/index.html index cf03adc216..9a2440c6cf 100644 --- a/files/ru/glossary/bigint/index.html +++ b/files/ru/glossary/bigint/index.html @@ -1,12 +1,13 @@ --- title: BigInt -slug: Словарь/BigInt +slug: Glossary/BigInt tags: - BigInt - JavaScript - Глоссарий - Длинная арифметика translation_of: Glossary/BigInt +original_slug: Словарь/BigInt ---

    В {{Glossary("JavaScript")}}, BigInt - числовой тип данных, который может представлять данные в формате длинной арифметики. В других языках программирования могут быть другие числовые типы, например целые числа, числа с плавающей запятой, числа двойной точности, большие числа.

    diff --git a/files/ru/glossary/blink/index.html b/files/ru/glossary/blink/index.html index 005f5ef336..a594d5cd1a 100644 --- a/files/ru/glossary/blink/index.html +++ b/files/ru/glossary/blink/index.html @@ -1,7 +1,8 @@ --- title: Blink -slug: Словарь/Blink +slug: Glossary/Blink translation_of: Glossary/Blink +original_slug: Словарь/Blink ---

    Blink - это браузерный движок с открытым исходным кодом разработанный Google как часть Chromium (и следовательно как часть Chrome). Конкретней, Blink - это ответвление WebCore библиотеки {{glossary("WebKit")}}, поддерживающей макет, рендеринг, и {{Glossary("DOM")}}.

    diff --git a/files/ru/glossary/block/scripting/index.html b/files/ru/glossary/block/scripting/index.html index 71e5b54af7..0a75dfa2e1 100644 --- a/files/ru/glossary/block/scripting/index.html +++ b/files/ru/glossary/block/scripting/index.html @@ -1,11 +1,12 @@ --- title: Блок (скриптинг) -slug: Glossary/Block/Скриптинг +slug: Glossary/Block/Scripting tags: - JavaScript - Глоссарий - Словарь translation_of: Glossary/Block/Scripting +original_slug: Glossary/Block/Скриптинг ---

    В {{glossary("JavaScript")}} блок это набор связанных {{glossary("statement","statements")}} заключенных в скобки ("{}"). Например, можно поместить блок инструкций после блока {{jsxref("Statements/if...else","if (condition)")}}, чтобы интерпретатор выполнял код в блоке, если условие имеет значение true, или пропускал целый блок, если значение условия false.

    diff --git a/files/ru/glossary/boolean/index.html b/files/ru/glossary/boolean/index.html index f89e0ff8b1..239f003788 100644 --- a/files/ru/glossary/boolean/index.html +++ b/files/ru/glossary/boolean/index.html @@ -1,6 +1,6 @@ --- -title: 'Boolean (Булев, Логический тип данных)' -slug: Словарь/Boolean +title: Boolean (Булев, Логический тип данных) +slug: Glossary/Boolean tags: - Boolean - JavaScript @@ -9,6 +9,7 @@ tags: - Типы данных - языки программирования translation_of: Glossary/Boolean +original_slug: Словарь/Boolean ---

    Boolean (Булев, Логический тип данных) — примитивный тип данных в информатике, которые могут принимать два возможных значения, иногда называемых истиной (true) и ложью (false). Например, в JavaScript Булевы состояния часто используются для того, чтобы определить какие части кода выполнять (например, в операторах if) или повторять (например, циклы for).

    diff --git a/files/ru/glossary/bootstrap/index.html b/files/ru/glossary/bootstrap/index.html index ef1da85d02..7b85ce61f6 100644 --- a/files/ru/glossary/bootstrap/index.html +++ b/files/ru/glossary/bootstrap/index.html @@ -1,6 +1,6 @@ --- title: Bootstrap -slug: Словарь/Bootstrap +slug: Glossary/Bootstrap tags: - Bootstrap - CSS @@ -8,6 +8,7 @@ tags: - Словарь - фреймворк translation_of: Glossary/Bootstrap +original_slug: Словарь/Bootstrap ---

    Bootstrap - это бесплатный фреймворк {{Glossary("HTML")}} , {{Glossary("CSS")}} и {{Glossary("JavaScript")}} с открытым исходным кодом для быстрого создания адаптивных веб-сайтов.

    diff --git a/files/ru/glossary/browser/index.html b/files/ru/glossary/browser/index.html index cdeb2f300b..41a360a289 100644 --- a/files/ru/glossary/browser/index.html +++ b/files/ru/glossary/browser/index.html @@ -1,7 +1,8 @@ --- title: Браузер -slug: Словарь/Browser +slug: Glossary/Browser translation_of: Glossary/Browser +original_slug: Словарь/Browser ---

    Веб браузер — это программа которая извлекает и показывает страницы из {{Glossary("World Wide Web","Web")}}, и даёт пользователям доступ к веб-страницам через {{Glossary("hyperlink","гиперссылки")}}.

    diff --git a/files/ru/glossary/browsing_context/index.html b/files/ru/glossary/browsing_context/index.html index 85baf77aa4..286d8f9a58 100644 --- a/files/ru/glossary/browsing_context/index.html +++ b/files/ru/glossary/browsing_context/index.html @@ -1,7 +1,8 @@ --- title: Browsing context -slug: Словарь/Browsing_context +slug: Glossary/Browsing_context translation_of: Glossary/Browsing_context +original_slug: Словарь/Browsing_context ---

    Browsing context(контекст просмотра) - это окружение, в котором {{glossary("browser")}} отображает {{domxref("Document")}} (на сегодняшний день обычно это вкладки, однако, возможно окно или frame внутри страницы).

    diff --git a/files/ru/glossary/buffer/index.html b/files/ru/glossary/buffer/index.html index 479a9ac4d1..60b07057e1 100644 --- a/files/ru/glossary/buffer/index.html +++ b/files/ru/glossary/buffer/index.html @@ -1,6 +1,6 @@ --- title: Буфер -slug: Словарь/Буфер +slug: Glossary/buffer tags: - Buffer - CodingScripting @@ -9,6 +9,7 @@ tags: - Буфер - Словарь translation_of: Glossary/buffer +original_slug: Словарь/Буфер ---

    Буфер - это хранилище в физической памяти, используемое для временного хранения данных, во время их передачи из одного места в другое.

    diff --git "a/files/ru/glossary/b\303\251zier_curve/index.html" "b/files/ru/glossary/b\303\251zier_curve/index.html" index 0952421dda..51a5767329 100644 --- "a/files/ru/glossary/b\303\251zier_curve/index.html" +++ "b/files/ru/glossary/b\303\251zier_curve/index.html" @@ -1,11 +1,12 @@ --- title: Кривая Безье -slug: Словарь/Bézier_curve +slug: Glossary/Bézier_curve tags: - Графика - Кривая Безье - Словарь translation_of: Glossary/Bézier_curve +original_slug: Словарь/Bézier_curve ---

    Кривая Безье — это математически описанная кривая, используемая в компьютерной графике и анимации. В {{Glossary("vector image", "vector images")}} они используются для создания плавных кривых, которые можно бесконечно сильно масштабировать.

    diff --git a/files/ru/glossary/cache/index.html b/files/ru/glossary/cache/index.html index 03803b2895..8709a68a75 100644 --- a/files/ru/glossary/cache/index.html +++ b/files/ru/glossary/cache/index.html @@ -1,7 +1,8 @@ --- title: Кэш -slug: Словарь/Кэш +slug: Glossary/Cache translation_of: Glossary/Cache +original_slug: Словарь/Кэш ---

    Кэш (веб кэш или HTTP кэш) это компонент, который временно сохраняет HTTP ответы от сервера для того, чтобы их затем можно было использовать в последующих HTTP запросах, до тех пор пока он удовлетовяет некоторым условиям. 

    diff --git a/files/ru/glossary/cacheable/index.html b/files/ru/glossary/cacheable/index.html index 54f93bb14c..9ad921c7a2 100644 --- a/files/ru/glossary/cacheable/index.html +++ b/files/ru/glossary/cacheable/index.html @@ -1,10 +1,11 @@ --- title: Кэшируемые методы -slug: Словарь/cacheable +slug: Glossary/cacheable tags: - Glossary - HTTP translation_of: Glossary/cacheable +original_slug: Словарь/cacheable ---

    Кэшируемые ответы - это HTTP-ответы, которые могут быть закэшированы, то есть сохранены для дальнейшего восстановления и использования позже, тем самым снижая число запросов к серверу. Не все HTTP-ответы могут быть закэшированы. Вот несколько ограничений:

    diff --git a/files/ru/glossary/call_stack/index.html b/files/ru/glossary/call_stack/index.html index 04eb95fdb5..5577bb5cae 100644 --- a/files/ru/glossary/call_stack/index.html +++ b/files/ru/glossary/call_stack/index.html @@ -1,9 +1,10 @@ --- title: Call stack -slug: Словарь/Call_stack +slug: Glossary/Call_stack tags: - Glossary translation_of: Glossary/Call_stack +original_slug: Словарь/Call_stack ---

    Стек вызовов(call stack) - это механизм для интерпретаторов (таких как интерпретатор JavaScript в веб-браузере) для отслеживания текущего местонахождения интерпретатора в скрипте, который вызывает  несколько функций типа {{glossary("function","functions")}}, — какая из функций выполняется на данный момент, какие функции вызываются изнутри этой (выполняемой) функции, какая будет вызвана следующей и т. д.

    diff --git a/files/ru/glossary/callback_function/index.html b/files/ru/glossary/callback_function/index.html index b1433d4ee8..1c9118e4b5 100644 --- a/files/ru/glossary/callback_function/index.html +++ b/files/ru/glossary/callback_function/index.html @@ -1,10 +1,11 @@ --- title: Функция обратного вызова -slug: Словарь/функция_обратного_вызова +slug: Glossary/Callback_function tags: - Callback - Функция обратного вызова translation_of: Glossary/Callback_function +original_slug: Словарь/функция_обратного_вызова ---

    Функция обратного вызова - это функция, переданная в другую функцию в качестве аргумента, которая затем вызывается по завершению какого-либо действия.

    diff --git a/files/ru/glossary/canvas/index.html b/files/ru/glossary/canvas/index.html index 56cbc2b5e4..fa51c35472 100644 --- a/files/ru/glossary/canvas/index.html +++ b/files/ru/glossary/canvas/index.html @@ -1,6 +1,6 @@ --- title: Canvas -slug: Словарь/Canvas +slug: Glossary/Canvas tags: - CodingScripting - Glossary @@ -8,6 +8,7 @@ tags: - HTML - JavaScript translation_of: Glossary/Canvas +original_slug: Словарь/Canvas ---

     {{Glossary("HTML")}} {{HTMLElement("canvas")}}  (англ. canvas — «холст», рус. канва́с) элемент предоставляет пустую графическую зону, на которой специальные {{Glossary("JavaScript")}} {{Glossary("API","APIs")}} могут рисовать (такие как Canvas 2D или {{Glossary("WebGL")}}).

    diff --git a/files/ru/glossary/card_sorting/index.html b/files/ru/glossary/card_sorting/index.html index e70834e888..a61cdfce24 100644 --- a/files/ru/glossary/card_sorting/index.html +++ b/files/ru/glossary/card_sorting/index.html @@ -1,10 +1,11 @@ --- title: Card sorting -slug: Словарь/Card_sorting +slug: Glossary/Card_sorting tags: - Дизайн - Сортировка карточками translation_of: Glossary/Card_sorting +original_slug: Словарь/Card_sorting ---

    Сортировка карточек - это простая техника, используемая в информационной архитектуре, когда людям, участвующим в разработке веб-сайта (или другого типа продукта), предлагается записать контент / услуги / функции, которые, по их мнению, должен содержать продукт, а затем организовать эти функции в категории или группировки. Это может быть использовано, например, для определения того, что должно идти на каждой странице веб-сайта. Название происходит от того факта, что сортировка карточек часто осуществляется путем буквального написания предметов для сортировки на карточках, а затем размещения карточек в стопки.

    diff --git a/files/ru/glossary/cdn/index.html b/files/ru/glossary/cdn/index.html index 58b5cf6f8a..b3257cbc40 100644 --- a/files/ru/glossary/cdn/index.html +++ b/files/ru/glossary/cdn/index.html @@ -1,10 +1,11 @@ --- title: CDN -slug: Словарь/CDN +slug: Glossary/CDN tags: - Словарь - инфраструктура translation_of: Glossary/CDN +original_slug: Словарь/CDN ---

    CDN (сеть доставки контента) - это группа серверов, расположенных во многих местах. Эти сервера хранят дубликаты данных, чтобы сервера могли выполнять запросы данных на основе того, какие сервера ближе всего к конечным пользователям. CND увеличивают скорость доступа к сервису уменьшая влияние высокого трафика.

    diff --git a/files/ru/glossary/certified/index.html b/files/ru/glossary/certified/index.html index 20e8e567ff..a82112a784 100644 --- a/files/ru/glossary/certified/index.html +++ b/files/ru/glossary/certified/index.html @@ -1,7 +1,8 @@ --- title: Сертифицировано -slug: Словарь/Сертифицировано +slug: Glossary/Certified translation_of: Glossary/Certified +original_slug: Словарь/Сертифицировано ---

    Сертифицировано означает, что приложение, информация или передача данных успешно прошли проверку экспертами в соответствующих областях, таким образом сигнализируя о достоверности, безопасности и законченности.

    diff --git a/files/ru/glossary/character/index.html b/files/ru/glossary/character/index.html index 248ab150d6..afa4a80970 100644 --- a/files/ru/glossary/character/index.html +++ b/files/ru/glossary/character/index.html @@ -1,9 +1,10 @@ --- title: Символ -slug: Словарь/Character +slug: Glossary/Character tags: - Glossary translation_of: Glossary/Character +original_slug: Словарь/Character ---

    Символ (англ. Character или Symbol) - буква, цифра, знак препинания, непечатаемый символ (например возврат коретки).  {{glossary("UTF-8")}} - самый распространенный стандарт кодировки символов, содержащий большое количество графем популярных языков людей.

    diff --git a/files/ru/glossary/character_encoding/index.html b/files/ru/glossary/character_encoding/index.html index c8bb4782e6..a3d2cc9a96 100644 --- a/files/ru/glossary/character_encoding/index.html +++ b/files/ru/glossary/character_encoding/index.html @@ -1,11 +1,12 @@ --- title: Кодировка символов -slug: Словарь/character_encoding +slug: Glossary/character_encoding tags: - Composing - Glossary - Словарь translation_of: Glossary/character_encoding +original_slug: Словарь/character_encoding ---

    Кодировка определяет связность между байтами и текстом.  Последовательность байтов допускает различные текстовые интерпретации.  Указывая конкретную кодировку (например, UTF-8), мы указываем, как следует интерпретировать последовательность байтов.

    diff --git a/files/ru/glossary/chrome/index.html b/files/ru/glossary/chrome/index.html index 3f2f4aa62d..098c697b2f 100644 --- a/files/ru/glossary/chrome/index.html +++ b/files/ru/glossary/chrome/index.html @@ -1,11 +1,12 @@ --- title: chrome -slug: Словарь/Chrome +slug: Glossary/Chrome tags: - Chrome - Glossary - WebMechanics - Браузер translation_of: Glossary/Chrome +original_slug: Словарь/Chrome ---

    Не путать с {{glossary("Google Chrome")}}; chrome — видимые элементы {{glossary("Browser", "браузер")}}а, не относящиеся к веб-страницам (например, панели инструментов, панель меню, вкладки).

    diff --git a/files/ru/glossary/cia/index.html b/files/ru/glossary/cia/index.html index 671ddc3046..83e0780d54 100644 --- a/files/ru/glossary/cia/index.html +++ b/files/ru/glossary/cia/index.html @@ -1,10 +1,11 @@ --- title: КЦД -slug: Словарь/КЦД +slug: Glossary/CIA tags: - Безопасность - Глоссарий translation_of: Glossary/CIA +original_slug: Словарь/КЦД ---

    КЦД (Конфиденциальность, Целостность, Доступность) (также называемая триадой КЦД) - модель, регулирующая политику информационной безопасности организации.

    diff --git a/files/ru/glossary/class/index.html b/files/ru/glossary/class/index.html index c096fe93f0..efc434cf67 100644 --- a/files/ru/glossary/class/index.html +++ b/files/ru/glossary/class/index.html @@ -1,11 +1,12 @@ --- title: Класс -slug: Словарь/Class +slug: Glossary/Class tags: - Глоссарий - Написание скриптов - Прототипы translation_of: Glossary/Class +original_slug: Словарь/Class ---

    В ООП класс определяет характеристи объекта. Класс - это шаблон, в котором описываются свойства и методы будущего объекта. Класс - своего рода чертёж по которому будет реализовываться конкретный объект.

    diff --git a/files/ru/glossary/cms/index.html b/files/ru/glossary/cms/index.html index 0123601b27..7930fd8b73 100644 --- a/files/ru/glossary/cms/index.html +++ b/files/ru/glossary/cms/index.html @@ -1,7 +1,8 @@ --- title: CMS -slug: Словарь/CMS +slug: Glossary/CMS translation_of: Glossary/CMS +original_slug: Словарь/CMS ---

    CMS (Content Management System, рус. "Система управления содержимым")  - это программа, которая позволяет пользователям публиковать, организовывать, изменять или удалять различные виды контента: не только текст, но и встроенные картинки, видео, аудио, и интерактивный код.

    diff --git a/files/ru/glossary/codec/index.html b/files/ru/glossary/codec/index.html index bd048430c8..77caf114af 100644 --- a/files/ru/glossary/codec/index.html +++ b/files/ru/glossary/codec/index.html @@ -1,7 +1,8 @@ --- title: Codec -slug: Словарь/Codec +slug: Glossary/Codec translation_of: Glossary/Codec +original_slug: Словарь/Codec ---

    Кодек  (от англ. codec - "coder-decoder")  -  это программа, алгоритм, или же устройство, которое позволяет кодировать и декодировать поток данных. Предоставленный codec знает, как работать со специфичной кодировкой или с технологией сжатия.

    diff --git a/files/ru/glossary/compile/index.html b/files/ru/glossary/compile/index.html index f9a4efe6e7..bb2348800c 100644 --- a/files/ru/glossary/compile/index.html +++ b/files/ru/glossary/compile/index.html @@ -1,9 +1,10 @@ --- title: Compile -slug: Словарь/Compile +slug: Glossary/Compile tags: - Глоссарий translation_of: Glossary/Compile +original_slug: Словарь/Compile ---

    Компиляция - это процесс преобразования компьютерной программы, написанной на данном языке, в эквивалентную программу на другом языке. Компилятор - это программа для выполнения этой задачи. Иногда эту задачу называют также "assembling" или "build", что, как правило, свидетельствует о том, что выполняется не только компиляция, например, упаковка в двоичном формате.

    diff --git a/files/ru/glossary/computer_programming/index.html b/files/ru/glossary/computer_programming/index.html index 24247a348e..cbf13c7f8a 100644 --- a/files/ru/glossary/computer_programming/index.html +++ b/files/ru/glossary/computer_programming/index.html @@ -1,6 +1,6 @@ --- title: Компьютерное программирование -slug: Словарь/Computer_Programming +slug: Glossary/Computer_Programming tags: - Beginner - Computer Programming @@ -9,6 +9,7 @@ tags: - компьютерное программирование - языки программирования translation_of: Glossary/Computer_Programming +original_slug: Словарь/Computer_Programming ---

    Компьютерное программирование - это процесс составления и организации набора инструкций. Они говорят компьютерной программе, что делать на языке, понятном компьютеру. Эти инструкции представлены в виде множества различных языков, таких как C++, Java, JavaScript, HTML, Python, Ruby и Rust.

    diff --git a/files/ru/glossary/conditional/index.html b/files/ru/glossary/conditional/index.html index 945844e79c..4a34f7545c 100644 --- a/files/ru/glossary/conditional/index.html +++ b/files/ru/glossary/conditional/index.html @@ -1,6 +1,6 @@ --- title: Conditional (условное выражение) -slug: Словарь/Conditional +slug: Glossary/Conditional tags: - Beginner - Conditional @@ -8,6 +8,7 @@ tags: - Начинающим - Словарь translation_of: Glossary/Conditional +original_slug: Словарь/Conditional ---

    Условие - это набор правил, которые могут прерывать нормальное выполнение кода или изменять его в зависимости от того, удовлетворено ли условие или нет.

    diff --git a/files/ru/glossary/constant/index.html b/files/ru/glossary/constant/index.html index 366f26e0ea..f49d2fb027 100644 --- a/files/ru/glossary/constant/index.html +++ b/files/ru/glossary/constant/index.html @@ -1,10 +1,11 @@ --- title: Constant -slug: Словарь/Константа +slug: Glossary/Constant tags: - Constant - Glossary translation_of: Glossary/Constant +original_slug: Словарь/Константа ---

    Константа хранит значение, которое программист не хочет изменять, например числа(1, 2, 42). С другой стороны, у {{glossary("variable","переменных")}} программист может установить новое {{glossary("value","значение")}} к переменной, имя которой уже используется.

    diff --git a/files/ru/glossary/constructor/index.html b/files/ru/glossary/constructor/index.html index 6304608ca5..95653d5006 100644 --- a/files/ru/glossary/constructor/index.html +++ b/files/ru/glossary/constructor/index.html @@ -1,9 +1,10 @@ --- title: Конструктор -slug: Словарь/Constructor +slug: Glossary/Constructor tags: - Glossary translation_of: Glossary/Constructor +original_slug: Словарь/Constructor ---

    Конструктор принадлежит к определенному классу {{glossary("object")}}, который создается. Конструктор инициализирует этот объект и может предоставлять доступ к его личной информации. Концепция конструкутора может быть применена к большинству {{glossary("OOP","object-oriented programming")}} языков. По существу, конструктор в {{glossary("JavaScript")}} обычно объявляется в экземпляре {{glossary("class")}}.

    diff --git a/files/ru/glossary/cookie/index.html b/files/ru/glossary/cookie/index.html index 994b51f3b9..f674f09488 100644 --- a/files/ru/glossary/cookie/index.html +++ b/files/ru/glossary/cookie/index.html @@ -1,10 +1,11 @@ --- title: Cookie -slug: Словарь/Cookie +slug: Glossary/Cookie tags: - Glossary - WebMechanics translation_of: Glossary/Cookie +original_slug: Словарь/Cookie ---

    Cookie - это небольшой фрагмент информации, сохраненный на компьютере посетителя веб-сайтом через веб-браузер.

    diff --git a/files/ru/glossary/copyleft/index.html b/files/ru/glossary/copyleft/index.html index 91b70bf322..fcf671d8c2 100644 --- a/files/ru/glossary/copyleft/index.html +++ b/files/ru/glossary/copyleft/index.html @@ -1,12 +1,13 @@ --- title: Copyleft -slug: Словарь/Copyleft +slug: Glossary/Copyleft tags: - Copyleft - Копилефт - Распространение - Словарь translation_of: Glossary/Copyleft +original_slug: Словарь/Copyleft ---

    Copyleft — это термин, обычно относящийся к лицензии, который используется для обозначения того, что такая лицензия требует, что бы распространение данного продукта подчинялось той же лицензии, что и оригинал. Примерами лицензий с copyleft являются лицензии GNU {{Glossary ("GPL")}} (для программного обеспечения) и лицензии Creative Commons SA (Share Alike) (для рисунков, фотографий и т.д.).

    diff --git a/files/ru/glossary/cors/index.html b/files/ru/glossary/cors/index.html index e8100eabfb..8af8e4ec96 100644 --- a/files/ru/glossary/cors/index.html +++ b/files/ru/glossary/cors/index.html @@ -1,7 +1,8 @@ --- title: CORS -slug: Словарь/CORS +slug: Glossary/CORS translation_of: Glossary/CORS +original_slug: Словарь/CORS ---

    CORS (Cross-Origin Resource Sharing, рус. "Совместное использование ресурсов между разными источниками") - это система, состоящая из отправки HTTP заголовков, которые определяют: заблокировать или выполнить запрос к ограниченному ресурсу на веб-странице из другого домена, отличного от домена происхождения запрашиваемого ресурса.

    diff --git a/files/ru/glossary/crawler/index.html b/files/ru/glossary/crawler/index.html index b4a70953c6..6ce6fd2dbe 100644 --- a/files/ru/glossary/crawler/index.html +++ b/files/ru/glossary/crawler/index.html @@ -1,7 +1,8 @@ --- title: Crawler -slug: Словарь/Crawler +slug: Glossary/Crawler translation_of: Glossary/Crawler +original_slug: Словарь/Crawler ---

    Поисковый робот(паук, краулер) часто называемый просто "бот" или "робот" это программа, систематически обходящая {{glossary("World Wide Web","Web")}} для сбора данных со страниц веб-сайтов. Обычно поисковые сервисы (напр. Google, Bing, и пр.) используют поисковых роботов для индексирования сайтов.

    diff --git a/files/ru/glossary/crlf/index.html b/files/ru/glossary/crlf/index.html index d773d3b899..f753f040e9 100644 --- a/files/ru/glossary/crlf/index.html +++ b/files/ru/glossary/crlf/index.html @@ -1,7 +1,8 @@ --- title: CRLF -slug: Словарь/CRLF +slug: Glossary/CRLF translation_of: Glossary/CRLF +original_slug: Словарь/CRLF ---

    CR и LF это управляющие символы или байт-код которые можно использовать для обозначения разрыва строки в текстовых файлах.

    diff --git a/files/ru/glossary/csp/index.html b/files/ru/glossary/csp/index.html index c3ffad563c..a6cf99cbbd 100644 --- a/files/ru/glossary/csp/index.html +++ b/files/ru/glossary/csp/index.html @@ -1,12 +1,13 @@ --- title: CSP -slug: Словарь/CSP +slug: Glossary/CSP tags: - CSP - Content Security Policy - HTTP - Словарь translation_of: Glossary/CSP +original_slug: Словарь/CSP ---

    CSP (Политика безопасности контента) используется для обнаружения и смягчения определенных типов атак, связанных с веб-сайтами, таких как {{Glossary("XSS")}} и инъекции данных.

    diff --git a/files/ru/glossary/csrf/index.html b/files/ru/glossary/csrf/index.html index 287c077616..3cec7a3aec 100644 --- a/files/ru/glossary/csrf/index.html +++ b/files/ru/glossary/csrf/index.html @@ -1,7 +1,8 @@ --- title: CSRF -slug: Словарь/CSRF +slug: Glossary/CSRF translation_of: Glossary/CSRF +original_slug: Словарь/CSRF ---

    CSRF (Cross-Site Request Forgery, рус. "Межсайтовая подделка запроса") - вид атаки, при которой вражеский сайт выдает себя за доверенного пользователя и отсылает на сайт нежелательные комманды. Это может быть сделано, к примеру, с помощью отправки  параметров в {{glossary("URL")}} в конце ссылки с целью перехода куда-либо в другое место.

    diff --git a/files/ru/glossary/css/index.html b/files/ru/glossary/css/index.html index b47954e978..393f03fda6 100644 --- a/files/ru/glossary/css/index.html +++ b/files/ru/glossary/css/index.html @@ -1,11 +1,12 @@ --- title: CSS -slug: Словарь/CSS +slug: Glossary/CSS tags: - CSS - Glossary - Дизайн translation_of: Glossary/CSS +original_slug: Словарь/CSS ---

    CSS (Cascading Style Sheets, или каскадные таблицы стилей) - это декларативный язык, который отвечает за то, как страницы выглядят в {{glossary("browser","веб браузере")}}. CSS стили содержат свойства и их значения, которые и определяют, как будет выглядеть сайт.

    diff --git a/files/ru/glossary/css_preprocessor/index.html b/files/ru/glossary/css_preprocessor/index.html index e517efb0b0..18792b7dbc 100644 --- a/files/ru/glossary/css_preprocessor/index.html +++ b/files/ru/glossary/css_preprocessor/index.html @@ -1,10 +1,11 @@ --- title: CSS препроцессор -slug: Словарь/CSS_preprocessor +slug: Glossary/CSS_preprocessor tags: - CSS - Glossary translation_of: Glossary/CSS_preprocessor +original_slug: Словарь/CSS_preprocessor ---

    CSS препроцессор (CSS preprocessor) - это программа, которая имеет свой собственный синтаксис ({{Glossary("syntax")}}), но может сгенерировать из него {{Glossary("CSS")}} код . Существует множество препроцессоров. Большинство из них расширяет функционал чистого CSS, добавляя такие опции как: примеси, вложенные правила, селекторы наследования и др. Эти особенности облегчают работу с CSS: упрощают чтение кода и его дальнейшую поддержку.

    diff --git a/files/ru/glossary/css_selector/index.html b/files/ru/glossary/css_selector/index.html index c8d8885062..cd525405be 100644 --- a/files/ru/glossary/css_selector/index.html +++ b/files/ru/glossary/css_selector/index.html @@ -1,6 +1,6 @@ --- title: CSS-селектор -slug: Словарь/CSS_Selector +slug: Glossary/CSS_Selector tags: - CSS - CSS-селектор @@ -8,6 +8,7 @@ tags: - Глоссарий - селектор translation_of: Glossary/CSS_Selector +original_slug: Словарь/CSS_Selector ---

    CSS-селектор это часть CSS-правила, которая позволяет Вам указать, к какому элементу (элементам) применить стиль. Например:

    diff --git a/files/ru/glossary/data_structure/index.html b/files/ru/glossary/data_structure/index.html index 192f354fb1..a4780e1a34 100644 --- a/files/ru/glossary/data_structure/index.html +++ b/files/ru/glossary/data_structure/index.html @@ -1,10 +1,11 @@ --- title: Cтруктура данных -slug: Словарь/data_structure +slug: Glossary/Data_structure tags: - Data structure - структура данных translation_of: Glossary/Data_structure +original_slug: Словарь/data_structure ---

    Cтруктура данных (data structure) — способ представления множества данных как связного целого, имеющего определённый программный интерфейс (методы доступа и манипулирования над элементами этих данных).

    diff --git a/files/ru/glossary/decryption/index.html b/files/ru/glossary/decryption/index.html index 1e64097284..e26e24df39 100644 --- a/files/ru/glossary/decryption/index.html +++ b/files/ru/glossary/decryption/index.html @@ -1,7 +1,8 @@ --- title: Дешифрование -slug: Словарь/Дешифрование +slug: Glossary/Decryption translation_of: Glossary/Decryption +original_slug: Словарь/Дешифрование ---

    В {{glossary("cryptography")}}, дешифрование это конвертация {{glossary("ciphertext")}} в {{glossary("cleartext")}}.

    diff --git a/files/ru/glossary/developer_tools/index.html b/files/ru/glossary/developer_tools/index.html index bf976c49fe..e27a125770 100644 --- a/files/ru/glossary/developer_tools/index.html +++ b/files/ru/glossary/developer_tools/index.html @@ -1,10 +1,11 @@ --- title: Инструменты разработчика -slug: Словарь/Инструменты_разработчика +slug: Glossary/Developer_Tools tags: - Инспектор - инструменты translation_of: Glossary/Developer_Tools +original_slug: Словарь/Инструменты_разработчика ---

    Инструменты разработчика (от англ. "development tools" или сокращенно "DevTools") - это программы, которые позволяют создавать, тестировать и отлаживать ({{Glossary("debug")}}) программное обеспечение.

    diff --git a/files/ru/glossary/dns/index.html b/files/ru/glossary/dns/index.html index d40b9ee401..af58b83d0a 100644 --- a/files/ru/glossary/dns/index.html +++ b/files/ru/glossary/dns/index.html @@ -1,12 +1,13 @@ --- title: DNS -slug: Словарь/DNS +slug: Glossary/DNS tags: - DNS - Система доменных имён - Словарь - инфраструктура translation_of: Glossary/DNS +original_slug: Словарь/DNS ---

    DNS (Система доменных имён, англ. Domain Name System) — это иерахическая децентрализованная система именования для интернет-ресурсов подключённых к Интернет, которая ведёт список {{glossary("domain name","доменных имён")}} вместе с их числовыми {{Glossary("IP address","IP-адресами")}} или местонахождениями. DNS позволяет перевести простое запоминаемое {{Glossary("hostname","имя хоста")}} в IP-адрес. DNS lookup (Поиск DNS) — это процесс с помощью которого от DNS-сервер возвращается DNS запись, необходимая для нахождения конкретного компьютерного сервиса в {{Glossary("Internet","Интернет")}} или частной сети.

    diff --git a/files/ru/glossary/doctype/index.html b/files/ru/glossary/doctype/index.html index 6059777378..5f131fea9c 100644 --- a/files/ru/glossary/doctype/index.html +++ b/files/ru/glossary/doctype/index.html @@ -1,6 +1,6 @@ --- title: Doctype -slug: Словарь/Doctype +slug: Glossary/Doctype tags: - Browser - CodingScripting @@ -9,6 +9,7 @@ tags: - HTML - Intro translation_of: Glossary/Doctype +original_slug: Словарь/Doctype ---

    В {{Glossary("HTML")}} объявление типа документа тегом "<!DOCTYPE html>" - обязательная преамбула, расположенная в верхней части документа. Единственное предназначение тега - не допустить переключение {{Glossary("browser","браузера")}} в так называемый режим совместимости (“quirks mode”) во время рендеринга документа; то есть, тег "<!DOCTYPE html>" гарантирует, что браузер с максимальными усилиями будет следовать соответствующей спецификации, а не использовать другой тип рендеринга, несовместимый с некоторыми спецификациями.

    diff --git a/files/ru/glossary/dom/index.html b/files/ru/glossary/dom/index.html index 10e85608e9..d9ed56b665 100644 --- a/files/ru/glossary/dom/index.html +++ b/files/ru/glossary/dom/index.html @@ -1,9 +1,10 @@ --- title: DOM -slug: Словарь/DOM +slug: Glossary/DOM tags: - Словарь translation_of: Glossary/DOM +original_slug: Словарь/DOM ---

    DOM (Document Object Model) это {{glossary("API")}} который представляет и взаимодействует со всеми {{glossary("HTML")}} или {{glossary("XML")}} документами. DOM это модель документа загруженная в {{glossary("browser")}} и представляющая документ как узел дерева, где каждый узел представляет часть (e.g. an {{Glossary("element")}} документа, строку текста, или комментарий).

    diff --git a/files/ru/glossary/domain/index.html b/files/ru/glossary/domain/index.html index f79eaa991e..afa29b6f64 100644 --- a/files/ru/glossary/domain/index.html +++ b/files/ru/glossary/domain/index.html @@ -1,12 +1,13 @@ --- title: Domain -slug: Словарь/Домен +slug: Glossary/Domain tags: - Браузер - домен - инфраструктура - сеть translation_of: Glossary/Domain +original_slug: Словарь/Домен ---

    Домен - это часть компьютерной сети, в которой один объект контролирует ресурсы обработки данных, например веб-сайт.

    diff --git a/files/ru/glossary/domain_name/index.html b/files/ru/glossary/domain_name/index.html index 249e3f60d2..0efde95c0d 100644 --- a/files/ru/glossary/domain_name/index.html +++ b/files/ru/glossary/domain_name/index.html @@ -1,6 +1,6 @@ --- title: Доменное имя -slug: Словарь/Domain_name +slug: Glossary/Domain_name tags: - Domain Name - Glossary @@ -10,6 +10,7 @@ tags: - доменное имя - протокол translation_of: Glossary/Domain_name +original_slug: Словарь/Domain_name ---

    Имя домена является адресом веб-сайта в {{Glossary("Internet","интернете")}}. Доменные имена используются в {{Glossary("URL","URLs")}}, чтобы идентифицировать сервер, на котором находится определенная веб-страница. Имя домена состоит из иерархической последовательности имен (меток), разделенных точками и заканчивающейся   {{glossary("TLD","расширением верхнего уровня")}}.

    diff --git a/files/ru/glossary/dos_attack/index.html b/files/ru/glossary/dos_attack/index.html index 140782b6f9..da78b43cb6 100644 --- a/files/ru/glossary/dos_attack/index.html +++ b/files/ru/glossary/dos_attack/index.html @@ -1,7 +1,8 @@ --- title: DoS атака -slug: Словарь/DOS_attack +slug: Glossary/DOS_attack translation_of: Glossary/DOS_attack +original_slug: Словарь/DOS_attack ---

    DoS (отказ в обслуживании) - это сетевая атака, которая препятствует обычному  использованию ресурсов {{glossary ('server')}}, нагружая сервер "ложными", "фиктивными" запросами.

    diff --git a/files/ru/glossary/dynamic_programming_language/index.html b/files/ru/glossary/dynamic_programming_language/index.html index fe4043c7a6..61b894fa82 100644 --- a/files/ru/glossary/dynamic_programming_language/index.html +++ b/files/ru/glossary/dynamic_programming_language/index.html @@ -1,9 +1,10 @@ --- title: Динамический язык программирования -slug: Словарь/Dynamic_programming_language +slug: Glossary/Dynamic_programming_language tags: - Словарь translation_of: Glossary/Dynamic_programming_language +original_slug: Словарь/Dynamic_programming_language ---

    Динамический язык — язык программирования, который позволяет определять типы данных и осуществлять синтаксический анализ и компиляцию «на лету», на этапе выполнения программы. Динамические языки удобны для быстрой разработки приложений. Например, в JavaScript можно изменить тип переменной, или добавить новые свойства, или методы к объекту в то время, как программа работает.

    diff --git a/files/ru/glossary/ecma/index.html b/files/ru/glossary/ecma/index.html index 335808f037..cc8fbdf023 100644 --- a/files/ru/glossary/ecma/index.html +++ b/files/ru/glossary/ecma/index.html @@ -1,7 +1,8 @@ --- title: ECMA -slug: Словарь/ECMA +slug: Glossary/ECMA translation_of: Glossary/ECMA +original_slug: Словарь/ECMA ---

     

    diff --git a/files/ru/glossary/ecmascript/index.html b/files/ru/glossary/ecmascript/index.html index acaff14a0b..6a1bfe8be8 100644 --- a/files/ru/glossary/ecmascript/index.html +++ b/files/ru/glossary/ecmascript/index.html @@ -1,7 +1,8 @@ --- title: ECMAScript -slug: Словарь/ECMAScript +slug: Glossary/ECMAScript translation_of: Glossary/ECMAScript +original_slug: Словарь/ECMAScript ---

    ECMAScript - это скриптовый язык на котором основан {{glossary("JavaScript")}} . Ecma International - организация отвечающая за стандартизацию ECMAScript.

    diff --git a/files/ru/glossary/element/index.html b/files/ru/glossary/element/index.html index e830c4a29b..376bc538d4 100644 --- a/files/ru/glossary/element/index.html +++ b/files/ru/glossary/element/index.html @@ -1,10 +1,11 @@ --- title: Элемент -slug: Словарь/Элемент +slug: Glossary/Element tags: - HTML - Словарь translation_of: Glossary/Element +original_slug: Словарь/Элемент ---

    Элемент - это часть веб-страницы. В XML и HTML элемент может содержать данные, фрагмент текста или изображения, или не содержать ничего. Обычный элемент включает в себя открывающий тэг с некоторыми атрибутами, текст и закрывающий тэг.
    Example: in <p class="nice">Hello world!</p>, '<p class="nice">' is an opening tag, 'class="nice"' is an attribute and its value, 'Hello world!' is enclosed text content, and '</p>' is a closing tag.

    diff --git a/files/ru/glossary/empty_element/index.html b/files/ru/glossary/empty_element/index.html index e9c3c7370d..e6b9ad664a 100644 --- a/files/ru/glossary/empty_element/index.html +++ b/files/ru/glossary/empty_element/index.html @@ -1,12 +1,13 @@ --- title: Пустой элемент -slug: Словарь/Empty_element +slug: Glossary/Empty_element tags: - CodingScripting - Glossary - Intermediate - Словарь translation_of: Glossary/Empty_element +original_slug: Словарь/Empty_element ---

    Пустой элемент — {{Glossary("element", "элемент")}} HTML, SVG или MathML, который не может иметь дочерних узлов (т.е. вложенных элементов или текста внутри себя).

    diff --git a/files/ru/glossary/encapsulation/index.html b/files/ru/glossary/encapsulation/index.html index f89f467f50..d316b75253 100644 --- a/files/ru/glossary/encapsulation/index.html +++ b/files/ru/glossary/encapsulation/index.html @@ -1,10 +1,11 @@ --- title: Инкапсуляция -slug: Словарь/Encapsulation +slug: Glossary/Encapsulation tags: - CodingScripting - Glossary translation_of: Glossary/Encapsulation +original_slug: Словарь/Encapsulation ---

    Инкапсуляция - это упаковка данных и {{glossary("function","functions")}} в один компонент (например, {{glossary("class")}}) и последующий контроль доступа к этому компоненту, создавая тем самым "черный ящик" из {{glossary("object")}}. По этой причине, пользователю необходмо знать только интерфейс этого класса (то есть данные и функции, предоставляемые для взаимодействия с классом извне), а не то, как он реализован внутри.

    diff --git a/files/ru/glossary/entity/index.html b/files/ru/glossary/entity/index.html index 3ed0f645b8..1315632125 100644 --- a/files/ru/glossary/entity/index.html +++ b/files/ru/glossary/entity/index.html @@ -1,10 +1,11 @@ --- title: Сущности -slug: Словарь/Сущности +slug: Glossary/Entity tags: - HTML - Словарь translation_of: Glossary/Entity +original_slug: Словарь/Сущности ---

    {{glossary("HTML")}}-сущности — это части текста ("cтроки"), которые начинаются с символа амперсанда (&) и заканчиваются точкой с запятой (;). Сущности чаще всего используются для представления специальных символов (которые могут быть восприняты как часть HTML-кода) или невидимых символов (таких как неразрывный пробел). Также вы можете использовать их вместо символов, печать которых с обычной клавиатуры труднодоступна. 

    diff --git a/files/ru/glossary/entity_header/index.html b/files/ru/glossary/entity_header/index.html index 269f88ecbd..4d2530dc82 100644 --- a/files/ru/glossary/entity_header/index.html +++ b/files/ru/glossary/entity_header/index.html @@ -1,9 +1,10 @@ --- title: Заголовок сущности -slug: Словарь/Entity_header +slug: Glossary/Entity_header tags: - Словарь translation_of: Glossary/Entity_header +original_slug: Словарь/Entity_header ---

    Заголовок сущности - это {{Glossary("header", "HTTP header")}}, описывающий содержимое тела сообщения. Заголовки сущности используются в HTTP-запросах и ответах. Заголовки, такие как {{HTTPHeader("Content-Length")}}, {{HTTPHeader("Content-Language")}}, {{HTTPHeader("Content-Encoding")}} являются заголовками сущности.

    diff --git a/files/ru/glossary/event/index.html b/files/ru/glossary/event/index.html index cd1abf198e..89cd01b646 100644 --- a/files/ru/glossary/event/index.html +++ b/files/ru/glossary/event/index.html @@ -1,11 +1,12 @@ --- title: Событие -slug: Словарь/event +slug: Glossary/event tags: - events - Словарь - события translation_of: Glossary/event +original_slug: Словарь/event ---

    События - это сгенерированные DOM-элементами свойства, которыми можно манипулировать с помощью Javascript-кода.

    diff --git a/files/ru/glossary/expando/index.html b/files/ru/glossary/expando/index.html index 05e9246629..471a8fc7ef 100644 --- a/files/ru/glossary/expando/index.html +++ b/files/ru/glossary/expando/index.html @@ -1,7 +1,8 @@ --- title: Expando -slug: Словарь/Expando +slug: Glossary/Expando translation_of: Glossary/Expando +original_slug: Словарь/Expando ---

    Expando-свойства — это свойства, добавленные в узлы {{glossary("DOM")}} с помощью {{glossary("JavaScript")}}, когда эти свойства не являются частью DOM-спецификации {{glossary("object","объекта")}}:

    diff --git a/files/ru/glossary/falsy/index.html b/files/ru/glossary/falsy/index.html index 480f972044..33cf9bd161 100644 --- a/files/ru/glossary/falsy/index.html +++ b/files/ru/glossary/falsy/index.html @@ -1,11 +1,12 @@ --- title: Falsy -slug: Словарь/Falsy +slug: Glossary/Falsy tags: - Glossary - JavaScript - falsy translation_of: Glossary/Falsy +original_slug: Словарь/Falsy ---

    Ложное (falsy) значение - это значение, которое считается ложным, когда встречается в контексте {{Glossary("Boolean")}} .

    diff --git a/files/ru/glossary/first-class_function/index.html b/files/ru/glossary/first-class_function/index.html index aaae7749e5..a54ce91210 100644 --- a/files/ru/glossary/first-class_function/index.html +++ b/files/ru/glossary/first-class_function/index.html @@ -1,10 +1,11 @@ --- title: Функции первого класса -slug: Словарь/First-class_Function +slug: Glossary/First-class_Function tags: - Glossary - Глоссарий translation_of: Glossary/First-class_Function +original_slug: Словарь/First-class_Function ---

    Если язык программирования имеет функции первого класса, то значит они трактуются как объекты, то есть могут быть переданы другим функциям и их можно вернуть из функций. Так же их можно присваивать переменным.

    diff --git a/files/ru/glossary/first_contentful_paint/index.html b/files/ru/glossary/first_contentful_paint/index.html index 52425b24d4..65348eaf2a 100644 --- a/files/ru/glossary/first_contentful_paint/index.html +++ b/files/ru/glossary/first_contentful_paint/index.html @@ -1,7 +1,8 @@ --- title: First contentful paint -slug: Словарь/First_contentful_paint +slug: Glossary/First_contentful_paint translation_of: Glossary/First_contentful_paint +original_slug: Словарь/First_contentful_paint ---

    Первое существенное отображение (англ. First Contentful Paint, FCP) - время, за которое пользователь увидит какое-то содержимое веб-страницы, например, текст или картинку.

    diff --git a/files/ru/glossary/first_cpu_idle/index.html b/files/ru/glossary/first_cpu_idle/index.html index 703c2e9e2d..f756b54be3 100644 --- a/files/ru/glossary/first_cpu_idle/index.html +++ b/files/ru/glossary/first_cpu_idle/index.html @@ -1,7 +1,8 @@ --- title: First CPU idle -slug: Словарь/First_CPU_idle +slug: Glossary/First_CPU_idle translation_of: Glossary/First_CPU_idle +original_slug: Словарь/First_CPU_idle ---

    First CPU Idle показывает, через какое время страница является "минимально" интерактивной, или когда основной поток достаточно свободен, чтобы обработать пользовательский ввод. Как правило, это происходит, когда большинство видимых элементов пользовательского интерфейса являются интерактивными и реагируют на события пользовательского ввода.

    diff --git a/files/ru/glossary/first_input_delay/index.html b/files/ru/glossary/first_input_delay/index.html index fa3c87bbf8..ccd6602f51 100644 --- a/files/ru/glossary/first_input_delay/index.html +++ b/files/ru/glossary/first_input_delay/index.html @@ -1,7 +1,8 @@ --- title: First input delay -slug: Словарь/First_input_delay +slug: Glossary/First_input_delay translation_of: Glossary/First_input_delay +original_slug: Словарь/First_input_delay ---

    Задержка первого ввода (англ. First input delay, FID) - одна из метрик производительности веб-страниц, которая описывает время, которое прошло с момента, когда пользователь впервые начал взаимодействовать с веб-страницей, т.е. нажал на ссылку, кнопку или использует элемент управления на основе JavaScript, до момента, когда веб-браузер может ответить на данное взаимодействие. Таким образом, это промежуток времени в миллисекундах между первым взаимодействием пользователя с веб-страницой и ответом браузера на это взаимодействие. Прокрутка и масштабирование не включены в этот показатель.

    diff --git a/files/ru/glossary/first_interactive/index.html b/files/ru/glossary/first_interactive/index.html index 2433ee6b7e..3655c89fd7 100644 --- a/files/ru/glossary/first_interactive/index.html +++ b/files/ru/glossary/first_interactive/index.html @@ -1,7 +1,8 @@ --- title: First interactive -slug: Словарь/First_interactive +slug: Glossary/First_interactive translation_of: Glossary/First_interactive +original_slug: Словарь/First_interactive ---

    Первая интерактивность (англ. First Interactive), также известная как first CPU idle - нестандартная метрика веб-производительности, которая показывает, через какое время страница является "минимально" интерактивной, или когда основной поток достаточно свободен, чтобы обработать пользовательский ввод.

    diff --git a/files/ru/glossary/first_meaningful_paint/index.html b/files/ru/glossary/first_meaningful_paint/index.html index 569b1ebd8d..8eea1574f0 100644 --- a/files/ru/glossary/first_meaningful_paint/index.html +++ b/files/ru/glossary/first_meaningful_paint/index.html @@ -1,7 +1,8 @@ --- title: First Meaningful Paint -slug: Словарь/first_meaningful_paint +slug: Glossary/first_meaningful_paint translation_of: Glossary/first_meaningful_paint +original_slug: Словарь/first_meaningful_paint ---

    Первое значимое отображение (англ. First Meaningful Paint, FMP) - метрика, которая показывает, за какое время контент на странице становится виден пользователю. Это метрика включает в себя время от начала загрузки страницы до момента, когда на сайте отобразился основной контент.

    diff --git a/files/ru/glossary/first_paint/index.html b/files/ru/glossary/first_paint/index.html index fec7ec3741..86c8057bcc 100644 --- a/files/ru/glossary/first_paint/index.html +++ b/files/ru/glossary/first_paint/index.html @@ -1,7 +1,8 @@ --- title: First paint -slug: Словарь/First_paint +slug: Glossary/First_paint translation_of: Glossary/First_paint +original_slug: Словарь/First_paint ---

    Первое отображение - время между переходом на страницу и моментом, когда браузер отображает первые пиксели на экране. Является частью Paint Timing API.

    diff --git a/files/ru/glossary/flex_item/index.html b/files/ru/glossary/flex_item/index.html index 7253e9a025..b898d436fe 100644 --- a/files/ru/glossary/flex_item/index.html +++ b/files/ru/glossary/flex_item/index.html @@ -1,11 +1,12 @@ --- title: Флекс-элемент -slug: Словарь/Flex_Item +slug: Glossary/Flex_Item tags: - CSS - флекс-элемент - флексбокс translation_of: Glossary/Flex_Item +original_slug: Словарь/Flex_Item ---

    Непосредственые дочерние элементы {{glossary("флекс-контейнера")}} (элемент для которого установлено display: flex или display: inline-flex) становятся флекс-элементами.

    diff --git a/files/ru/glossary/flexbox/index.html b/files/ru/glossary/flexbox/index.html index 918997b331..5cadb1d9eb 100644 --- a/files/ru/glossary/flexbox/index.html +++ b/files/ru/glossary/flexbox/index.html @@ -1,7 +1,8 @@ --- title: Flexbox -slug: Словарь/Flexbox +slug: Glossary/Flexbox translation_of: Glossary/Flexbox +original_slug: Словарь/Flexbox ---

    Flexbox это общепринятый термин для CSS Flexible Box Layout Module, модели разметки для отображения элементов в одном измерении - в виде строки или столбца.

    diff --git a/files/ru/glossary/forbidden_header_name/index.html b/files/ru/glossary/forbidden_header_name/index.html index 059b6898c6..5b59577517 100644 --- a/files/ru/glossary/forbidden_header_name/index.html +++ b/files/ru/glossary/forbidden_header_name/index.html @@ -1,12 +1,13 @@ --- title: Запрещенное имя заголовка -slug: Словарь/Forbidden_header_name +slug: Glossary/Forbidden_header_name tags: - HTTP - Заголовки - Словарь - запрещенный translation_of: Glossary/Forbidden_header_name +original_slug: Словарь/Forbidden_header_name ---

    Запрещённое имя заголовка (Forbidden header name) это имя какого-либо HTTP заголовка, который нельзя изменить программно. 

    diff --git a/files/ru/glossary/forbidden_response_header_name/index.html b/files/ru/glossary/forbidden_response_header_name/index.html index a53aa15026..65eae8e79f 100644 --- a/files/ru/glossary/forbidden_response_header_name/index.html +++ b/files/ru/glossary/forbidden_response_header_name/index.html @@ -1,7 +1,8 @@ --- title: Запрещённое имя заголовка ответа -slug: Словарь/Запрещённое_имя_заголовка_ответа +slug: Glossary/Forbidden_response_header_name translation_of: Glossary/Forbidden_response_header_name +original_slug: Словарь/Запрещённое_имя_заголовка_ответа ---

    Запрещённое имя заголовка ответа это имя HTTP заголовка (`Set-Cookie` или `Set-Cookie2`), который не может быть изменён программно.

    diff --git a/files/ru/glossary/fps/index.html b/files/ru/glossary/fps/index.html index dbb479d226..6bbb51a73d 100644 --- a/files/ru/glossary/fps/index.html +++ b/files/ru/glossary/fps/index.html @@ -1,7 +1,8 @@ --- title: Частота кадров (FPS) -slug: Словарь/FPS +slug: Glossary/FPS translation_of: Glossary/FPS +original_slug: Словарь/FPS ---

    Частота кадров - это скорость, с которой браузер может пересчитывать, размещать и отображать содержимое на дисплее. FPS (англ. frames per second) - количество сменяемых кадров за одну секунду.

    diff --git a/files/ru/glossary/ftp/index.html b/files/ru/glossary/ftp/index.html index a14c6cacd7..b2362c4fdf 100644 --- a/files/ru/glossary/ftp/index.html +++ b/files/ru/glossary/ftp/index.html @@ -1,12 +1,13 @@ --- title: FTP -slug: Словарь/FTP +slug: Glossary/FTP tags: - CodingScripting - FTP - Glossary - протокол translation_of: Glossary/FTP +original_slug: Словарь/FTP ---

    FTP (англ. file transfer protocol — протокол передачи файлов) — стандартный сетевой {{glossary("protocol", "протокол")}} для передачи файлов с одного {{glossary("host", "хост")}}а на другой через Интернет по протоколу {{Glossary("TCP")}}.

    diff --git a/files/ru/glossary/function/index.html b/files/ru/glossary/function/index.html index 4e2698b38c..424409f081 100644 --- a/files/ru/glossary/function/index.html +++ b/files/ru/glossary/function/index.html @@ -1,12 +1,13 @@ --- title: Функция -slug: Словарь/Функция +slug: Glossary/Function tags: - JavaScript - Глоссарий - КодингСкриптинг - Функция translation_of: Glossary/Function +original_slug: Словарь/Функция ---

    Функция это отрывок кода который может быть вызван из другого кода или вызван собой, или это {{Glossary("variable")}} которая ссылается на функцию. Когда функция вызвана, {{Glossary("Argument", "аргументы")}} переданы в функцию как вход, и функция может необязательно вернуть вывод. Функция в {{glossary("JavaScript")}} это {{glossary("object")}}.

    diff --git a/files/ru/glossary/gecko/index.html b/files/ru/glossary/gecko/index.html index cba601e9b9..3e6264903f 100644 --- a/files/ru/glossary/gecko/index.html +++ b/files/ru/glossary/gecko/index.html @@ -1,11 +1,12 @@ --- title: Gecko -slug: Словарь/Gecko +slug: Glossary/Gecko tags: - Gecko - Glossary - Глоссарий translation_of: Glossary/Gecko +original_slug: Словарь/Gecko ---

    Gecko - это движок обработки и рендеринга макетов веб-страниц, разработанный в рамках Mozilla Project и используемый многими приложениями и устройствами, включая {{glossary("Mozilla Firefox","Firefox")}} и {{glossary("Firefox OS")}}.

    diff --git a/files/ru/glossary/general_header/index.html b/files/ru/glossary/general_header/index.html index 3d2f5cb65c..6db4fdb186 100644 --- a/files/ru/glossary/general_header/index.html +++ b/files/ru/glossary/general_header/index.html @@ -1,7 +1,8 @@ --- title: Общий заголовок -slug: Словарь/General_header +slug: Glossary/General_header translation_of: Glossary/General_header +original_slug: Словарь/General_header ---

    Общий заголовок (основной заголовок) - это {{glossary('HTTP header', 'заголовок')}}, который используется и в запросе, и в ответе (в отличие от {{glossary("Response header", "заголовка запроса")}} и {{glossary("request header", "заголовка ответа")}}), однако общий заголовок не описывает тело сообщения, как {{glossary("entity header", "заголовок сущности")}}.

    diff --git a/files/ru/glossary/git/index.html b/files/ru/glossary/git/index.html index 0e1bda3846..6da3accb15 100644 --- a/files/ru/glossary/git/index.html +++ b/files/ru/glossary/git/index.html @@ -1,10 +1,11 @@ --- title: Git -slug: Словарь/Git +slug: Glossary/Git tags: - Словарь - Совместная работа translation_of: Glossary/Git +original_slug: Словарь/Git ---

    Git — это свободная с открытым исходным кодом распределённая система управления версиями (от англ. Source Code Management ({{Glossary("SCM", "SCM", 1)}}). Она облегчает написание кода с использованием распределенных команд разработчиков. Ее отличие от предшествующих систем управления версиями — способность выполнять общие операции (ветвление, фиксакция изменений, и т.д.) на вашем локальном компьютере, без необходимости изменять главный репозиторий или даже не имея прав на запись в него.

    diff --git a/files/ru/glossary/global_object/index.html b/files/ru/glossary/global_object/index.html index 402ba23ea0..62b03c66ab 100644 --- a/files/ru/glossary/global_object/index.html +++ b/files/ru/glossary/global_object/index.html @@ -1,7 +1,8 @@ --- title: Global object -slug: Словарь/Global_object +slug: Glossary/Global_object translation_of: Glossary/Global_object +original_slug: Словарь/Global_object ---

    Глобальный обьект - это {{glossary("object")}}, который всегда существует в {{glossary("global scope")}}.

    diff --git a/files/ru/glossary/global_variable/index.html b/files/ru/glossary/global_variable/index.html index a9e4a36a5b..aff656f793 100644 --- a/files/ru/glossary/global_variable/index.html +++ b/files/ru/glossary/global_variable/index.html @@ -1,9 +1,10 @@ --- title: Глобальная переменная -slug: Словарь/global_variable +slug: Glossary/Global_variable tags: - Словарь translation_of: Glossary/Global_variable +original_slug: Словарь/global_variable ---

    Глобальная перменная это переменная, которая была объявлена в глобальной области видимости. Иначе говоря, переменная, доступ к которой, можно получить со всех других областей видимости.

    diff --git a/files/ru/glossary/grid/index.html b/files/ru/glossary/grid/index.html index 2d00a835e1..57d3b781f4 100644 --- a/files/ru/glossary/grid/index.html +++ b/files/ru/glossary/grid/index.html @@ -1,11 +1,12 @@ --- title: Grid -slug: Словарь/Grid +slug: Glossary/Grid tags: - CSS - CSS Grids - Glossary translation_of: Glossary/Grid +original_slug: Словарь/Grid ---

    CSS Гриды (они же сетки или CSS Grid) устанавливаются с помощью значения grid в свойстве display; вы можете определить колонки и строки в сетке с помощью свойств {{cssxref("grid-template-columns")}} и {{cssxref("grid-template-rows")}} соответственно.

    diff --git a/files/ru/glossary/grid_column/index.html b/files/ru/glossary/grid_column/index.html index ca5ed8bd59..2432fae416 100644 --- a/files/ru/glossary/grid_column/index.html +++ b/files/ru/glossary/grid_column/index.html @@ -1,10 +1,11 @@ --- title: Grid Column -slug: Словарь/Grid_Column +slug: Glossary/Grid_Column tags: - CSS - grid translation_of: Glossary/Grid_Column +original_slug: Словарь/Grid_Column ---

    Столбец сетки (grid column) — это вертикальный элемент в CSS Grid Layout, а также пространство между двумя вертикальными линиями сетки. Он определяется свойством {{cssxref("grid-template-columns")}}, либо в сокращенном виде {{cssxref("grid")}} или {{cssxref("grid-template")}}.

    diff --git a/files/ru/glossary/hash/index.html b/files/ru/glossary/hash/index.html index 9084e9ed64..8d3822bbc2 100644 --- a/files/ru/glossary/hash/index.html +++ b/files/ru/glossary/hash/index.html @@ -1,7 +1,8 @@ --- title: Хеш -slug: Словарь/хеш +slug: Glossary/hash translation_of: Glossary/hash +original_slug: Словарь/хеш ---

    Хеш-функция получает на вход текстовое сообщение произвольной длины и выдает хеш фиксированной длины. Как правило, в форме 128-битного "отпечатка пальцев" или "дайджеста сообщения". Хеши очень полезны для {{glossary("криптографии")}} — они обеспечивают целостность передаваемых данных. Это служит основой для {{glossary("HMAC's")}}, которые обеспечивают идентификацию сообщений.

    diff --git a/files/ru/glossary/head/index.html b/files/ru/glossary/head/index.html index 5fef76a367..57b8a7031f 100644 --- a/files/ru/glossary/head/index.html +++ b/files/ru/glossary/head/index.html @@ -1,7 +1,8 @@ --- title: Head (Заголовок) -slug: Словарь/Заголовок +slug: Glossary/Head translation_of: Glossary/Head +original_slug: Словарь/Заголовок ---

    Head (заголовок) это часть {{glossary("HTML")}} документа, которая содержит {{glossary("metadata")}} о документе, такие как автор, описание, ссылки на {{glossary("CSS")}} или {{glossary("JavaScript")}} файлы, которые должны быть применены в HTML.

    diff --git a/files/ru/glossary/high-level_programming_language/index.html b/files/ru/glossary/high-level_programming_language/index.html index b6fa171131..60feb993a1 100644 --- a/files/ru/glossary/high-level_programming_language/index.html +++ b/files/ru/glossary/high-level_programming_language/index.html @@ -1,9 +1,10 @@ --- title: Высокоуровневый язык программирования -slug: Словарь/Высокоуровневый_язык_программированияprogramming_language +slug: Glossary/High-level_programming_language tags: - Словарь translation_of: Glossary/High-level_programming_language +original_slug: Словарь/Высокоуровневый_язык_программированияprogramming_language ---

    Высокоуровневый язык программирования имеет существенную абстракцию от деталей работы компьютера. Он предназначен для простого понимания людьми и поэтому должен быть переведен другим программным обеспечением. В отличие от низкоуровневых языков программирования, он может использовать элементы естественного языка или может автоматизировать (или даже полностью скрыть) важные области вычислительных систем, делая процесс разработки более простым и более понятным по сравнению с языком более низкого уровня. Количество предоставляемой абстракции определяет, насколько "высокоуровневым является" язык программирования.

    diff --git a/files/ru/glossary/hoisting/index.html b/files/ru/glossary/hoisting/index.html index ef0cdfb1be..a0f3683ec5 100644 --- a/files/ru/glossary/hoisting/index.html +++ b/files/ru/glossary/hoisting/index.html @@ -1,7 +1,8 @@ --- title: Поднятие -slug: Словарь/Поднятие +slug: Glossary/Hoisting translation_of: Glossary/Hoisting +original_slug: Словарь/Поднятие ---

    Поднятие (hoisting) — термин, который вы не встретите в документации JavaScript. Поднятие задумывалось как общий способ мышления о том, как контекст исполнения (в частности, фазы создания и исполнения) работает в JavaScript. Однако, hoisting может привести и к недоразумениям. Например, hoisting учит, что объявление переменной или функции физически перемещается в начало вашего кода, хотя в действительности этого не происходит. На самом же деле, объявления переменных и функций попадают в память в процессе фазы компиляции, но остаются в коде на том месте, где вы их объявили.

    diff --git a/files/ru/glossary/host/index.html b/files/ru/glossary/host/index.html index 667e65ab28..06ad19cdd1 100644 --- a/files/ru/glossary/host/index.html +++ b/files/ru/glossary/host/index.html @@ -1,6 +1,6 @@ --- title: Host -slug: Словарь/Host +slug: Glossary/Host tags: - Glossary - Intermediate @@ -8,6 +8,7 @@ tags: - WebMechanics - Словарь translation_of: Glossary/Host +original_slug: Словарь/Host ---

    Хост - это устройство, подключенное к {{glossary("Internet", "Интернет")}} (или локальной сети). Некоторые хосты, называемые {{glossary("server", "сервер", "серверами")}}, предлагают дополнительные услуги, такие как обслуживание веб-страниц или хранение файлов и электронных писем.

    diff --git a/files/ru/glossary/html/index.html b/files/ru/glossary/html/index.html index 560c7101c3..90f80103c8 100644 --- a/files/ru/glossary/html/index.html +++ b/files/ru/glossary/html/index.html @@ -1,10 +1,11 @@ --- title: HTML -slug: Словарь/HTML +slug: Glossary/HTML tags: - Glossary - HTML translation_of: Glossary/HTML +original_slug: Словарь/HTML ---

    HTML (от англ. HyperText Markup Language — «язык гипертекстовой разметки») — язык разметки, определяющий структуру веб-страниц.

    diff --git a/files/ru/glossary/html5/index.html b/files/ru/glossary/html5/index.html index b081f5c053..d4b8156b62 100644 --- a/files/ru/glossary/html5/index.html +++ b/files/ru/glossary/html5/index.html @@ -1,6 +1,6 @@ --- title: HTML5 -slug: Словарь/HTML5 +slug: Glossary/HTML5 tags: - CodingScripting - HTML @@ -9,6 +9,7 @@ tags: - Разметка - Словарь translation_of: Glossary/HTML5 +original_slug: Словарь/HTML5 ---

    Последний стабильный релиз {{Glossary("HTML")}}, HTML5 преобразовывает HTML из простого языка для разметки документа в платформу для разработки полноценных приложений. Среди других особенностей, HTML5 включает в себя новые элементы и {{glossary("JavaScript")}} {{glossary("API")}} для улучшения доступа к хранилищу, мультимедиа и аппаратным средствам.

    diff --git a/files/ru/glossary/http/index.html b/files/ru/glossary/http/index.html index 2d9b3f539b..894a9b4222 100644 --- a/files/ru/glossary/http/index.html +++ b/files/ru/glossary/http/index.html @@ -1,6 +1,6 @@ --- title: HTTP -slug: Словарь/HTTP +slug: Glossary/HTTP tags: - HTTP - Глоссарий @@ -8,6 +8,7 @@ tags: - инфраструктура - протокол передачи гипертекста translation_of: Glossary/HTTP +original_slug: Словарь/HTTP ---

    Протокол передачи гипертекста (HTTP) является базовым сетевым {{glossary("protocol")}}, который позволяет передавать гипермедиа документы в {{glossary("World Wide Web","Web")}}, обычно между браузером и сервером, таким образом, что бы люди могли их читать. Текущая версия спецификации HTTP называется HTTP/2.

    diff --git a/files/ru/glossary/http_2/index.html b/files/ru/glossary/http_2/index.html index 3423133e8d..819c6149f2 100644 --- a/files/ru/glossary/http_2/index.html +++ b/files/ru/glossary/http_2/index.html @@ -1,6 +1,6 @@ --- title: HTTP/2 -slug: Словарь/HTTP_2 +slug: Glossary/HTTP_2 tags: - Glossary - HTTP @@ -8,6 +8,7 @@ tags: - Reference - Web Performance translation_of: Glossary/HTTP_2 +original_slug: Словарь/HTTP_2 ---

    HTTP/2 это старшая версия сетевого протокола HTTP. Основным назначеним HTTP/2 является снижение задержки({{glossary("latency")}})  путём реализации полного мультиплексирования запросов и ответов, уменьшения перегруженности протокола при помощи эффективного сжатия заголовков HTTP, а также добавления поддержки приоритетов запроса и "server push"("серверне проталкивание" - сервер имея правила, может проявить инициативу, которые инициируют отправку контента до его запроса, зная о том, что может поступить запрос на их отправку).

    diff --git a/files/ru/glossary/https/index.html b/files/ru/glossary/https/index.html index 21c860794a..01d3eedbfc 100644 --- a/files/ru/glossary/https/index.html +++ b/files/ru/glossary/https/index.html @@ -1,10 +1,11 @@ --- title: HTTPS -slug: Словарь/https +slug: Glossary/https tags: - HTTPS - Безопасность translation_of: Glossary/https +original_slug: Словарь/https ---

    HTTPS (HTTP Secure) является зашифрованной версией {{Glossary("HTTP")}} протокола. Обычно он использует {{Glossary("SSL")}} или {{Glossary("TLS")}} для шифрования соединения между клиентом и сервером. Это безопасное соединение позволяет клиентам безопасно обмениваться конфиденциальными данными с сервером, например, для банковских операций или онлайн-покупок.

    diff --git a/files/ru/glossary/hypertext/index.html b/files/ru/glossary/hypertext/index.html index 75e77edbf5..420bbd25c1 100644 --- a/files/ru/glossary/hypertext/index.html +++ b/files/ru/glossary/hypertext/index.html @@ -1,12 +1,13 @@ --- title: Гипертекст -slug: Словарь/Гипертекст +slug: Glossary/Hypertext tags: - Веб - Глоссарий - Механика Веба - гипертекст translation_of: Glossary/Hypertext +original_slug: Словарь/Гипертекст ---

    Гипертекст - это текст, содержащий ссылки на другие тексты.

    diff --git a/files/ru/glossary/iana/index.html b/files/ru/glossary/iana/index.html index 3e2b4fc33e..9af6924f89 100644 --- a/files/ru/glossary/iana/index.html +++ b/files/ru/glossary/iana/index.html @@ -1,7 +1,8 @@ --- title: IANA -slug: Словарь/IANA +slug: Glossary/IANA translation_of: Glossary/IANA +original_slug: Словарь/IANA ---

    IANA (Internet Assigned Numbers Authority) является дочерней компанией {{glossary("ICANN")}}, задача которой записывать и/или назначать {{glossary("domain name","domain names")}}, {{glossary("IP address","IP addresses")}}, и другие имена и номера, используемые Интернетом {{glossary("protocol","protocols")}}.

    diff --git a/files/ru/glossary/icann/index.html b/files/ru/glossary/icann/index.html index e67e2d4b6f..c1b4281efe 100644 --- a/files/ru/glossary/icann/index.html +++ b/files/ru/glossary/icann/index.html @@ -1,7 +1,8 @@ --- title: ICANN -slug: Словарь/ICANN +slug: Glossary/ICANN translation_of: Glossary/ICANN +original_slug: Словарь/ICANN ---

    ICANN (Internet Corporation of Assigned Names and Numbers) является международной некоммерческой организацией, которая поддерживает {{glossary("DNS","domain name system")}} и запись {{glossary("IP address","IP addresses")}}.

    diff --git a/files/ru/glossary/idempotent/index.html b/files/ru/glossary/idempotent/index.html index 569dbc0168..114828a420 100644 --- a/files/ru/glossary/idempotent/index.html +++ b/files/ru/glossary/idempotent/index.html @@ -1,10 +1,11 @@ --- title: Идемпотентный метод -slug: Словарь/Idempotent +slug: Glossary/Idempotent tags: - Glossary - HTTP translation_of: Glossary/Idempotent +original_slug: Словарь/Idempotent ---

    Метод HTTP является идемпотентным, если повторный идентичный запрос, сделанный один или несколько раз подряд, имеет один и тот же эффект, не изменяющий состояние сервера. Другими словами, идемпотентный метод не должен иметь никаких побочных эффектов (side-effects), кроме сбора статистики или подобных операций. Корректно реализованные методы {{HTTPMethod("GET")}}, {{HTTPMethod("HEAD")}}, {{HTTPMethod("PUT")}} и {{HTTPMethod("DELETE")}} идемпотентны, но не метод {{HTTPMethod("POST")}}. Также все {{glossary("safe", "безопасные")}} методы являются идемпотентными.

    diff --git a/files/ru/glossary/identifier/index.html b/files/ru/glossary/identifier/index.html index ea244035d4..ffe2656c73 100644 --- a/files/ru/glossary/identifier/index.html +++ b/files/ru/glossary/identifier/index.html @@ -1,10 +1,11 @@ --- title: Идентификатор -slug: Словарь/Identifier +slug: Glossary/Identifier tags: - Глоссарий - начальный уровень translation_of: Glossary/Identifier +original_slug: Словарь/Identifier ---

    Последовательность символов в коде, которые определяют {{glossary("variable")}}, {{glossary("function")}} или {{glossary("property")}}.

    diff --git a/files/ru/glossary/ietf/index.html b/files/ru/glossary/ietf/index.html index 538f7a6df0..b120bf4c3c 100644 --- a/files/ru/glossary/ietf/index.html +++ b/files/ru/glossary/ietf/index.html @@ -1,6 +1,6 @@ --- title: IETF -slug: Словарь/IETF +slug: Glossary/IETF tags: - IETF - Глоссарий @@ -8,6 +8,7 @@ tags: - Словарь - инфраструктура translation_of: Glossary/IETF +original_slug: Словарь/IETF ---

    Инженерный совет Интернета (IETF) это всемирная организация, которая разрабатывает спецификации регулирующие механизмы, лежащие в основе {{glossary("Internet", "интернета")}}, особенно {{glossary("TCP")}}/{{glossary("IPv6","IP")}} илипакет {{glossary("Protocol","протоколов")}} интернета. IETF это открытое сообщество, управляется добровольцами и спонсируется интернет-сообществом.

    diff --git a/files/ru/glossary/iife/index.html b/files/ru/glossary/iife/index.html index 7c764f6f71..7a268bcc39 100644 --- a/files/ru/glossary/iife/index.html +++ b/files/ru/glossary/iife/index.html @@ -1,12 +1,13 @@ --- title: IIFE -slug: Словарь/IIFE +slug: Glossary/IIFE tags: - IIFE - JavaScript - Глоссарий - КодингСкриптинг translation_of: Glossary/IIFE +original_slug: Словарь/IIFE ---

    IIFE (Immediately Invoked Function Expression) это {{glossary("JavaScript")}} {{glossary("функция")}}, которая выполняется сразу же после того, как она была определена.

    diff --git a/files/ru/glossary/index.html b/files/ru/glossary/index.html index 758dfb9000..a9bf8fa45e 100644 --- a/files/ru/glossary/index.html +++ b/files/ru/glossary/index.html @@ -1,11 +1,12 @@ --- title: Словарь -slug: Словарь +slug: Glossary tags: - Глоссарий - Новичку - Словарь translation_of: Glossary +original_slug: Словарь ---
    {{LearnBox({"title":"Узнайте новый термин:"})}}
    diff --git a/files/ru/glossary/indexeddb/index.html b/files/ru/glossary/indexeddb/index.html index e4aee4fc0a..8de80b46a2 100644 --- a/files/ru/glossary/indexeddb/index.html +++ b/files/ru/glossary/indexeddb/index.html @@ -1,6 +1,6 @@ --- title: IndexedDB -slug: Словарь/IndexedDB +slug: Glossary/IndexedDB tags: - API - CodingScripting @@ -8,6 +8,7 @@ tags: - Glossary - Sql translation_of: Glossary/IndexedDB +original_slug: Словарь/IndexedDB ---

    IndexedDB это Web {{glossary("API")}} интерфейс, который позволяет хранить большие данные внутри браузера. Также используется индексирование для поддержания высоко-производительного поиска по данным. Подобно {{glossary("SQL")}}-основанным RDBMS, IndexedDB это транзакционная система базы данных. Но в отличие от RDBMS, которая для хранения использует таблицы с фиксированными колонками, IndexedDB использует {{glossary("JavaScript")}} объекты.

    diff --git a/files/ru/glossary/information_architecture/index.html b/files/ru/glossary/information_architecture/index.html index 884c1a85e4..9f6244e622 100644 --- a/files/ru/glossary/information_architecture/index.html +++ b/files/ru/glossary/information_architecture/index.html @@ -1,7 +1,8 @@ --- title: Архитектура данных -slug: Словарь/Information_architecture +slug: Glossary/Information_architecture translation_of: Glossary/Information_architecture +original_slug: Словарь/Information_architecture ---

    Архитектура данных, относящаяся к веб-дизайну и веб-разработке,является методом организации данных / контента / функционала веб-сайта,со всеми данными и сервисами,доступ и непосредственное использование которых не представляет трудностей,и таким образом дающим пользователю максимальное удобство в использовании данного веб-ресурса.

    diff --git a/files/ru/glossary/internet/index.html b/files/ru/glossary/internet/index.html index 950220263c..d15bbc4107 100644 --- a/files/ru/glossary/internet/index.html +++ b/files/ru/glossary/internet/index.html @@ -1,6 +1,6 @@ --- title: Интернет -slug: Словарь/Internet +slug: Glossary/Internet tags: - Beginner - Glossary @@ -19,6 +19,7 @@ tags: - Учебник - туториал translation_of: Glossary/Internet +original_slug: Словарь/Internet ---

    Интернет — это всемирная сеть сетей, в которой используется набор интернет-протоколов (называемый также {{glossary("TCP")}}/{{glossary("IPv6","IP")}} по двум наиболее важным {{glossary("protocol","протоколам")}}).

    diff --git a/files/ru/glossary/ip_address/index.html b/files/ru/glossary/ip_address/index.html index b3752b53a2..8c6892fff7 100644 --- a/files/ru/glossary/ip_address/index.html +++ b/files/ru/glossary/ip_address/index.html @@ -1,6 +1,6 @@ --- title: IP Address -slug: Словарь/IP_Address +slug: Glossary/IP_Address tags: - Основы - Словарь @@ -8,6 +8,7 @@ tags: - сеть - терминология translation_of: Glossary/IP_Address +original_slug: Словарь/IP_Address ---

    IP адрес - это число, назначенное каждому устройству, подключённому к сети, которая использует Интернет-протокол. 

    diff --git a/files/ru/glossary/iso/index.html b/files/ru/glossary/iso/index.html index 98d2226829..6ee7c78308 100644 --- a/files/ru/glossary/iso/index.html +++ b/files/ru/glossary/iso/index.html @@ -1,12 +1,13 @@ --- title: ISO -slug: Словарь/ISO +slug: Glossary/ISO tags: - ISO - Глоссарий - Стандарты веб - инфраструктура translation_of: Glossary/ISO +original_slug: Словарь/ISO ---

    ISO (Международная организация по стандартизации) - это глобальная ассоциация, которая разрабатывает единые критерии, координирующие деятельность компаний в каждой крупной отрасли.

    diff --git a/files/ru/glossary/isp/index.html b/files/ru/glossary/isp/index.html index 11d9b86957..306c905762 100644 --- a/files/ru/glossary/isp/index.html +++ b/files/ru/glossary/isp/index.html @@ -1,12 +1,13 @@ --- title: Интернет-провайдер -slug: Словарь/Интернет-провайдер +slug: Glossary/ISP tags: - ISP - Веб - Интернет-провайдер - Словарь translation_of: Glossary/ISP +original_slug: Словарь/Интернет-провайдер ---

    ISP (Интернет-провайдер) продает доступ к интернету, а иногда и электронную почту, веб-хостинг и VoIP, либо путем установления соединения по телефонной линии (которая раньше была распространена), либо через широкополосное соединение, такое как кабельный модем или DSL-сервис. 

    diff --git a/files/ru/glossary/java/index.html b/files/ru/glossary/java/index.html index 6aa04149f8..052312a396 100644 --- a/files/ru/glossary/java/index.html +++ b/files/ru/glossary/java/index.html @@ -1,11 +1,12 @@ --- title: Java -slug: Словарь/Java +slug: Glossary/Java tags: - Java - Глоссарий - Язык программирования translation_of: Glossary/Java +original_slug: Словарь/Java ---

    Java — {{glossary("Compile", "компилируемый")}}, {{glossary("OOP", "объектно-ориентированный")}} и легко переносимый язык {{Glossary("computer programming", "программирования")}}.

    diff --git a/files/ru/glossary/javascript/index.html b/files/ru/glossary/javascript/index.html index 330e6ad88a..1c80137ef1 100644 --- a/files/ru/glossary/javascript/index.html +++ b/files/ru/glossary/javascript/index.html @@ -1,11 +1,12 @@ --- title: JavaScript -slug: Словарь/JavaScript +slug: Glossary/JavaScript tags: - Glossary - JavaScript - Глоссарий translation_of: Glossary/JavaScript +original_slug: Словарь/JavaScript ---

    JavaScript (JS) это язык программирования, который в основном используется для создания динамических скриптов на веб-страницах, но он так же часто применяется на стороне {{Glossary("Server", "сервера")}}, используя пакеты, такие как Node.JS.

    diff --git a/files/ru/glossary/jpeg/index.html b/files/ru/glossary/jpeg/index.html index 19218f558f..6511f7258b 100644 --- a/files/ru/glossary/jpeg/index.html +++ b/files/ru/glossary/jpeg/index.html @@ -1,10 +1,11 @@ --- title: JPEG -slug: Словарь/jpeg +slug: Glossary/jpeg tags: - Изображения - Словарь translation_of: Glossary/jpeg +original_slug: Словарь/jpeg ---

    JPEG (произносится «джейпег», англ. Joint Photographic Experts Group, по названию организации-разработчика) — является широко используемым методом сжатия с потерями данных для цифровых изображений.

    diff --git a/files/ru/glossary/jquery/index.html b/files/ru/glossary/jquery/index.html index 666d9a3fc1..6a00c145a0 100644 --- a/files/ru/glossary/jquery/index.html +++ b/files/ru/glossary/jquery/index.html @@ -1,7 +1,8 @@ --- title: jQuery -slug: Словарь/jQuery +slug: Glossary/jQuery translation_of: Glossary/jQuery +original_slug: Словарь/jQuery ---

    jQuery это  {{Glossary("JavaScript")}} {{Glossary("Библиотека")}} сфокусированная на  управлении {{Glossary("DOM")}} , вызовах {{Glossary("AJAX")}} , и  {{Glossary("событиях")}} обработки.

    diff --git a/files/ru/glossary/json/index.html b/files/ru/glossary/json/index.html index 9993de4e8f..d83fa2e829 100644 --- a/files/ru/glossary/json/index.html +++ b/files/ru/glossary/json/index.html @@ -1,12 +1,13 @@ --- title: JSON -slug: Словарь/JSON +slug: Glossary/JSON tags: - JSON - Введение - Глоссарий - Написание скриптов translation_of: Glossary/JSON +original_slug: Словарь/JSON ---

    JavaScript Object Notation (JSON) это формат обмена данными.  Несмотря на то, что JSON не является строгим подмножеством, он напоминает синтаксис {{Glossary("JavaScript")}}. Хотя много языков программирования поддерживают JSON, он особенно полезен для JavaScript-приложений, таких как веб-сайты и расширения для браузера.

    diff --git a/files/ru/glossary/loop/index.html b/files/ru/glossary/loop/index.html index 95c17d0620..a19b8c592c 100644 --- a/files/ru/glossary/loop/index.html +++ b/files/ru/glossary/loop/index.html @@ -1,6 +1,6 @@ --- title: Loop -slug: Словарь/loop +slug: Glossary/loop tags: - Glossary - control flow @@ -8,6 +8,7 @@ tags: - Словарь - контроль потока translation_of: Glossary/loop +original_slug: Словарь/loop ---

    Цикл - это последовательность инструкций, которая постоянно повторяется до тех пор, пока в {{Glossary('computer programming', 'программе')}} не будет выполнено определенное условие. Примером может служить процесс получения элемента данных, его последующего изменения, а затем проверки некоторых {{Glossary ('conditional', 'условий')}}, например, что счетчик достиг заданного числа.

    diff --git a/files/ru/glossary/main_axis/index.html b/files/ru/glossary/main_axis/index.html index 02c5f99ae3..88d439ffd4 100644 --- a/files/ru/glossary/main_axis/index.html +++ b/files/ru/glossary/main_axis/index.html @@ -1,7 +1,8 @@ --- title: Главная ось -slug: Словарь/Main_Axis +slug: Glossary/Main_Axis translation_of: Glossary/Main_Axis +original_slug: Словарь/Main_Axis ---

    Главная ось в {{glossary("flexbox")}} определяется направлением, установленным в свойстве {{cssxref("flex-direction")}}. Это свойство может принимать одно из четырёх значений:

    diff --git a/files/ru/glossary/mathml/index.html b/files/ru/glossary/mathml/index.html index 0b4c5caaca..38e1683f6c 100644 --- a/files/ru/glossary/mathml/index.html +++ b/files/ru/glossary/mathml/index.html @@ -1,6 +1,6 @@ --- title: MathML -slug: Словарь/MathML +slug: Glossary/MathML tags: - CodingScripting - Glossary @@ -8,6 +8,7 @@ tags: - Mathematical Markup Language - XML translation_of: Glossary/MathML +original_slug: Словарь/MathML ---

    MathML ({{glossary("XML")}} приложение) - это открытый стандарт для представления математических выражений на веб-страницах.  В 1998 году W3C впервые рекомендовал MathML для представления математических выражений в {{glossary("browser")}}. MathML имеет и другие применения, включающие научный контент и синтез голоса.

    diff --git a/files/ru/glossary/metadata/index.html b/files/ru/glossary/metadata/index.html index 75122f3bf4..467f5194b4 100644 --- a/files/ru/glossary/metadata/index.html +++ b/files/ru/glossary/metadata/index.html @@ -1,7 +1,8 @@ --- title: Метаданные -slug: Словарь/Метаданные +slug: Glossary/Metadata translation_of: Glossary/Metadata +original_slug: Словарь/Метаданные ---

    Метаданные - это, в самом простом определении, данные, что описывают данные. Например, {{ glossary("HTML") }}-документ - это данные, но HTML также может содержать метаданные в элементе {{ htmlelement("head") }}, который описывает документ, например кто его написал и его резюме.

    diff --git a/files/ru/glossary/method/index.html b/files/ru/glossary/method/index.html index 775570fb71..9ac2de9f2b 100644 --- a/files/ru/glossary/method/index.html +++ b/files/ru/glossary/method/index.html @@ -1,10 +1,11 @@ --- title: Метод -slug: Словарь/Method +slug: Glossary/Method tags: - JavaScript - Словарь translation_of: Glossary/Method +original_slug: Словарь/Method ---

    Метод это {{glossary("function","функция")}}, являющаяся {{glossary("property","свойством")}} {{glossary("object","объекта")}}. Существует два типа методов: Методы Экземпляра которые являются встроенными задачами, выполняемыми экземпляром объекта, или {{Glossary("static method", "Статические Методы")}} которые являются задачами, вызываемыми непосредственно в конструкторе объекта.

    diff --git a/files/ru/glossary/microsoft_internet_explorer/index.html b/files/ru/glossary/microsoft_internet_explorer/index.html index 1770cb13d7..95d9230d72 100644 --- a/files/ru/glossary/microsoft_internet_explorer/index.html +++ b/files/ru/glossary/microsoft_internet_explorer/index.html @@ -1,11 +1,12 @@ --- title: Microsoft Internet Explorer -slug: Словарь/Microsoft_Internet_Explorer +slug: Glossary/Microsoft_Internet_Explorer tags: - Microsoft - Microsoft Internet Explorer - Windows translation_of: Glossary/Microsoft_Internet_Explorer +original_slug: Словарь/Microsoft_Internet_Explorer ---

    Internet Explorer (или IE) - это бесплатный графический {{glossary("browser", "браузер")}}, созданный Microsoft для использования внутри компании. {{glossary("Microsoft Edge")}} - на данный момент Windows браузер по умолчанию.

    diff --git a/files/ru/glossary/mime_type/index.html b/files/ru/glossary/mime_type/index.html index 7995c6400e..5ef1a9e62a 100644 --- a/files/ru/glossary/mime_type/index.html +++ b/files/ru/glossary/mime_type/index.html @@ -1,11 +1,12 @@ --- title: MIME-тип -slug: Словарь/MIME_type +slug: Glossary/MIME_type tags: - MIME-тип - Media-тип - Медиа тип translation_of: Glossary/MIME_type +original_slug: Словарь/MIME_type ---

    MIME-тип (называемый "media type", а иногда "content type") - это строка, отправляемая вместе с файлом, которая указывает тип файла. (например, передаваемый аудиофайл может быть помечен как audio/ogg тип, а изображение - image/png). MIME-тип играет точно такую же роль, как и расширение файла в системе Windows. Когда HTTP-сообщение содержит Content-type заголовок, тело запроса будет парситься в соответствии с MIME-типом, указанным в заголовке.  

    diff --git a/files/ru/glossary/mixin/index.html b/files/ru/glossary/mixin/index.html index 8f0e369515..7bbbb35a86 100644 --- a/files/ru/glossary/mixin/index.html +++ b/files/ru/glossary/mixin/index.html @@ -1,6 +1,6 @@ --- title: Миксин -slug: Словарь/Mixin +slug: Glossary/Mixin tags: - Интерфейс - Класс @@ -8,6 +8,7 @@ tags: - метод - миксин translation_of: Glossary/Mixin +original_slug: Словарь/Mixin ---

    Миксин (дословно: "примесь) - класс ({{Glossary("class")}}) или интерфейс, в котором некоторые или все его методы ({{Glossary("method", "methods")}}) и/или свойства ({{Glossary("property", "properties")}}) не реализованы, требуя, чтобы другой класс или интерфейс обеспечивал недостающие реализации. Новый класс или интерфейс затем включает в себя как свойства и методы из миксина, так и те, которые он определяет сам. Все методы и свойства используются совершенно одинаково, независимо от того, реализованы ли они в миксине, интерфейсе или классе, реализующем миксин.

    diff --git a/files/ru/glossary/node.js/index.html b/files/ru/glossary/node.js/index.html index 7204c8f02c..1b016cc75a 100644 --- a/files/ru/glossary/node.js/index.html +++ b/files/ru/glossary/node.js/index.html @@ -1,12 +1,13 @@ --- title: Node.js -slug: Словарь/Node.js +slug: Glossary/Node.js tags: - Glossary - Infrastructure - JavaScript - node.js translation_of: Glossary/Node.js +original_slug: Словарь/Node.js ---

    Node.js является межплатформенной средой выполнения, созданной на {{Glossary("JavaScript")}}, которая позволяет разработчикам создавать серверные и сетевые приложения с помощью JavaScript.

    diff --git a/files/ru/glossary/null/index.html b/files/ru/glossary/null/index.html index 5b2520923b..44947ccf98 100644 --- a/files/ru/glossary/null/index.html +++ b/files/ru/glossary/null/index.html @@ -1,10 +1,11 @@ --- title: 'Null' -slug: Словарь/Null +slug: Glossary/Null tags: - CodingScripting - Glossary translation_of: Glossary/Null +original_slug: Словарь/Null ---

    В информатике, значение null представляет ссылку, которая указывает, обычно намеренно, на несуществующий или некорректный {{glossary("object")}} или адрес. Смысл null-ссылки различается от языка к языку.

    diff --git a/files/ru/glossary/number/index.html b/files/ru/glossary/number/index.html index 07f67d2729..9059e6fa0f 100644 --- a/files/ru/glossary/number/index.html +++ b/files/ru/glossary/number/index.html @@ -1,10 +1,11 @@ --- title: Number (Числовой тип данных) -slug: Словарь/Number +slug: Glossary/Number tags: - JavaScript - Типы данных translation_of: Glossary/Number +original_slug: Словарь/Number ---

    В {{Glossary("JavaScript")}}, Number - числовой тип данных в формате 64-битного числа двойной точности с плавающей запятой. В других языках программирования может существовать несколько чиловых типов данных, например: Integer, Float, Double или Bignum.

    diff --git a/files/ru/glossary/object/index.html b/files/ru/glossary/object/index.html index 4bb269fa22..bb8dafa4ba 100644 --- a/files/ru/glossary/object/index.html +++ b/files/ru/glossary/object/index.html @@ -1,6 +1,6 @@ --- title: Объект -slug: Словарь/Object +slug: Glossary/Object tags: - CodingScripting - Glossary @@ -10,6 +10,7 @@ tags: - Объект - Словарь translation_of: Glossary/Object +original_slug: Словарь/Object ---

    Объект относится к структуре данных, содержит в себе данные и инструкции по работе с ними. Объекты могут обозначать реальные вещи, например: машину, яблоко, человека или даже карту к сокровищам с ее координатами и инструкциями о том, как добраться до этих сокровищ.

    diff --git a/files/ru/glossary/oop/index.html b/files/ru/glossary/oop/index.html index f90b31c18c..bfe772849d 100644 --- a/files/ru/glossary/oop/index.html +++ b/files/ru/glossary/oop/index.html @@ -1,11 +1,12 @@ --- title: OOП -slug: Словарь/OOP +slug: Glossary/OOP tags: - Beginner - CodingScripting - Glossary translation_of: Glossary/OOP +original_slug: Словарь/OOP ---

    OOП (Объектно-Ориентированное Программирование) это подход в программировании, согласно которому, данные инкапсулированы внутри {{glossary("object","objects")}}, а сам объект существует как составная часть целого.

    diff --git a/files/ru/glossary/opengl/index.html b/files/ru/glossary/opengl/index.html index c6aa1376be..72a5a19910 100644 --- a/files/ru/glossary/opengl/index.html +++ b/files/ru/glossary/opengl/index.html @@ -1,7 +1,8 @@ --- title: OpenGL -slug: Словарь/OpenGL +slug: Glossary/OpenGL translation_of: Glossary/OpenGL +original_slug: Словарь/OpenGL ---

    OpenGL (Open Graphics Library) -  Это кроссплатформеный программный интерфейс, использующийся разными языками для обработки векторной(2D, 3D) графики.Обычно используется для взаимодействия с графическим процессором(GPU), чтобы добиться аппаратно-ускоренного рендеринга.

    diff --git a/files/ru/glossary/origin/index.html b/files/ru/glossary/origin/index.html index 4b95d3a888..d494e98aec 100644 --- a/files/ru/glossary/origin/index.html +++ b/files/ru/glossary/origin/index.html @@ -1,7 +1,8 @@ --- title: Первичные данные -slug: Словарь/origin +slug: Glossary/Origin translation_of: Glossary/Origin +original_slug: Словарь/origin ---

    Браузер отправляет серверу первичные данные - протокол, хистинг, домен, порт соединения через {{Glossary("URL")}}. Два объекта одинаковые если протокол, хост, домен и порт одинаковые.

    diff --git a/files/ru/glossary/php/index.html b/files/ru/glossary/php/index.html index 626e15310a..7fe12c9a16 100644 --- a/files/ru/glossary/php/index.html +++ b/files/ru/glossary/php/index.html @@ -1,7 +1,8 @@ --- title: PHP -slug: Словарь/PHP +slug: Glossary/PHP translation_of: Glossary/PHP +original_slug: Словарь/PHP ---
    PHP, расшифровывающийся как "PHP: Hypertext Preprocessor" - «PHP: Препроцессор Гипертекста», является распространенным интерпретируемым языком общего назначения с открытым исходным кодом. PHP создавался специально для ведения web-разработок и код на нем может внедряться непосредственно в HTML-код. Синтаксис языка берет начало из C, Java и Perl, и является легким для изучения. Основной целью PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц, однако область применения PHP не ограничивается только этим.
    diff --git a/files/ru/glossary/pixel/index.html b/files/ru/glossary/pixel/index.html index dbe4aa4eb6..9f1db811d9 100644 --- a/files/ru/glossary/pixel/index.html +++ b/files/ru/glossary/pixel/index.html @@ -1,10 +1,11 @@ --- title: Pixel -slug: Словарь/Pixel +slug: Glossary/Pixel tags: - Glossary - Graphics translation_of: Glossary/Pixel +original_slug: Словарь/Pixel ---

    Пиксель (англ. Pixel) - маленький строительный блок графического дисплея экрана компьютера.

    diff --git a/files/ru/glossary/polymorphism/index.html b/files/ru/glossary/polymorphism/index.html index bea130b908..1fea8ba38d 100644 --- a/files/ru/glossary/polymorphism/index.html +++ b/files/ru/glossary/polymorphism/index.html @@ -1,10 +1,11 @@ --- title: Полиморфизм -slug: Словарь/Polymorphism +slug: Glossary/Polymorphism tags: - CodingScripting - Glossary translation_of: Glossary/Polymorphism +original_slug: Словарь/Polymorphism ---

    Полиморфизм - это представление одного интерфейса для разных типов данных.

    diff --git a/files/ru/glossary/port/index.html b/files/ru/glossary/port/index.html index d4443e736e..7ad7227103 100644 --- a/files/ru/glossary/port/index.html +++ b/files/ru/glossary/port/index.html @@ -1,6 +1,6 @@ --- title: Порт -slug: Словарь/Порт +slug: Glossary/Port tags: - Glossary - Intro @@ -8,6 +8,7 @@ tags: - computer network - port translation_of: Glossary/Port +original_slug: Словарь/Порт ---

    Для подключенного к сети компьютера с {{Glossary("IP address")}}, порт это конечная точка входа для коммуникаций. Порты обозначаются числами, и до 1024 каждому порту по умолчанию назначен некоторый протокол.

    diff --git a/files/ru/glossary/primitive/index.html b/files/ru/glossary/primitive/index.html index cdeff2610a..6c04ad2aa4 100644 --- a/files/ru/glossary/primitive/index.html +++ b/files/ru/glossary/primitive/index.html @@ -1,11 +1,12 @@ --- title: Primitive -slug: Словарь/Primitive +slug: Glossary/Primitive tags: - CodingScripting - Glossary - JavaScript translation_of: Glossary/Primitive +original_slug: Словарь/Primitive ---

    Примитив (значение примитивного типа, примитивный тип данных) это данные, которые не являются {{glossary("object", "объектом")}} и не имеют {{glossary("method","методов")}}. В {{Glossary("JavaScript")}} 7 простых типов данных: {{Glossary("string")}}, {{Glossary("number")}}, {{Glossary("boolean")}}, {{Glossary("null")}}, {{Glossary("undefined")}}, {{Glossary("symbol")}} (новое в {{Glossary("ECMAScript")}} 2015), {{Glossary("bigint")}}.

    diff --git a/files/ru/glossary/privileged_code/index.html b/files/ru/glossary/privileged_code/index.html index c8f7e0c484..a24387e9af 100644 --- a/files/ru/glossary/privileged_code/index.html +++ b/files/ru/glossary/privileged_code/index.html @@ -1,9 +1,10 @@ --- title: Привилегированный код -slug: Словарь/privileged_code +slug: Glossary/privileged_code tags: - privileged translation_of: Glossary/privileged_code +original_slug: Словарь/privileged_code ---

    Привилегированный код (Privileged code) - Javascript-код расширения, например, скриптов content scripts.

    diff --git a/files/ru/glossary/progressive_web_apps/index.html b/files/ru/glossary/progressive_web_apps/index.html index d839ddf725..1aeed6d85f 100644 --- a/files/ru/glossary/progressive_web_apps/index.html +++ b/files/ru/glossary/progressive_web_apps/index.html @@ -1,10 +1,11 @@ --- title: Прогрессивные веб приложения -slug: Словарь/Progressive_web_apps +slug: Glossary/Progressive_web_apps tags: - Глоссарий - Прогрессивные веб-приложения translation_of: Glossary/Progressive_web_apps +original_slug: Словарь/Progressive_web_apps ---

    Прогрессивные веб-приложения — это термин, используемый для описания современного состояния разработки веб-приложений. Включает в себя использование стандартов веб-сайтов/приложений, которые используют все лучшие части Интернета, такие как возможность обнаружения поисковыми системами, возможность ссылки через {{Glossary("URL")}}  работу с различными форм-факторами, и их усиление с современными API-интерфейсами (такими как Service Workers и Push) и функциями, которые предоставляют другие преимущества, обычно присущие нативным приложениям.

    diff --git a/files/ru/glossary/promise/index.html b/files/ru/glossary/promise/index.html index 23ed273c40..f3175a21c9 100644 --- a/files/ru/glossary/promise/index.html +++ b/files/ru/glossary/promise/index.html @@ -1,10 +1,11 @@ --- title: Promise -slug: Словарь/Promise +slug: Glossary/Promise tags: - Словарь - асинхронный translation_of: Glossary/Promise +original_slug: Словарь/Promise ---

    A {{jsxref("Promise")}} - это {{Glossary("Object")}}, возвращаемый {{Glossary("function")}}, которая еще не завершила свою работу. Promise буквально представляет собой 'обещание' функции в итоге вернуть результат через объект промиса.

    diff --git a/files/ru/glossary/property/index.html b/files/ru/glossary/property/index.html index 92f27a9b35..b754fce996 100644 --- a/files/ru/glossary/property/index.html +++ b/files/ru/glossary/property/index.html @@ -1,11 +1,12 @@ --- title: Свойство -slug: Словарь/property +slug: Glossary/property tags: - Глоссарий - Неоднозначность - Словарь терминов translation_of: Glossary/property +original_slug: Словарь/property ---

    Термин свойство может иметь разное значение, в зависимости от контекста. Он может указывать на:

    diff --git a/files/ru/glossary/protocol/index.html b/files/ru/glossary/protocol/index.html index 86ad7407af..88945cc085 100644 --- a/files/ru/glossary/protocol/index.html +++ b/files/ru/glossary/protocol/index.html @@ -1,11 +1,12 @@ --- title: Протокол -slug: Словарь/Протокол +slug: Glossary/Protocol tags: - Глоссарий - инфраструктура - протокол translation_of: Glossary/Protocol +original_slug: Словарь/Протокол ---

    Протокол - это система правил, определяющая, как данные обмениваются внутри или между компьютерами.  Для связи между устройствами требуется согласование формата данных, которые будут использоваться для обмена. Набор правил, определяющих формат, называется протоколом.

    diff --git a/files/ru/glossary/prototype-based_programming/index.html b/files/ru/glossary/prototype-based_programming/index.html index 78e3828363..f0cd9214ff 100644 --- a/files/ru/glossary/prototype-based_programming/index.html +++ b/files/ru/glossary/prototype-based_programming/index.html @@ -1,10 +1,11 @@ --- title: Прототипно-ориентированное программирование -slug: Словарь/Prototype-based_programming +slug: Glossary/Prototype-based_programming tags: - Glossary - Глоссарий translation_of: Glossary/Prototype-based_programming +original_slug: Словарь/Prototype-based_programming ---

    Прототипно-ориентированный стиль объектно-ориентированного программирования тот, в котором классы определены неявно, а производные классы получаются добавлением свойств и методов в экземпляр другого класса или, значительно реже, к пустому объекту.

    diff --git a/files/ru/glossary/prototype/index.html b/files/ru/glossary/prototype/index.html index cd248a94a9..a130ef53c3 100644 --- a/files/ru/glossary/prototype/index.html +++ b/files/ru/glossary/prototype/index.html @@ -1,9 +1,10 @@ --- title: Прототип -slug: Словарь/Прототип +slug: Glossary/Prototype tags: - прототип translation_of: Glossary/Prototype +original_slug: Словарь/Прототип ---

    Прототип — модель, отображающая внешний вид и поведение приложения или продукта в начале цикла разработки.

    diff --git a/files/ru/glossary/proxy_server/index.html b/files/ru/glossary/proxy_server/index.html index e545c3b1b0..5c32b8fbc4 100644 --- a/files/ru/glossary/proxy_server/index.html +++ b/files/ru/glossary/proxy_server/index.html @@ -1,11 +1,12 @@ --- title: Прокси сервер -slug: Словарь/Прокси_сервер +slug: Glossary/Proxy_server tags: - Прокси - Сервер - Термин translation_of: Glossary/Proxy_server +original_slug: Словарь/Прокси_сервер ---

    Прокси-сервер - это промежуточная программа или компьютер, используемый при навигации по разным сетям Интернета. Они облегчают доступ к контенту во всемирной паутине. Прокси-сервер перехватывает запросы и возвращает ответы; он может пересылать запросы или нет (например, в случае кеша), и он может изменять его (например, изменяя его заголовки на границе между двумя сетями).

    diff --git a/files/ru/glossary/pseudo-element/index.html b/files/ru/glossary/pseudo-element/index.html index 24edc01fe7..52d2dbd238 100644 --- a/files/ru/glossary/pseudo-element/index.html +++ b/files/ru/glossary/pseudo-element/index.html @@ -1,11 +1,12 @@ --- title: Псевдоэлемент -slug: Словарь/Pseudo-element +slug: Glossary/Pseudo-element tags: - CSS - CodingScripting - Glossary translation_of: Glossary/Pseudo-element +original_slug: Словарь/Pseudo-element ---

    Селектор псевдоэлемента в CSS применяет стили к частям содержимого вашего документа в тех случаях, когда нет конкретного HTML-элемента для выбора. Например, вместо того, чтобы помещать первую букву каждого абзаца в отдельный элемент, вы можете оформить их все с помощью p{{ Cssxref("::first-letter") }}.

    diff --git a/files/ru/glossary/pseudocode/index.html b/files/ru/glossary/pseudocode/index.html index df42e78eaa..d20ebe3015 100644 --- a/files/ru/glossary/pseudocode/index.html +++ b/files/ru/glossary/pseudocode/index.html @@ -1,10 +1,11 @@ --- title: Псевдокод -slug: Словарь/Pseudocode +slug: Glossary/Pseudocode tags: - Написание кода - Псевдокод translation_of: Glossary/Pseudocode +original_slug: Словарь/Pseudocode ---

    Псевдокод относится к кодоподобному синтаксису, который обычно используется для указания людям, как работает некоторый синтаксис кода, или для иллюстрации конструкции элемента архитектуры кода. Он не сработает, если вы попытаетесь запустить его как код. 

    diff --git a/files/ru/glossary/reflow/index.html b/files/ru/glossary/reflow/index.html index 34546c1ab3..155463a80c 100644 --- a/files/ru/glossary/reflow/index.html +++ b/files/ru/glossary/reflow/index.html @@ -1,7 +1,8 @@ --- title: Пересчет (Reflow) -slug: Словарь/Reflow +slug: Glossary/Reflow translation_of: Glossary/Reflow +original_slug: Словарь/Reflow ---

    Пересчет (Reflow) происходит, когда {{glossary("браузер")}} должен снова обработать и отрисовать часть или всю веб-страницу, например, после изменения размера какого-нибудь блока или изменения его позиции на интерактивном сайте.

    diff --git a/files/ru/glossary/regular_expression/index.html b/files/ru/glossary/regular_expression/index.html index c087ec1115..674f816436 100644 --- a/files/ru/glossary/regular_expression/index.html +++ b/files/ru/glossary/regular_expression/index.html @@ -1,9 +1,10 @@ --- title: Регулярные выражения -slug: Словарь/Regular_expression +slug: Glossary/Regular_expression tags: - регулярные выражения translation_of: Glossary/Regular_expression +original_slug: Словарь/Regular_expression ---

    Регулярные выражения (regex) - это правила, определяющие, какие последовательности символов появляются в поиске.

    diff --git a/files/ru/glossary/request_header/index.html b/files/ru/glossary/request_header/index.html index b5a8b82dad..f11bf25660 100644 --- a/files/ru/glossary/request_header/index.html +++ b/files/ru/glossary/request_header/index.html @@ -1,9 +1,10 @@ --- title: Заголовок запроса -slug: Словарь/Request_header +slug: Glossary/Request_header tags: - Словарь translation_of: Glossary/Request_header +original_slug: Словарь/Request_header ---

    Заголовок запроса - {{Glossary("header", "HTTP header")}} который используется в  HTTP-запросе и который не относиться к содержимому сообщения. Заголовки запроса, такие как {{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Language", "Accept-*")}} или {{HTTPHeader("If-Modified-Since", "If-*")}} позволяют выполнять условные запросы; другие, такие как {{HTTPHeader("Cookie")}}, {{HTTPHeader("User-Agent")}} или {{HTTPHeader("Referer")}} уточняют контекст, чтобы сервер мог адаптировать ответ.

    diff --git a/files/ru/glossary/responsive_web_design/index.html b/files/ru/glossary/responsive_web_design/index.html index 6c0c3bc240..8cd62e311c 100644 --- a/files/ru/glossary/responsive_web_design/index.html +++ b/files/ru/glossary/responsive_web_design/index.html @@ -1,11 +1,12 @@ --- title: Responsive web design -slug: Словарь/Responsive_web_design +slug: Glossary/Responsive_web_design tags: - Глоссарий - Дизайн - адаптивный дизайн translation_of: Glossary/Responsive_web_design +original_slug: Словарь/Responsive_web_design ---

    Адаптивный веб-дизайн ( RWD ) - это концепция веб-разработки, направленная на то, чтобы сайты выглядели и вели себя оптимально на всех персональных вычислительных устройствах, от настольных компьютеров до мобильных.

    diff --git a/files/ru/glossary/round_trip_time_(rtt)/index.html b/files/ru/glossary/round_trip_time_(rtt)/index.html index f81a2077b9..4bdd00fc4f 100644 --- a/files/ru/glossary/round_trip_time_(rtt)/index.html +++ b/files/ru/glossary/round_trip_time_(rtt)/index.html @@ -1,7 +1,8 @@ --- title: Round Trip Time (RTT) -slug: Словарь/Round_Trip_Time_(RTT) +slug: Glossary/Round_Trip_Time_(RTT) translation_of: Glossary/Round_Trip_Time_(RTT) +original_slug: Словарь/Round_Trip_Time_(RTT) ---

    Время приема-передачи (англ. Round Trip Time, RTT) - это время, которое требуется для отправки пакета данных в пункт назначения, плюс время, которое требуется для подтверждения того, что этот пакет был получен обратно. RTT между сетью и сервером может быть определен с помощью команды ping.

    diff --git a/files/ru/glossary/safe/index.html b/files/ru/glossary/safe/index.html index 4351bd9fee..63cdba860b 100644 --- a/files/ru/glossary/safe/index.html +++ b/files/ru/glossary/safe/index.html @@ -1,10 +1,11 @@ --- title: Безопасный метод -slug: Словарь/safe +slug: Glossary/safe tags: - Glossary - HTTP translation_of: Glossary/safe +original_slug: Словарь/safe ---

    Метод HTTP является безопасным, если он не меняет состояние сервера. Другими словами, безопасный метод проводит операции "только чтение" (read-only). Несколько следующих методов HTTP безопасные: {{HTTPMethod("GET")}}, {{HTTPMethod("HEAD")}} или {{HTTPMethod("OPTIONS")}}. Все безопасные методы являются также {{glossary("idempotent", "идемпотентными")}}, как и некоторые другие, но при этом небезопасные, такие как {{HTTPMethod("PUT")}} или {{HTTPMethod("DELETE")}}.

    diff --git a/files/ru/glossary/scroll_container/index.html b/files/ru/glossary/scroll_container/index.html index 4ea91d5582..f4059ae959 100644 --- a/files/ru/glossary/scroll_container/index.html +++ b/files/ru/glossary/scroll_container/index.html @@ -1,7 +1,8 @@ --- title: Scroll-контейнер -slug: Словарь/Scroll_container +slug: Glossary/Scroll_container translation_of: Glossary/Scroll_container +original_slug: Словарь/Scroll_container ---

    Scroll-контейнер создаётся путём применения к элементу свойства overflow: scroll или overflow: auto, при условии, что содержимого достаточно много для появления переполнения.

    diff --git a/files/ru/glossary/sdp/index.html b/files/ru/glossary/sdp/index.html index d1044fb171..2d6458bdf2 100644 --- a/files/ru/glossary/sdp/index.html +++ b/files/ru/glossary/sdp/index.html @@ -1,7 +1,8 @@ --- title: SDP -slug: Словарь/SDP +slug: Glossary/SDP translation_of: Glossary/SDP +original_slug: Словарь/SDP ---

    SDP (Session Description {{glossary("Protocol")}} - протокол описания сессии) - это текстовый формат для описания {{Glossary("P2P","peer-to-peer")}}-соединения. SDP содержит описание {{Glossary("кодеков")}}, адрес источника и информацию для синхронизации аудио и видео.

    diff --git a/files/ru/glossary/self-executing_anonymous_function/index.html b/files/ru/glossary/self-executing_anonymous_function/index.html index 104fef094b..1909560c9d 100644 --- a/files/ru/glossary/self-executing_anonymous_function/index.html +++ b/files/ru/glossary/self-executing_anonymous_function/index.html @@ -1,7 +1,8 @@ --- title: Self-Executing Anonymous Function -slug: Словарь/Self-Executing_Anonymous_Function +slug: Glossary/Self-Executing_Anonymous_Function translation_of: Glossary/Self-Executing_Anonymous_Function +original_slug: Словарь/Self-Executing_Anonymous_Function ---

    {{glossary("JavaScript")}} {{glossary("функция")}}, которая выполняется сразу после определения. Также известна как IIFE (Immediately Invoked Function Expression).

    diff --git a/files/ru/glossary/semantics/index.html b/files/ru/glossary/semantics/index.html index b64469506d..e20cffed37 100644 --- a/files/ru/glossary/semantics/index.html +++ b/files/ru/glossary/semantics/index.html @@ -1,7 +1,8 @@ --- title: Semantics -slug: Словарь/Semantics +slug: Glossary/Semantics translation_of: Glossary/Semantics +original_slug: Словарь/Semantics ---

    В программировании, Семантика означает значение фрагмента кода - например, «к какому результату приведет выполнение этой строки JavaScript?», или «каково предназначение или какая роль у этого элемента HTML» (а не «как он выглядит ?».)

    diff --git a/files/ru/glossary/seo/index.html b/files/ru/glossary/seo/index.html index b8222c6577..312ab0777d 100644 --- a/files/ru/glossary/seo/index.html +++ b/files/ru/glossary/seo/index.html @@ -1,7 +1,8 @@ --- title: SEO -slug: Словарь/SEO +slug: Glossary/SEO translation_of: Glossary/SEO +original_slug: Словарь/SEO ---

    SEO (Search Engine Optimization) Поисковая оптимизация - это комплекс мер по оптимизации, для поднятия сайта в рейтингах поисковых систем. Её еще называют "Повышением поискового рейтинга" 

    diff --git a/files/ru/glossary/server/index.html b/files/ru/glossary/server/index.html index 61c783485f..88373f3a87 100644 --- a/files/ru/glossary/server/index.html +++ b/files/ru/glossary/server/index.html @@ -1,7 +1,8 @@ --- title: Server -slug: Словарь/Server +slug: Glossary/Server translation_of: Glossary/Server +original_slug: Словарь/Server ---

    A server is a software or hardware offering a service to a user, usually referred to as client.  A hardware server is a shared computer on a network, usually powerful and housed in a data center.  A software server (often running on a hardware server) is a program that provides services to client programs or a {{glossary("UI","user interface")}} to human clients.

    diff --git a/files/ru/glossary/sgml/index.html b/files/ru/glossary/sgml/index.html index 7e00336c25..f4ff2a839d 100644 --- a/files/ru/glossary/sgml/index.html +++ b/files/ru/glossary/sgml/index.html @@ -1,10 +1,11 @@ --- title: SGML -slug: Словарь/SGML +slug: Glossary/SGML tags: - SGML - Словарь translation_of: Glossary/SGML +original_slug: Словарь/SGML ---

    Стандартный обобщённый язык разметки (SGML) это спецификация {{Glossary("ISO")}} для определения декларативных языков разметки.

    diff --git a/files/ru/glossary/simple_header/index.html b/files/ru/glossary/simple_header/index.html index c90db6fd05..5193a34476 100644 --- a/files/ru/glossary/simple_header/index.html +++ b/files/ru/glossary/simple_header/index.html @@ -1,12 +1,13 @@ --- title: Простой заголовок -slug: Словарь/Простой_заголовок +slug: Glossary/Simple_header tags: - CORS - HTTP - Определения - инфраструктура translation_of: Glossary/Simple_header +original_slug: Словарь/Простой_заголовок ---

    Простой заголовок (или заголовок запроса с поддержкой безопасности CORS) - это один из следующих HTTP заголовков:

    diff --git a/files/ru/glossary/simple_response_header/index.html b/files/ru/glossary/simple_response_header/index.html index 7cddde385f..7808bc1f3b 100644 --- a/files/ru/glossary/simple_response_header/index.html +++ b/files/ru/glossary/simple_response_header/index.html @@ -1,6 +1,7 @@ --- title: Simple response header -slug: Словарь/Simple_response_header +slug: Glossary/Simple_response_header translation_of: Glossary/Simple_response_header +original_slug: Словарь/Simple_response_header ---

    Old term for {{Glossary("CORS-safelisted response header")}}.

    diff --git a/files/ru/glossary/sloppy_mode/index.html b/files/ru/glossary/sloppy_mode/index.html index ae8eba54e3..6d3dbbc743 100644 --- a/files/ru/glossary/sloppy_mode/index.html +++ b/files/ru/glossary/sloppy_mode/index.html @@ -1,12 +1,13 @@ --- title: Грязный режим -slug: Словарь/Sloppy_mode +slug: Glossary/Sloppy_mode tags: - Glossary - JavaScript - Sloppy - Глоссарий translation_of: Glossary/Sloppy_mode +original_slug: Словарь/Sloppy_mode ---

    {{Glossary("ECMAScript")}} 5 и более поздние версии выполняют скрипты в Строгом режиме, который определенным образом изменяет семантику JavaScript для улучшения стабильности, и который упрощает понимание того, что происходит в программе при возникновении проблем.

    diff --git a/files/ru/glossary/specification/index.html b/files/ru/glossary/specification/index.html index 5c1abe1dd5..b3b3011818 100644 --- a/files/ru/glossary/specification/index.html +++ b/files/ru/glossary/specification/index.html @@ -1,10 +1,11 @@ --- title: Спецификация -slug: Словарь/Specification +slug: Glossary/Specification tags: - Словарь - Стандартизация translation_of: Glossary/Specification +original_slug: Словарь/Specification ---

    Спецификация - документ, детально описывающий функции и параметры, которые должен предоставлять продукт перед тем, как быть доставлен (опубликован). В случае описания Веба, термин "спецификация" (часто сокращают до "spec") в основном означает документ, описывающй язык, технологи или {{Glossary("API")}}, которые составляют целостный набор открытх Web технологий.

    diff --git a/files/ru/glossary/speculative_parsing/index.html b/files/ru/glossary/speculative_parsing/index.html index 0b3418772f..68c99dfe38 100644 --- a/files/ru/glossary/speculative_parsing/index.html +++ b/files/ru/glossary/speculative_parsing/index.html @@ -1,12 +1,13 @@ --- title: Оптимизация Ваших страниц для рискованного парсинга -slug: Web/HTML/Optimizing_Your_Pages_for_Speculative_Parsing +slug: Glossary/speculative_parsing tags: - HTML - HTML5 - Веб-разработка - Продвинутый translation_of: Glossary/speculative_parsing +original_slug: Web/HTML/Optimizing_Your_Pages_for_Speculative_Parsing ---

    Традиционно, HTML-парсер в браузерах работает на главной ветке и блокируется после тега </script>, пока скрипт не загрузится и не выполнится. HTML-парсер в Firefox 4 и новее поддерживает рискованный парсинг вне главной ветки. Он продолжает парсить, пока скрипты загружаются и выполняются. В Firefox 3.5 и 3.6 парсер начинает рискованную загрузку скриптов, стилей и изображений, когда он находит их. Однако, в Firefox 4 и новее HTML-парсер также рискованно загружает алгоритм постройки дерева HTML. С одной стороны, когда риск оправдался, нет необходимости в репарсинге части, которая уже была просканирована на скрипты, стили и изображения. С другой стороны, когда риск не оправдался, HTML-парсеру достаётся больше работы.

    diff --git a/files/ru/glossary/statement/index.html b/files/ru/glossary/statement/index.html index cd9163c964..378c44cfb2 100644 --- a/files/ru/glossary/statement/index.html +++ b/files/ru/glossary/statement/index.html @@ -1,11 +1,12 @@ --- title: Инструкция -slug: Словарь/Выражение +slug: Glossary/Statement tags: - Глоссарий - Инструкция - Новичку translation_of: Glossary/Statement +original_slug: Словарь/Выражение ---

    В компьютерном языке программирования инструкция — строка кода, выполняющая задачу. Каждая программа состоит из последовательности инструкций.

    diff --git a/files/ru/glossary/static_typing/index.html b/files/ru/glossary/static_typing/index.html index f2336fb220..789e77e12e 100644 --- a/files/ru/glossary/static_typing/index.html +++ b/files/ru/glossary/static_typing/index.html @@ -1,10 +1,11 @@ --- title: Статическая типизация -slug: Словарь/Статическая_типизация +slug: Glossary/Static_typing tags: - Глоссарий - Тип translation_of: Glossary/Static_typing +original_slug: Словарь/Статическая_типизация ---

    Статически типизированный язык — это язык, где типы переменных известны во время компиляции (н-р {{glossary("Java", "Java")}}, C, C++). В большинстве таких языков типы переменных должны быть явно заданы разработчиком. В остальных статически типизированных языках вывод типов (type inference) позволяет не задавать их (н-р OCaml).

    diff --git a/files/ru/glossary/string/index.html b/files/ru/glossary/string/index.html index 43aa69f04a..27671571e2 100644 --- a/files/ru/glossary/string/index.html +++ b/files/ru/glossary/string/index.html @@ -1,10 +1,11 @@ --- title: Строка -slug: Словарь/Строка +slug: Glossary/String tags: - Начальный - Строка translation_of: Glossary/String +original_slug: Словарь/Строка ---

    В любом языке программирования компьютера, строка представляет собой последовательность {{Glossary("character","символов")}}, используемых для представления текста.

    diff --git a/files/ru/glossary/svg/index.html b/files/ru/glossary/svg/index.html index 1f4bd4ba6b..a3ee0c2b80 100644 --- a/files/ru/glossary/svg/index.html +++ b/files/ru/glossary/svg/index.html @@ -1,6 +1,6 @@ --- title: SVG -slug: Словарь/SVG +slug: Glossary/SVG tags: - SVG - Глоссарий @@ -8,6 +8,7 @@ tags: - Начинающий - Программирование translation_of: Glossary/SVG +original_slug: Словарь/SVG ---

    Масштабируемая векторная графика ( SVG ) - это формат двумерного векторного изображения на основе синтаксиса {{Glossary("XML")}}.

    diff --git a/files/ru/glossary/symbol/index.html b/files/ru/glossary/symbol/index.html index daa0202fd5..355d8f2e53 100644 --- a/files/ru/glossary/symbol/index.html +++ b/files/ru/glossary/symbol/index.html @@ -1,7 +1,8 @@ --- title: Symbol (Символ) -slug: Словарь/Symbol +slug: Glossary/Symbol translation_of: Glossary/Symbol +original_slug: Словарь/Symbol ---

    На этой странице описывается тип данных «символ» и функция «{{jsxref("Symbol")}}()», которая (среди прочего) создает экземпляры типа «символ».

    diff --git a/files/ru/glossary/synchronous/index.html b/files/ru/glossary/synchronous/index.html index f939717e05..99f8639a16 100644 --- a/files/ru/glossary/synchronous/index.html +++ b/files/ru/glossary/synchronous/index.html @@ -1,11 +1,12 @@ --- title: Синхронный -slug: Словарь/Синхронный +slug: Glossary/Synchronous tags: - Веб - Веб механика - Глоссарий translation_of: Glossary/Synchronous +original_slug: Словарь/Синхронный ---

    Синхронный относится к среде связи где каждый участник получает (и если нужно обрабатывает и/или отвечает) сообщения немедленно (или настолько быстро, на сколько это возможно).

    diff --git a/files/ru/glossary/tag/index.html b/files/ru/glossary/tag/index.html index f018fa052b..f9bbdd9ffe 100644 --- a/files/ru/glossary/tag/index.html +++ b/files/ru/glossary/tag/index.html @@ -1,12 +1,13 @@ --- title: Тег -slug: Словарь/Тег +slug: Glossary/Tag tags: - HTML - Вступление - Словарь - Тег translation_of: Glossary/Tag +original_slug: Словарь/Тег ---

    В {{Glossary("HTML")}} теги используются для создания {{Glossary("Элемент", "элементов")}}. Имя HTML элемента - это имя заключенное в угловые скобки, как например <p> для "абзаца". Обратите внимание, что концу имени предшествует символ косой черты (слэша), "</p>", и что в пустых элементах закрывающий тег не требуется и не допускается. Если атрибуты не указаны, то для них применяются значения по умолчанию. 

    diff --git a/files/ru/glossary/tcp/index.html b/files/ru/glossary/tcp/index.html index 9576c824cc..5fce8d8bbf 100644 --- a/files/ru/glossary/tcp/index.html +++ b/files/ru/glossary/tcp/index.html @@ -1,6 +1,6 @@ --- title: TCP -slug: Словарь/TCP +slug: Glossary/TCP tags: - TCP - Transmission Control Protocol @@ -8,6 +8,7 @@ tags: - Словарь - инфраструктура translation_of: Glossary/TCP +original_slug: Словарь/TCP ---

    TCP (Протокол Управления Передачей) - важный {{Glossary("protocol", "протокол")}} сети интернет, который позволяет двум хостам создать соединение и обмениваться потоками данных. TCP гарантирует доставку данных и пакетов в том же порядке, в котором они были отправлены. Винт Серф и Боб Кан, которые в то время были учеными DARPA, разработали TCP в 1970-х годах.

    diff --git a/files/ru/glossary/time_to_first_byte/index.html b/files/ru/glossary/time_to_first_byte/index.html index e7110fe8b6..5c2cb05239 100644 --- a/files/ru/glossary/time_to_first_byte/index.html +++ b/files/ru/glossary/time_to_first_byte/index.html @@ -1,7 +1,8 @@ --- title: Time to first byte -slug: Словарь/time_to_first_byte +slug: Glossary/time_to_first_byte translation_of: Glossary/time_to_first_byte +original_slug: Словарь/time_to_first_byte ---

    Время до первого байта (англ. Time to First Byte, TTFB) - одна из метрик производительности веб-страниц, которая описывает время, которое прошло с момента отправления браузером запроса страницы до момента, когда он получил первый байт информации с сервера. Это время включает в себя поиск DNS-сервера и установление соединия с использованием TCP-рукопожатия и SSL-рукопожатия, если запрос выполняется через https.

    diff --git a/files/ru/glossary/time_to_interactive/index.html b/files/ru/glossary/time_to_interactive/index.html index 8d89b8fc0d..e4c40b18cb 100644 --- a/files/ru/glossary/time_to_interactive/index.html +++ b/files/ru/glossary/time_to_interactive/index.html @@ -1,7 +1,8 @@ --- title: Time to interactive -slug: Словарь/Time_to_interactive +slug: Glossary/Time_to_interactive translation_of: Glossary/Time_to_interactive +original_slug: Словарь/Time_to_interactive ---

    Время до интерактивности (англ. Time to Interactive, TTI) - это нестандартизированная метрика веб-производительности, которая определяется как момент времени, когда завершилась последняя долгая задача, после которой следовало 5 секунд бездействия сети и основного потока.

    diff --git a/files/ru/glossary/tls/index.html b/files/ru/glossary/tls/index.html index a39a18bd66..6ce2ae759e 100644 --- a/files/ru/glossary/tls/index.html +++ b/files/ru/glossary/tls/index.html @@ -1,7 +1,8 @@ --- title: TLS -slug: Словарь/TLS +slug: Glossary/TLS translation_of: Glossary/TLS +original_slug: Словарь/TLS ---

    Transport Layer Security (TLS) - Безопасность Транспортного Уровня ({{Glossary("протокол")}}), ранее известный как Secure Sockets Layer (SSL) - Уровень Защищённых Соединений используется приложениями для организации защищённой передачи данных через интернет, предотвращая взлом и прослушивание электронной почты, просмотра сайтов, переписки и прочих протоколов.

    diff --git a/files/ru/glossary/truthy/index.html b/files/ru/glossary/truthy/index.html index a99cf53cf9..0aaad9385b 100644 --- a/files/ru/glossary/truthy/index.html +++ b/files/ru/glossary/truthy/index.html @@ -1,12 +1,13 @@ --- title: Truthy -slug: Словарь/Truthy +slug: Glossary/Truthy tags: - Glossary - JavaScript - truthy - Словарь translation_of: Glossary/Truthy +original_slug: Словарь/Truthy ---

    В {{Glossary("JavaScript")}}, истинное значение - это значение, которое считается true, когда встречается в контексте {{Glossary("Boolean")}}. Все значения истинные, если они не определены как {{Glossary("Falsy", "falsy")}} (кроме false, 0, -0, 0n, "", null, undefined, и NaN).

    diff --git a/files/ru/glossary/type/index.html b/files/ru/glossary/type/index.html index 0e596241d9..445e27b981 100644 --- a/files/ru/glossary/type/index.html +++ b/files/ru/glossary/type/index.html @@ -1,6 +1,6 @@ --- title: Type (тип) -slug: Словарь/Type +slug: Glossary/Type tags: - Data Type - Glossary @@ -8,6 +8,7 @@ tags: - Type - тип данных translation_of: Glossary/Type +original_slug: Словарь/Type ---

    Тип является характеристикой {{glossary('value', 'значения')}}, влияющей на то, какой вид данных или структур оно может хранить — например, в JavaScript {{domxref("Boolean")}} содержит только значения true/false, тогда как {{domxref("String")}} содержит текстовые строки, а {{domxref("Number")}} содержит числа любого типа и т.д. При этом для Структурных типов мы в целом можем опираться на то, какой конструктор был использован для создания данной структуры.

    diff --git a/files/ru/glossary/type_coercion/index.html b/files/ru/glossary/type_coercion/index.html index d8a4add38c..731a677790 100644 --- a/files/ru/glossary/type_coercion/index.html +++ b/files/ru/glossary/type_coercion/index.html @@ -1,6 +1,6 @@ --- title: Type coercion -slug: Словарь/Type_coercion +slug: Glossary/Type_coercion tags: - Beginner - Glossary @@ -9,6 +9,7 @@ tags: - Начинающим - приведение типа translation_of: Glossary/Type_coercion +original_slug: Словарь/Type_coercion ---

    Приведение типов (type coercion) - это автоматическое или неявное преобразование значений из одного типа данных в другой (например, строки в число). {{Glossary('Type conversion', 'Преобразование типа')}} похоже на приведение типа, потому что они оба преобразуют значения из одного типа данных в другой с одним ключевым различием — приведение типа является неявным, тогда как преобразование типа может быть неявным или явным.

    diff --git a/files/ru/glossary/type_conversion/index.html b/files/ru/glossary/type_conversion/index.html index 534f66d01d..4ef6368773 100644 --- a/files/ru/glossary/type_conversion/index.html +++ b/files/ru/glossary/type_conversion/index.html @@ -1,6 +1,6 @@ --- title: Type conversion -slug: Словарь/Type_Conversion +slug: Glossary/Type_Conversion tags: - Beginner - Glossary @@ -9,6 +9,7 @@ tags: - Начинающим - Преобразование типов translation_of: Glossary/Type_Conversion +original_slug: Словарь/Type_Conversion ---

    Преобразование типов (type conversion) означает передачу данных из одного типа данных в другой. Неявное преобразование происходит, когда компилятор автоматически присваивает (назначает) типы данных, но исходный код также может явно требовать преобразования для завершения. Например, в случае инструкции 5+2.0, число с плавающей точкой 2.0 неявно преобразуется в целое число, но в случае инструкции Number("0x11") строка "0x11" явно преобразуется в типизированное число 17.

    diff --git a/files/ru/glossary/ui/index.html b/files/ru/glossary/ui/index.html index eb16ea20c3..f4398d7f6f 100644 --- a/files/ru/glossary/ui/index.html +++ b/files/ru/glossary/ui/index.html @@ -1,11 +1,12 @@ --- title: UI -slug: Словарь/UI +slug: Glossary/UI tags: - Дизайн - Словарь - доступность translation_of: Glossary/UI +original_slug: Словарь/UI ---

    Пользовательский Интерфейс (UI) — это всё, что облегчает взаимодействие пользователя с компьютером. В мире компьютеров это может быть что угодно: клавиатура, джойстик, монитор, программа. Если мы рассматриваем компьютерное ПО - это ввод и вывод командной строки, веб-страница, форма ввода или интерфейс любого приложения.

    diff --git a/files/ru/glossary/undefined/index.html b/files/ru/glossary/undefined/index.html index c73dbb8ada..6cf4d44fd2 100644 --- a/files/ru/glossary/undefined/index.html +++ b/files/ru/glossary/undefined/index.html @@ -1,7 +1,8 @@ --- title: undefined -slug: Словарь/undefined +slug: Glossary/undefined translation_of: Glossary/undefined +original_slug: Словарь/undefined ---
    {{Glossary("primitive", "Примитивное")}} значение. Автоматически присваивается переменным, которые были только объявлены или {{Glossary("Argument","аргументам")}}, для которых не были установлены значения.
    diff --git a/files/ru/glossary/url/index.html b/files/ru/glossary/url/index.html index acaddff749..8a248f273a 100644 --- a/files/ru/glossary/url/index.html +++ b/files/ru/glossary/url/index.html @@ -1,6 +1,6 @@ --- title: URL (Единый указатель ресурса) -slug: Словарь/URL +slug: Glossary/URL tags: - URL - Глоссарий @@ -8,6 +8,7 @@ tags: - веб-адреса - урлы translation_of: Glossary/URL +original_slug: Словарь/URL ---

    Единый указатель ресурса (Uniform Resource Locator, URL) — строка, однозначно определяющая, где в интернете находится ресурс.

    diff --git a/files/ru/glossary/user_agent/index.html b/files/ru/glossary/user_agent/index.html index d0b87d42eb..00cf160b1b 100644 --- a/files/ru/glossary/user_agent/index.html +++ b/files/ru/glossary/user_agent/index.html @@ -1,7 +1,8 @@ --- title: Агент пользователя -slug: Словарь/User_agent +slug: Glossary/User_agent translation_of: Glossary/User_agent +original_slug: Словарь/User_agent ---

    Пользовательский агент (user agent, UA), или агент пользователя, это компьютерная программа, представляющая пользователя и выполняющая действия от его лица, например, {{Glossary("Browser","браузер")}} в контексте {{Glossary("World Wide Web", "Всемирной паутины")}}.

    diff --git a/files/ru/glossary/variable/index.html b/files/ru/glossary/variable/index.html index 8afe021e2d..19580eac37 100644 --- a/files/ru/glossary/variable/index.html +++ b/files/ru/glossary/variable/index.html @@ -1,9 +1,10 @@ --- title: Переменная -slug: Словарь/Variable +slug: Glossary/Variable tags: - Словарь translation_of: Glossary/Variable +original_slug: Словарь/Variable ---

    Переменная — именованная часть памяти, в которую могут помещаться разные значения переменной. Причем в каждый момент времени переменная имеет единственное значение.

    diff --git a/files/ru/glossary/vendor_prefix/index.html b/files/ru/glossary/vendor_prefix/index.html index b9d0c149ba..b23576ad4d 100644 --- a/files/ru/glossary/vendor_prefix/index.html +++ b/files/ru/glossary/vendor_prefix/index.html @@ -1,7 +1,8 @@ --- title: Vendor Prefix -slug: Словарь/Vendor_Prefix +slug: Glossary/Vendor_Prefix translation_of: Glossary/Vendor_Prefix +original_slug: Словарь/Vendor_Prefix ---

    Browser vendors sometimes add prefixes to experimental or nonstandard CSS properties and JavaScript APIs, so developers can experiment with new ideas while—in theory—preventing their experiments from being relied upon and then breaking web developers' code during the standardization process. Developers should wait to include the unprefixed property until browser behavior is standardized.

    diff --git a/files/ru/glossary/viewport/index.html b/files/ru/glossary/viewport/index.html index 075b8fbf69..a50f2c2763 100644 --- a/files/ru/glossary/viewport/index.html +++ b/files/ru/glossary/viewport/index.html @@ -1,7 +1,8 @@ --- title: Viewport -slug: Словарь/Viewport +slug: Glossary/Viewport translation_of: Glossary/Viewport +original_slug: Словарь/Viewport ---

    Viewport - это видимая пользователю область веб-страницы, то, что может увидеть пользователь, не прибегая к прокрутке.

    diff --git a/files/ru/glossary/w3c/index.html b/files/ru/glossary/w3c/index.html index 6c8de54e86..90770f5299 100644 --- a/files/ru/glossary/w3c/index.html +++ b/files/ru/glossary/w3c/index.html @@ -1,6 +1,6 @@ --- title: W3C -slug: Словарь/W3C +slug: Glossary/W3C tags: - W3C - Введение @@ -9,6 +9,7 @@ tags: - Словарь - Сообщество translation_of: Glossary/W3C +original_slug: Словарь/W3C ---

    The World Wide Web Consortium (W3C) is an international body that maintains {{Glossary("World Wide Web", "Web-related")}} rules and frameworks.

    diff --git a/files/ru/glossary/wai/index.html b/files/ru/glossary/wai/index.html index 6c9ed57dda..3e14706bf4 100644 --- a/files/ru/glossary/wai/index.html +++ b/files/ru/glossary/wai/index.html @@ -1,7 +1,8 @@ --- title: WAI -slug: Словарь/WAI +slug: Glossary/WAI translation_of: Glossary/WAI +original_slug: Словарь/WAI ---

    WAI или Web Accessibility Initiative (англ. Инициатива доступности веб-сайтов)  это попытка Консорциума World Wide Web (W3C) улучшить доступность для людей с различными проблемами, которым могут понадобиться нестандартные {{glossary ("browser", "браузер")}} или устройства.

    diff --git a/files/ru/glossary/webkit/index.html b/files/ru/glossary/webkit/index.html index cbe8ed17d7..04d0cdf6c7 100644 --- a/files/ru/glossary/webkit/index.html +++ b/files/ru/glossary/webkit/index.html @@ -1,7 +1,8 @@ --- title: WebKit -slug: Словарь/WebKit +slug: Glossary/WebKit translation_of: Glossary/WebKit +original_slug: Словарь/WebKit ---

    WebKit это framework который показывает правильно отформатированные веб-страницы на основе их разметки. {{Glossary("Apple Safari")}} и большинство мобильных браузеров зависят от Webkit (Webkit это очень портативный и легко настраиваемый framework).

    diff --git a/files/ru/glossary/websockets/index.html b/files/ru/glossary/websockets/index.html index e3dff1b176..6f0379ef67 100644 --- a/files/ru/glossary/websockets/index.html +++ b/files/ru/glossary/websockets/index.html @@ -1,6 +1,6 @@ --- title: WebSockets -slug: Словарь/WebSockets +slug: Glossary/WebSockets tags: - Web - WebSocket @@ -8,6 +8,7 @@ tags: - Словарь - инфраструктура translation_of: Glossary/WebSockets +original_slug: Словарь/WebSockets ---

    WebSocket - это {{Glossary("protocol", "протокол")}}, который позволяет создать постоянное {{Glossary("TCP")}} соединение между сервером и клиентом, чтобы они могли обмениваться данными в любое время.

    diff --git a/files/ru/glossary/whatwg/index.html b/files/ru/glossary/whatwg/index.html index 8a062129fe..bfe16d1c82 100644 --- a/files/ru/glossary/whatwg/index.html +++ b/files/ru/glossary/whatwg/index.html @@ -1,6 +1,6 @@ --- title: WHATWG -slug: Словарь/WHATWG +slug: Glossary/WHATWG tags: - Community - DOM @@ -13,6 +13,7 @@ tags: - Сообщество - Стандарты translation_of: Glossary/WHATWG +original_slug: Словарь/WHATWG ---

    WHATWG (Рабочая группа по вебу, гипертексту, приложениям и технологиям) (англ. Web Hypertext Application Technology Working Group) сообщество, которое поддерживает и разрабатывает веб стандарты, включая {{Glossary("DOM")}}, Fetch и {{Glossary("HTML")}}. Сотрудники Apple, Mozilla и Opera основали WHATWG в 2004.

    diff --git a/files/ru/glossary/whitespace/index.html b/files/ru/glossary/whitespace/index.html index 737429d465..11eef0aeb4 100644 --- a/files/ru/glossary/whitespace/index.html +++ b/files/ru/glossary/whitespace/index.html @@ -1,7 +1,8 @@ --- title: Пробельные символы -slug: Словарь/Пробельные_символы +slug: Glossary/Whitespace translation_of: Glossary/Whitespace +original_slug: Словарь/Пробельные_символы ---

    Пробельные символы — это множество {{Glossary("Character", "символов")}}  использующихся для горизонтального или вертикалного разделения остальных символов. Они используются для разделения токенов в {{Glossary("HTML")}}, {{Glossary("CSS")}}, {{Glossary("JavaScript")}} и других компьютерных языках.

    diff --git a/files/ru/glossary/world_wide_web/index.html b/files/ru/glossary/world_wide_web/index.html index 14d223cd89..e227c6a115 100644 --- a/files/ru/glossary/world_wide_web/index.html +++ b/files/ru/glossary/world_wide_web/index.html @@ -1,11 +1,12 @@ --- title: World Wide Web -slug: Словарь/World_Wide_Web +slug: Glossary/World_Wide_Web tags: - WWW - World Wide Web - инфраструктура translation_of: Glossary/World_Wide_Web +original_slug: Словарь/World_Wide_Web ---

    Всемирная сеть — сокращенно: WWW, W3, или Web; Сетьпаутина или веб — всемирная система публичных веб-страниц в сети {{Glossary("Интернет")}}. Сеть не является Интернетом: Сеть лишь использует Интернет как среду передачи информации и данных.

    diff --git a/files/ru/glossary/wrapper/index.html b/files/ru/glossary/wrapper/index.html index b5d33ac99c..e37a9a6bd7 100644 --- a/files/ru/glossary/wrapper/index.html +++ b/files/ru/glossary/wrapper/index.html @@ -1,11 +1,12 @@ --- title: Обертка -slug: Словарь/Wrapper +slug: Glossary/Wrapper tags: - CodingScripting - Glossary - Wrapper translation_of: Glossary/Wrapper +original_slug: Словарь/Wrapper ---

    В языках программирования, таких как JavaScript , обертка является функцией, которая предназначена для вызова одного или более других функций , иногда исключительно для удобства , а иногда адаптируя их чтобы сделать немного отличающийся задачу в процессе.

    diff --git a/files/ru/glossary/xhr_(xmlhttprequest)/index.html b/files/ru/glossary/xhr_(xmlhttprequest)/index.html index 1fda8a238a..d5b77a33b6 100644 --- a/files/ru/glossary/xhr_(xmlhttprequest)/index.html +++ b/files/ru/glossary/xhr_(xmlhttprequest)/index.html @@ -1,7 +1,8 @@ --- title: XHR (XMLHttpRequest) -slug: Словарь/XHR_(XMLHttpRequest) +slug: Glossary/XHR_(XMLHttpRequest) translation_of: Glossary/XHR_(XMLHttpRequest) +original_slug: Словарь/XHR_(XMLHttpRequest) ---

    {{domxref("XMLHttpRequest")}} (XHR) это {{Glossary("JavaScript")}} {{Glossary("API")}} для создания {{Glossary("AJAX")}} запросов. Методы этого объекта предоставляют возможность отправки сетевых запросов между {{Glossary("browser")}} и {{Glossary("server")}}.

    diff --git a/files/ru/glossary/xhtml/index.html b/files/ru/glossary/xhtml/index.html index ced26ea14b..b3c1b14f40 100644 --- a/files/ru/glossary/xhtml/index.html +++ b/files/ru/glossary/xhtml/index.html @@ -1,7 +1,8 @@ --- title: XHTML -slug: Словарь/XHTML +slug: Glossary/XHTML translation_of: Glossary/XHTML +original_slug: Словарь/XHTML ---

    XHTML по отношению к XML - это так же, как HTML по отношению к SGML. Таким образом, XHTML - язык разметки который подобен HTML, но с более строгим синтаксисом. Две версии XHTML были закончены (окончательно сформулированы) W3C:

      diff --git a/files/ru/glossary/xml/index.html b/files/ru/glossary/xml/index.html index 14568728d3..72d331d59a 100644 --- a/files/ru/glossary/xml/index.html +++ b/files/ru/glossary/xml/index.html @@ -1,10 +1,11 @@ --- title: XML -slug: Словарь/XML +slug: Glossary/XML tags: - Glossary - XML translation_of: Glossary/XML +original_slug: Словарь/XML ---

      eXtensible Markup Language (XML) - расширяемый язык разметки, рекомендованный Консорциумом Всемирной паутины (W3C). В отрасли информационных технологий (ИТ) используется множество языков на основе XML в качестве языков описания данных.

      diff --git a/files/ru/learn/accessibility/accessibility_troubleshooting/index.html b/files/ru/learn/accessibility/accessibility_troubleshooting/index.html index d47abae869..f486ddb73d 100644 --- a/files/ru/learn/accessibility/accessibility_troubleshooting/index.html +++ b/files/ru/learn/accessibility/accessibility_troubleshooting/index.html @@ -1,7 +1,8 @@ --- title: Устранение проблем доступности -slug: Learn/Доступность/Accessibility_troubleshooting +slug: Learn/Accessibility/Accessibility_troubleshooting translation_of: Learn/Accessibility/Accessibility_troubleshooting +original_slug: Learn/Доступность/Accessibility_troubleshooting ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/accessibility/css_and_javascript/index.html b/files/ru/learn/accessibility/css_and_javascript/index.html index 31ed1cb106..125e7e09af 100644 --- a/files/ru/learn/accessibility/css_and_javascript/index.html +++ b/files/ru/learn/accessibility/css_and_javascript/index.html @@ -1,10 +1,11 @@ --- title: CSS и JavaScript доступность - лучшие практики -slug: Learn/Доступность/CSS_and_JavaScript +slug: Learn/Accessibility/CSS_and_JavaScript tags: - CSS - JavaScript translation_of: Learn/Accessibility/CSS_and_JavaScript +original_slug: Learn/Доступность/CSS_and_JavaScript ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/accessibility/html/index.html b/files/ru/learn/accessibility/html/index.html index 64c19fd4d6..75e886aa79 100644 --- a/files/ru/learn/accessibility/html/index.html +++ b/files/ru/learn/accessibility/html/index.html @@ -1,6 +1,6 @@ --- title: 'HTML: Хорошая основа для доступности' -slug: Learn/Доступность/HTML +slug: Learn/Accessibility/HTML tags: - HTML - a11y @@ -13,6 +13,7 @@ tags: - вспомагательные технологии - доступность translation_of: Learn/Accessibility/HTML +original_slug: Learn/Доступность/HTML ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/accessibility/index.html b/files/ru/learn/accessibility/index.html index 422bead1d7..36a072e071 100644 --- a/files/ru/learn/accessibility/index.html +++ b/files/ru/learn/accessibility/index.html @@ -1,6 +1,6 @@ --- title: Доступность -slug: Learn/Доступность +slug: Learn/Accessibility tags: - CSS - HTML @@ -8,6 +8,7 @@ tags: - Удобство - доступность translation_of: Learn/Accessibility +original_slug: Learn/Доступность ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/accessibility/mobile/index.html b/files/ru/learn/accessibility/mobile/index.html index bbdc7f0e1d..89826dcd23 100644 --- a/files/ru/learn/accessibility/mobile/index.html +++ b/files/ru/learn/accessibility/mobile/index.html @@ -1,9 +1,10 @@ --- title: Мобильная доступность -slug: Learn/Доступность/Mobile +slug: Learn/Accessibility/Mobile tags: - Mobile translation_of: Learn/Accessibility/Mobile +original_slug: Learn/Доступность/Mobile ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/accessibility/multimedia/index.html b/files/ru/learn/accessibility/multimedia/index.html index e07550ba5e..b75e4b89b8 100644 --- a/files/ru/learn/accessibility/multimedia/index.html +++ b/files/ru/learn/accessibility/multimedia/index.html @@ -1,9 +1,10 @@ --- title: Доступность мультимедиа -slug: Learn/Доступность/Multimedia +slug: Learn/Accessibility/Multimedia tags: - JavaScript translation_of: Learn/Accessibility/Multimedia +original_slug: Learn/Доступность/Multimedia ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/accessibility/wai-aria_basics/index.html b/files/ru/learn/accessibility/wai-aria_basics/index.html index d04c4fd483..576855fcdb 100644 --- a/files/ru/learn/accessibility/wai-aria_basics/index.html +++ b/files/ru/learn/accessibility/wai-aria_basics/index.html @@ -1,9 +1,10 @@ --- title: Основы WAI-ARIA -slug: Learn/Доступность/WAI-ARIA_basics +slug: Learn/Accessibility/WAI-ARIA_basics tags: - JavaScript translation_of: Learn/Accessibility/WAI-ARIA_basics +original_slug: Learn/Доступность/WAI-ARIA_basics ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/accessibility/what_is_accessibility/index.html b/files/ru/learn/accessibility/what_is_accessibility/index.html index 1a6e11f73e..84dc970c42 100644 --- a/files/ru/learn/accessibility/what_is_accessibility/index.html +++ b/files/ru/learn/accessibility/what_is_accessibility/index.html @@ -1,6 +1,6 @@ --- title: Что такое доступность? -slug: Learn/Доступность/What_is_accessibility +slug: Learn/Accessibility/What_is_accessibility tags: - CSS - HTML @@ -15,6 +15,7 @@ tags: - вспомогательная технология - доступность translation_of: Learn/Accessibility/What_is_accessibility +original_slug: Learn/Доступность/What_is_accessibility ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/common_questions/how_does_the_internet_work/index.html b/files/ru/learn/common_questions/how_does_the_internet_work/index.html index 19230a4042..225ee71401 100644 --- a/files/ru/learn/common_questions/how_does_the_internet_work/index.html +++ b/files/ru/learn/common_questions/how_does_the_internet_work/index.html @@ -1,12 +1,13 @@ --- title: Как работает Интернет -slug: Learn/How_the_Internet_works +slug: Learn/Common_questions/How_does_the_Internet_work tags: - Начинающий - Руководство - Учебник - туториал translation_of: Learn/Common_questions/How_does_the_Internet_work +original_slug: Learn/How_the_Internet_works ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/common_questions/pages_sites_servers_and_search_engines/index.html b/files/ru/learn/common_questions/pages_sites_servers_and_search_engines/index.html index 0a9b7a643f..38139a33b7 100644 --- a/files/ru/learn/common_questions/pages_sites_servers_and_search_engines/index.html +++ b/files/ru/learn/common_questions/pages_sites_servers_and_search_engines/index.html @@ -1,6 +1,6 @@ --- -title: 'Веб-страницы, веб-сайты, веб серверы и поисковики' -slug: Learn/Pages_sites_servers_and_search_engines +title: Веб-страницы, веб-сайты, веб серверы и поисковики +slug: Learn/Common_questions/Pages_sites_servers_and_search_engines tags: - ActiveLearning - Beginner @@ -9,6 +9,7 @@ tags: - Новичку - Программисту translation_of: Learn/Common_questions/Pages_sites_servers_and_search_engines +original_slug: Learn/Pages_sites_servers_and_search_engines ---

      В этой статье мы расскажем о различных понятиях связанных с Веб: о веб-страницах, веб-сайтах, веб-серверах и о поисковых системах. Эти термины часто ставят в тупик как начинающих работу с Веб, так и людей, редко пользующихся сетью. Давайте же разберемся, что именно эти понятия означают!

      diff --git a/files/ru/learn/common_questions/what_are_browser_developer_tools/index.html b/files/ru/learn/common_questions/what_are_browser_developer_tools/index.html index 8cd514efcd..c38c18ddd7 100644 --- a/files/ru/learn/common_questions/what_are_browser_developer_tools/index.html +++ b/files/ru/learn/common_questions/what_are_browser_developer_tools/index.html @@ -1,6 +1,6 @@ --- title: Обзор инструментов разработки в браузерах -slug: Learn/Discover_browser_developer_tools +slug: Learn/Common_questions/What_are_browser_developer_tools tags: - Beginner - Browser @@ -13,6 +13,7 @@ tags: - Новичку - Обучение translation_of: Learn/Common_questions/What_are_browser_developer_tools +original_slug: Learn/Discover_browser_developer_tools ---
      {{IncludeSubnav("/ru-RU/Learn")}}
      diff --git a/files/ru/learn/common_questions/what_are_hyperlinks/index.html b/files/ru/learn/common_questions/what_are_hyperlinks/index.html index 63a22eb949..48cca09fde 100644 --- a/files/ru/learn/common_questions/what_are_hyperlinks/index.html +++ b/files/ru/learn/common_questions/what_are_hyperlinks/index.html @@ -1,11 +1,12 @@ --- title: Разбираемся с веб ссылками -slug: Learn/Understanding_links_on_the_web +slug: Learn/Common_questions/What_are_hyperlinks tags: - Навигация - инфраструктура - начальный уровень translation_of: Learn/Common_questions/What_are_hyperlinks +original_slug: Learn/Understanding_links_on_the_web ---

      В данной статье мы узнаем, что такое ссылки и почему они важны.

      diff --git a/files/ru/learn/common_questions/what_is_a_domain_name/index.html b/files/ru/learn/common_questions/what_is_a_domain_name/index.html index fb561cf8ea..d5418ac073 100644 --- a/files/ru/learn/common_questions/what_is_a_domain_name/index.html +++ b/files/ru/learn/common_questions/what_is_a_domain_name/index.html @@ -1,6 +1,6 @@ --- title: Что такое доменные имена -slug: Learn/Understanding_domain_names +slug: Learn/Common_questions/What_is_a_domain_name tags: - DNS - вводная @@ -8,6 +8,7 @@ tags: - доменное имя - начальный уровень translation_of: Learn/Common_questions/What_is_a_domain_name +original_slug: Learn/Understanding_domain_names ---

      В этом материале мы обсудим доменные имена: что это такое, как они формируются и как зарегистрировать домен для себя.

      diff --git a/files/ru/learn/common_questions/what_is_a_url/index.html b/files/ru/learn/common_questions/what_is_a_url/index.html index 41fe5182c7..7cf4fe04d7 100644 --- a/files/ru/learn/common_questions/what_is_a_url/index.html +++ b/files/ru/learn/common_questions/what_is_a_url/index.html @@ -1,6 +1,6 @@ --- title: Что такое URL-адрес? -slug: Learn/Understanding_URLs +slug: Learn/Common_questions/What_is_a_URL tags: - URL - Адрес @@ -10,6 +10,7 @@ tags: - домен - протокол translation_of: Learn/Common_questions/What_is_a_URL +original_slug: Learn/Understanding_URLs ---

      Данная статья описывает Единый локатор ресурсов или Uniform Resource Locators (URLs), объясняет, что это такое, и опиcывает его структуру. 

      diff --git a/files/ru/learn/common_questions/what_is_a_web_server/index.html b/files/ru/learn/common_questions/what_is_a_web_server/index.html index efdc287ba9..3962ab1224 100644 --- a/files/ru/learn/common_questions/what_is_a_web_server/index.html +++ b/files/ru/learn/common_questions/what_is_a_web_server/index.html @@ -1,12 +1,13 @@ --- title: Что такое веб-сервер -slug: Learn/Что_такое_веб_сервер +slug: Learn/Common_questions/What_is_a_web_server tags: - Веб-сервер - Динамический сайт - Новичок - Статический сайт translation_of: Learn/Common_questions/What_is_a_web_server +original_slug: Learn/Что_такое_веб_сервер ---

      В этой статье мы узнаем, что из себя представляют веб-серверы, как они работают, и почему они так важны.

      diff --git a/files/ru/learn/css/building_blocks/cascade_tasks/index.html b/files/ru/learn/css/building_blocks/cascade_tasks/index.html index b6524f9ed3..d4f7440cb8 100644 --- a/files/ru/learn/css/building_blocks/cascade_tasks/index.html +++ b/files/ru/learn/css/building_blocks/cascade_tasks/index.html @@ -1,10 +1,11 @@ --- title: 'Проверьте ваши навыки: Каскад' -slug: Learn/CSS/Building_blocks/Каскад_задачи +slug: Learn/CSS/Building_blocks/Cascade_tasks tags: - CSS - Начинающий translation_of: Learn/CSS/Building_blocks/Cascade_tasks +original_slug: Learn/CSS/Building_blocks/Каскад_задачи ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/css/building_blocks/fundamental_css_comprehension/index.html b/files/ru/learn/css/building_blocks/fundamental_css_comprehension/index.html index 9009c684d8..36f4767e10 100644 --- a/files/ru/learn/css/building_blocks/fundamental_css_comprehension/index.html +++ b/files/ru/learn/css/building_blocks/fundamental_css_comprehension/index.html @@ -1,7 +1,8 @@ --- title: Понимание основ CSS -slug: Learn/CSS/Introduction_to_CSS/Ponimanie_osnov_CSS +slug: Learn/CSS/Building_blocks/Fundamental_CSS_comprehension translation_of: Learn/CSS/Building_blocks/Fundamental_CSS_comprehension +original_slug: Learn/CSS/Introduction_to_CSS/Ponimanie_osnov_CSS ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/css/building_blocks/selectors/attribute_selectors/index.html b/files/ru/learn/css/building_blocks/selectors/attribute_selectors/index.html index 9a6a2c4c07..3ac93f2012 100644 --- a/files/ru/learn/css/building_blocks/selectors/attribute_selectors/index.html +++ b/files/ru/learn/css/building_blocks/selectors/attribute_selectors/index.html @@ -1,6 +1,6 @@ --- title: Селекторы атрибута -slug: Learn/CSS/Building_blocks/Селекторы/Attribute_selectors +slug: Learn/CSS/Building_blocks/Selectors/Attribute_selectors tags: - CSS - Атрибут @@ -8,6 +8,7 @@ tags: - Обучение - Селекторы translation_of: Learn/CSS/Building_blocks/Selectors/Attribute_selectors +original_slug: Learn/CSS/Building_blocks/Селекторы/Attribute_selectors ---

      {{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors", "Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements", "Learn/CSS/Building_blocks")}}

      diff --git a/files/ru/learn/css/building_blocks/selectors/combinators/index.html b/files/ru/learn/css/building_blocks/selectors/combinators/index.html index 7a076e05a8..89cab04833 100644 --- a/files/ru/learn/css/building_blocks/selectors/combinators/index.html +++ b/files/ru/learn/css/building_blocks/selectors/combinators/index.html @@ -1,11 +1,12 @@ --- title: Комбинаторы -slug: Learn/CSS/Building_blocks/Селекторы/Combinators +slug: Learn/CSS/Building_blocks/Selectors/Combinators tags: - CSS - Селекторы - комбинаторы translation_of: Learn/CSS/Building_blocks/Selectors/Combinators +original_slug: Learn/CSS/Building_blocks/Селекторы/Combinators ---

      {{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements", "Learn/CSS/Building_blocks/The_box_model", "Learn/CSS/Building_blocks")}}

      diff --git a/files/ru/learn/css/building_blocks/selectors/index.html b/files/ru/learn/css/building_blocks/selectors/index.html index 3819af4207..b52ba93b52 100644 --- a/files/ru/learn/css/building_blocks/selectors/index.html +++ b/files/ru/learn/css/building_blocks/selectors/index.html @@ -1,6 +1,6 @@ --- title: Селекторы CSS -slug: Learn/CSS/Building_blocks/Селекторы +slug: Learn/CSS/Building_blocks/Selectors tags: - Attribute - Beginner @@ -14,6 +14,7 @@ tags: - псевдокласс - селектор translation_of: Learn/CSS/Building_blocks/Selectors +original_slug: Learn/CSS/Building_blocks/Селекторы ---
      {{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Cascade_and_inheritance", "Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors", "Learn/CSS/Building_blocks")}}
      diff --git a/files/ru/learn/css/building_blocks/selectors/pseudo-classes_and_pseudo-elements/index.html b/files/ru/learn/css/building_blocks/selectors/pseudo-classes_and_pseudo-elements/index.html index 4fe67b8adb..8720c0a277 100644 --- a/files/ru/learn/css/building_blocks/selectors/pseudo-classes_and_pseudo-elements/index.html +++ b/files/ru/learn/css/building_blocks/selectors/pseudo-classes_and_pseudo-elements/index.html @@ -1,6 +1,6 @@ --- -title: 'Псевдоклассы, псевдоэлементы' -slug: Learn/CSS/Building_blocks/Селекторы/Pseudo-classes_and_pseudo-elements +title: Псевдоклассы, псевдоэлементы +slug: Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements tags: - CSS - Начинающий @@ -10,6 +10,7 @@ tags: - Селекторы - псевдокласс translation_of: Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements +original_slug: Learn/CSS/Building_blocks/Селекторы/Pseudo-classes_and_pseudo-elements ---

      {{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Attribute_selectors", "Learn/CSS/Building_blocks/Selectors/Combinators", "Learn/CSS/Building_blocks")}}

      diff --git a/files/ru/learn/css/building_blocks/selectors/selectors_tasks/index.html b/files/ru/learn/css/building_blocks/selectors/selectors_tasks/index.html index b8f36063c2..4375def5db 100644 --- a/files/ru/learn/css/building_blocks/selectors/selectors_tasks/index.html +++ b/files/ru/learn/css/building_blocks/selectors/selectors_tasks/index.html @@ -1,10 +1,11 @@ --- title: 'Проверьте ваши навыки: Селекторы' -slug: Learn/CSS/Building_blocks/Селекторы/Селекторы_Задачи +slug: Learn/CSS/Building_blocks/Selectors/Selectors_Tasks tags: - CSS - Начинающий translation_of: Learn/CSS/Building_blocks/Selectors/Selectors_Tasks +original_slug: Learn/CSS/Building_blocks/Селекторы/Селекторы_Задачи ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/css/building_blocks/selectors/type_class_and_id_selectors/index.html b/files/ru/learn/css/building_blocks/selectors/type_class_and_id_selectors/index.html index 875899ab41..2d54a6bde3 100644 --- a/files/ru/learn/css/building_blocks/selectors/type_class_and_id_selectors/index.html +++ b/files/ru/learn/css/building_blocks/selectors/type_class_and_id_selectors/index.html @@ -1,6 +1,6 @@ --- -title: 'Селекторы типа, класса и ID' -slug: Learn/CSS/Building_blocks/Селекторы/Type_Class_and_ID_Selectors +title: Селекторы типа, класса и ID +slug: Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors tags: - CSS - id @@ -9,6 +9,7 @@ tags: - Обучение - Селекторы translation_of: Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors +original_slug: Learn/CSS/Building_blocks/Селекторы/Type_Class_and_ID_Selectors ---

      {{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors", "Learn/CSS/Building_blocks/Selectors/Attribute_selectors", "Learn/CSS/Building_blocks")}}

      diff --git a/files/ru/learn/css/css_layout/multicol_skills/index.html b/files/ru/learn/css/css_layout/multicol_skills/index.html index c549f1210b..147a0c024b 100644 --- a/files/ru/learn/css/css_layout/multicol_skills/index.html +++ b/files/ru/learn/css/css_layout/multicol_skills/index.html @@ -1,7 +1,8 @@ --- title: 'Проверь свои навыки: Multicol' -slug: Learn/CSS/CSS_layout/Навыки_Multicol +slug: Learn/CSS/CSS_layout/Multicol_skills translation_of: Learn/CSS/CSS_layout/Multicol_skills +original_slug: Learn/CSS/CSS_layout/Навыки_Multicol ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/css/css_layout/multiple-column_layout/index.html b/files/ru/learn/css/css_layout/multiple-column_layout/index.html index 9ba48bbbef..7aa24804af 100644 --- a/files/ru/learn/css/css_layout/multiple-column_layout/index.html +++ b/files/ru/learn/css/css_layout/multiple-column_layout/index.html @@ -1,7 +1,8 @@ --- title: Макет с несколькими столбцами -slug: Learn/CSS/CSS_layout/Макет_с_несколькими_столбцами +slug: Learn/CSS/CSS_layout/Multiple-column_Layout translation_of: Learn/CSS/CSS_layout/Multiple-column_Layout +original_slug: Learn/CSS/CSS_layout/Макет_с_несколькими_столбцами ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/css/css_layout/normal_flow/index.html b/files/ru/learn/css/css_layout/normal_flow/index.html index d936c240c5..707909d096 100644 --- a/files/ru/learn/css/css_layout/normal_flow/index.html +++ b/files/ru/learn/css/css_layout/normal_flow/index.html @@ -1,10 +1,11 @@ --- title: Базовый поток -slug: Learn/CSS/CSS_layout/Нормальный_поток +slug: Learn/CSS/CSS_layout/Normal_Flow tags: - float - grid translation_of: Learn/CSS/CSS_layout/Normal_Flow +original_slug: Learn/CSS/CSS_layout/Нормальный_поток ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/css/css_layout/position_skills/index.html b/files/ru/learn/css/css_layout/position_skills/index.html index f63a3a3a94..b6723cda0d 100644 --- a/files/ru/learn/css/css_layout/position_skills/index.html +++ b/files/ru/learn/css/css_layout/position_skills/index.html @@ -1,7 +1,8 @@ --- title: 'Проверьте свои навыки: позиционирование' -slug: Learn/CSS/CSS_layout/Навыки_позиционирования +slug: Learn/CSS/CSS_layout/Position_skills translation_of: Learn/CSS/CSS_layout/Position_skills +original_slug: Learn/CSS/CSS_layout/Навыки_позиционирования ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/css/css_layout/responsive_design/index.html b/files/ru/learn/css/css_layout/responsive_design/index.html index 978b4e43dc..ee270e0769 100644 --- a/files/ru/learn/css/css_layout/responsive_design/index.html +++ b/files/ru/learn/css/css_layout/responsive_design/index.html @@ -1,7 +1,8 @@ --- title: Отзывчивый дизайн -slug: Learn/CSS/CSS_layout/Отзывчивый_дизайн +slug: Learn/CSS/CSS_layout/Responsive_Design translation_of: Learn/CSS/CSS_layout/Responsive_Design +original_slug: Learn/CSS/CSS_layout/Отзывчивый_дизайн ---
      {{learnsidebar}}{{PreviousMenuNext("Learn/CSS/CSS_layout/Multiple-column_Layout", "Learn/CSS/CSS_layout/Media_queries", "Learn/CSS/CSS_layout")}}
      diff --git a/files/ru/learn/css/first_steps/how_css_is_structured/index.html b/files/ru/learn/css/first_steps/how_css_is_structured/index.html index d2c60edcfb..62bbb0b148 100644 --- a/files/ru/learn/css/first_steps/how_css_is_structured/index.html +++ b/files/ru/learn/css/first_steps/how_css_is_structured/index.html @@ -1,6 +1,6 @@ --- title: Как структурирован CSS -slug: Learn/CSS/First_steps/Как_структурирован_CSS +slug: Learn/CSS/First_steps/How_CSS_is_structured tags: - Beginner - CSS @@ -15,6 +15,7 @@ tags: - селектор - сокращение translation_of: Learn/CSS/First_steps/How_CSS_is_structured +original_slug: Learn/CSS/First_steps/Как_структурирован_CSS ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/css/first_steps/what_is_css/index.html b/files/ru/learn/css/first_steps/what_is_css/index.html index 6b5bdf8924..6dd204cd6b 100644 --- a/files/ru/learn/css/first_steps/what_is_css/index.html +++ b/files/ru/learn/css/first_steps/what_is_css/index.html @@ -1,6 +1,6 @@ --- title: Что такое CSS? -slug: Learn/CSS/First_steps/Что_такое_CSS +slug: Learn/CSS/First_steps/What_is_CSS tags: - Beginner - CSS @@ -11,6 +11,7 @@ tags: - Синтаксис - Спецификации translation_of: Learn/CSS/First_steps/What_is_CSS +original_slug: Learn/CSS/First_steps/Что_такое_CSS ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/css/howto/css_faq/index.html b/files/ru/learn/css/howto/css_faq/index.html index cecfb92b82..59f971e488 100644 --- a/files/ru/learn/css/howto/css_faq/index.html +++ b/files/ru/learn/css/howto/css_faq/index.html @@ -1,7 +1,8 @@ --- title: Common CSS questions -slug: Web/CSS/Common_CSS_Questions +slug: Learn/CSS/Howto/CSS_FAQ translation_of: Learn/CSS/Howto/CSS_FAQ +original_slug: Web/CSS/Common_CSS_Questions ---

      Why doesn't my CSS, which is valid, render correctly?

      diff --git a/files/ru/learn/css/howto/index.html b/files/ru/learn/css/howto/index.html index 105c7f0a97..691f887381 100644 --- a/files/ru/learn/css/howto/index.html +++ b/files/ru/learn/css/howto/index.html @@ -1,7 +1,8 @@ --- title: Использование CSS для решения общих проблем -slug: Learn/CSS/Как +slug: Learn/CSS/Howto translation_of: Learn/CSS/Howto +original_slug: Learn/CSS/Как ---

      Следующие ссылки указывают на решения общих повседневных проблем, вам придется решать их с помощью CSS.

      diff --git a/files/ru/learn/css/styling_text/styling_lists/index.html b/files/ru/learn/css/styling_text/styling_lists/index.html index b749acb5cc..401cd7e6e1 100644 --- a/files/ru/learn/css/styling_text/styling_lists/index.html +++ b/files/ru/learn/css/styling_text/styling_lists/index.html @@ -1,7 +1,8 @@ --- title: Стилизация списков -slug: Learn/CSS/Styling_text/Стилизация_списков +slug: Learn/CSS/Styling_text/Styling_lists translation_of: Learn/CSS/Styling_text/Styling_lists +original_slug: Learn/CSS/Styling_text/Стилизация_списков ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/css/styling_text/typesetting_a_homepage/index.html b/files/ru/learn/css/styling_text/typesetting_a_homepage/index.html index 4f77ee31bc..fd8fa8eb06 100644 --- a/files/ru/learn/css/styling_text/typesetting_a_homepage/index.html +++ b/files/ru/learn/css/styling_text/typesetting_a_homepage/index.html @@ -1,7 +1,8 @@ --- title: 'Задание: Стилизирование школьного сайта' -slug: 'Learn/CSS/Styling_text/Задание:_Стилизирование_школьного_сайта' +slug: Learn/CSS/Styling_text/Typesetting_a_homepage translation_of: Learn/CSS/Styling_text/Typesetting_a_homepage +original_slug: Learn/CSS/Styling_text/Задание:_Стилизирование_школьного_сайта ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/css/styling_text/web_fonts/index.html b/files/ru/learn/css/styling_text/web_fonts/index.html index f6ca27747f..03318d45b6 100644 --- a/files/ru/learn/css/styling_text/web_fonts/index.html +++ b/files/ru/learn/css/styling_text/web_fonts/index.html @@ -1,7 +1,8 @@ --- title: Веб-шрифты -slug: Learn/CSS/Styling_text/Веб_шрифты +slug: Learn/CSS/Styling_text/Web_fonts translation_of: Learn/CSS/Styling_text/Web_fonts +original_slug: Learn/CSS/Styling_text/Веб_шрифты ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/forms/basic_native_form_controls/index.html b/files/ru/learn/forms/basic_native_form_controls/index.html index eae3fbb32d..f6465a6aa0 100644 --- a/files/ru/learn/forms/basic_native_form_controls/index.html +++ b/files/ru/learn/forms/basic_native_form_controls/index.html @@ -1,7 +1,8 @@ --- title: Стандартные виджеты форм -slug: Learn/HTML/Forms/Стандартные_виджеты_форм +slug: Learn/Forms/Basic_native_form_controls translation_of: Learn/Forms/Basic_native_form_controls +original_slug: Learn/HTML/Forms/Стандартные_виджеты_форм ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/forms/form_validation/index.html b/files/ru/learn/forms/form_validation/index.html index f2c5f362ac..4aec16d46d 100644 --- a/files/ru/learn/forms/form_validation/index.html +++ b/files/ru/learn/forms/form_validation/index.html @@ -1,7 +1,8 @@ --- title: Проверка данных формы (проверка валидности формы на стороне клиента) -slug: Learn/HTML/Forms/Валидация_формы +slug: Learn/Forms/Form_validation translation_of: Learn/Forms/Form_validation +original_slug: Learn/HTML/Forms/Валидация_формы ---

      diff --git a/files/ru/learn/forms/how_to_build_custom_form_controls/index.html b/files/ru/learn/forms/how_to_build_custom_form_controls/index.html index 8a4ca2d6b8..344868775b 100644 --- a/files/ru/learn/forms/how_to_build_custom_form_controls/index.html +++ b/files/ru/learn/forms/how_to_build_custom_form_controls/index.html @@ -1,6 +1,6 @@ --- title: Как создавать пользовательские виджеты форм -slug: Learn/HTML/Forms/How_to_build_custom_form_widgets +slug: Learn/Forms/How_to_build_custom_form_controls tags: - HTML - Web @@ -9,6 +9,7 @@ tags: - Руководство - Формы translation_of: Learn/Forms/How_to_build_custom_form_controls +original_slug: Learn/HTML/Forms/How_to_build_custom_form_widgets ---

      {{LearnSidebar}}{{PreviousMenuNext("Learn/HTML/Forms/Form_validation", "Learn/HTML/Forms/Sending_forms_through_JavaScript", "Learn/HTML/Forms")}}
      diff --git a/files/ru/learn/forms/how_to_structure_a_web_form/index.html b/files/ru/learn/forms/how_to_structure_a_web_form/index.html index 741d773dba..97f8a42ad8 100644 --- a/files/ru/learn/forms/how_to_structure_a_web_form/index.html +++ b/files/ru/learn/forms/how_to_structure_a_web_form/index.html @@ -1,6 +1,6 @@ --- title: Как структурировать HTML-формы -slug: Learn/HTML/Forms/How_to_structure_an_HTML_form +slug: Learn/Forms/How_to_structure_a_web_form tags: - HTML-форма - Веб-форма @@ -9,6 +9,7 @@ tags: - Структурирование - Форма translation_of: Learn/Forms/How_to_structure_a_web_form +original_slug: Learn/HTML/Forms/How_to_structure_an_HTML_form ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/forms/index.html b/files/ru/learn/forms/index.html index 02e36df560..3addc9a37b 100644 --- a/files/ru/learn/forms/index.html +++ b/files/ru/learn/forms/index.html @@ -1,6 +1,6 @@ --- title: Руководство по HTML-формам -slug: Learn/HTML/Forms +slug: Learn/Forms tags: - HTML - Web @@ -8,6 +8,7 @@ tags: - Руководство - Формы translation_of: Learn/Forms +original_slug: Learn/HTML/Forms ---

      {{LearnSidebar}}

      diff --git a/files/ru/learn/forms/sending_and_retrieving_form_data/index.html b/files/ru/learn/forms/sending_and_retrieving_form_data/index.html index 9e7900f783..3aebc66024 100644 --- a/files/ru/learn/forms/sending_and_retrieving_form_data/index.html +++ b/files/ru/learn/forms/sending_and_retrieving_form_data/index.html @@ -1,7 +1,8 @@ --- title: Отправка данных формы -slug: Learn/HTML/Forms/Отправка_и_Получение_данных_формы +slug: Learn/Forms/Sending_and_retrieving_form_data translation_of: Learn/Forms/Sending_and_retrieving_form_data +original_slug: Learn/HTML/Forms/Отправка_и_Получение_данных_формы ---
      {{LearnSidebar}}{{PreviousMenuNext("Learn/HTML/Forms/The_native_form_widgets", "Learn/HTML/Forms/Form_validation", "Learn/HTML/Forms")}}
      diff --git a/files/ru/learn/forms/sending_forms_through_javascript/index.html b/files/ru/learn/forms/sending_forms_through_javascript/index.html index d98ccea1ac..b686d909df 100644 --- a/files/ru/learn/forms/sending_forms_through_javascript/index.html +++ b/files/ru/learn/forms/sending_forms_through_javascript/index.html @@ -1,7 +1,8 @@ --- title: Отправка форм при помощи JavaScript -slug: Learn/HTML/Forms/Sending_forms_through_JavaScript +slug: Learn/Forms/Sending_forms_through_JavaScript translation_of: Learn/Forms/Sending_forms_through_JavaScript +original_slug: Learn/HTML/Forms/Sending_forms_through_JavaScript ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/forms/styling_web_forms/index.html b/files/ru/learn/forms/styling_web_forms/index.html index f8cc1644dc..f818654906 100644 --- a/files/ru/learn/forms/styling_web_forms/index.html +++ b/files/ru/learn/forms/styling_web_forms/index.html @@ -1,7 +1,8 @@ --- title: Стили HTML форм -slug: Learn/HTML/Forms/Styling_HTML_forms +slug: Learn/Forms/Styling_web_forms translation_of: Learn/Forms/Styling_web_forms +original_slug: Learn/HTML/Forms/Styling_HTML_forms ---

      {{LearnSidebar}}{{PreviousMenuNext("Learn/HTML/Forms/HTML_forms_in_legacy_browsers", "Learn/HTML/Forms/Advanced_styling_for_HTML_forms", "Learn/HTML/Forms")}}

      diff --git a/files/ru/learn/forms/your_first_form/index.html b/files/ru/learn/forms/your_first_form/index.html index b68d433739..4cb3f856d0 100644 --- a/files/ru/learn/forms/your_first_form/index.html +++ b/files/ru/learn/forms/your_first_form/index.html @@ -1,11 +1,12 @@ --- title: Ваша первая HTML форма -slug: Learn/HTML/Forms/Ваша_первая_HTML_форма +slug: Learn/Forms/Your_first_form tags: - HTML-форма - Веб-форма - Форма translation_of: Learn/Forms/Your_first_form +original_slug: Learn/HTML/Forms/Ваша_первая_HTML_форма ---
      {{LearnSidebar}}{{NextMenu("Learn/HTML/Forms/How_to_structure_an_HTML_form", "Learn/HTML/Forms")}}
      diff --git a/files/ru/learn/front-end_web_developer/index.html b/files/ru/learn/front-end_web_developer/index.html index c219d6a069..7c0e93322d 100644 --- a/files/ru/learn/front-end_web_developer/index.html +++ b/files/ru/learn/front-end_web_developer/index.html @@ -1,11 +1,12 @@ --- title: Фронтенд разработчик -slug: Learn/Фронтенд_разработчик +slug: Learn/Front-end_web_developer tags: - Начинающий - Стандарты веб-разработки - Фронт-енд translation_of: Learn/Front-end_web_developer +original_slug: Learn/Фронтенд_разработчик ---

      {{learnsidebar}}

      diff --git a/files/ru/learn/getting_started_with_the_web/installing_basic_software/index.html b/files/ru/learn/getting_started_with_the_web/installing_basic_software/index.html index 40b4254712..2829c00c84 100644 --- a/files/ru/learn/getting_started_with_the_web/installing_basic_software/index.html +++ b/files/ru/learn/getting_started_with_the_web/installing_basic_software/index.html @@ -1,6 +1,6 @@ --- title: Установка базового программного обеспечения -slug: Learn/Getting_started_with_the_web/Установка_базового_программного_обеспечения +slug: Learn/Getting_started_with_the_web/Installing_basic_software tags: - WebMechanics - Браузер @@ -11,6 +11,7 @@ tags: - Текстовый редактор - Установка translation_of: Learn/Getting_started_with_the_web/Installing_basic_software +original_slug: Learn/Getting_started_with_the_web/Установка_базового_программного_обеспечения ---

      {{LearnSidebar}}
      diff --git a/files/ru/learn/getting_started_with_the_web/the_web_and_web_standards/index.html b/files/ru/learn/getting_started_with_the_web/the_web_and_web_standards/index.html index 08fad617b5..8791fab186 100644 --- a/files/ru/learn/getting_started_with_the_web/the_web_and_web_standards/index.html +++ b/files/ru/learn/getting_started_with_the_web/the_web_and_web_standards/index.html @@ -1,10 +1,11 @@ --- title: Всемирная сеть (веб) и веб-стандарты -slug: Learn/Getting_started_with_the_web/Веб_и_веб_стандарты +slug: Learn/Getting_started_with_the_web/The_web_and_web_standards tags: - Веб-стандарты - Изучение translation_of: Learn/Getting_started_with_the_web/The_web_and_web_standards +original_slug: Learn/Getting_started_with_the_web/Веб_и_веб_стандарты ---

      {{learnsidebar}}

      diff --git a/files/ru/learn/html/howto/author_fast-loading_html_pages/index.html b/files/ru/learn/html/howto/author_fast-loading_html_pages/index.html index f34fe049f5..a7b386098d 100644 --- a/files/ru/learn/html/howto/author_fast-loading_html_pages/index.html +++ b/files/ru/learn/html/howto/author_fast-loading_html_pages/index.html @@ -1,7 +1,8 @@ --- title: Tips for authoring fast-loading HTML pages -slug: Web/Guide/HTML/Tips_for_authoring_fast-loading_HTML_pages +slug: Learn/HTML/Howto/Author_fast-loading_HTML_pages translation_of: Learn/HTML/Howto/Author_fast-loading_HTML_pages +original_slug: Web/Guide/HTML/Tips_for_authoring_fast-loading_HTML_pages ---

      Эти советы основаны на общих знаниях и экспериментах.

      diff --git a/files/ru/learn/html/howto/index.html b/files/ru/learn/html/howto/index.html index 1a780e676b..06759fe76d 100644 --- a/files/ru/learn/html/howto/index.html +++ b/files/ru/learn/html/howto/index.html @@ -1,12 +1,13 @@ --- title: Использование HTML для решения общих задач -slug: Learn/HTML/Рецепты +slug: Learn/HTML/Howto tags: - CodingScripting - HTML - На русском - Программирование translation_of: Learn/HTML/Howto +original_slug: Learn/HTML/Рецепты ---

      Следующие ссылки указывают на решения общих повседневных проблем, которые вам нужно решить с помощью HTML.

      diff --git a/files/ru/learn/html/howto/use_data_attributes/index.html b/files/ru/learn/html/howto/use_data_attributes/index.html index cef001e25a..9820e4e0f9 100644 --- a/files/ru/learn/html/howto/use_data_attributes/index.html +++ b/files/ru/learn/html/howto/use_data_attributes/index.html @@ -1,10 +1,11 @@ --- title: Использование data-* атрибутов -slug: Web/Guide/HTML/Using_data_attributes +slug: Learn/HTML/Howto/Use_data_attributes tags: - Guide - HTML translation_of: Learn/HTML/Howto/Use_data_attributes +original_slug: Web/Guide/HTML/Using_data_attributes ---

      HTML5 спроектирован с возможностью расширения данных ассоциированных с каким-либо элементом, но в то же время не обязательно имеющих определённое значение. data-* атрибуты позволяют хранить дополнительную информацию в стандартных элементах HTML, без хаков вроде нестандартных атрибутов, лишних DOM-свойств или {{domxref("Node.setUserData()")}}.

      diff --git a/files/ru/learn/html/introduction_to_html/advanced_text_formatting/index.html b/files/ru/learn/html/introduction_to_html/advanced_text_formatting/index.html index fdebae6e91..2e34f4a80b 100644 --- a/files/ru/learn/html/introduction_to_html/advanced_text_formatting/index.html +++ b/files/ru/learn/html/introduction_to_html/advanced_text_formatting/index.html @@ -1,6 +1,6 @@ --- title: Углубленное форматирование текста -slug: Learn/HTML/Введение_в_HTML/Advanced_text_formatting +slug: Learn/HTML/Introduction_to_HTML/Advanced_text_formatting tags: - Beginner - Guide @@ -8,6 +8,7 @@ tags: - Начинающий - Руководство translation_of: Learn/HTML/Introduction_to_HTML/Advanced_text_formatting +original_slug: Learn/HTML/Введение_в_HTML/Advanced_text_formatting ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/html/introduction_to_html/creating_hyperlinks/index.html b/files/ru/learn/html/introduction_to_html/creating_hyperlinks/index.html index fcee7272e4..a6cd7e7730 100644 --- a/files/ru/learn/html/introduction_to_html/creating_hyperlinks/index.html +++ b/files/ru/learn/html/introduction_to_html/creating_hyperlinks/index.html @@ -1,6 +1,6 @@ --- title: Создание гиперссылок -slug: Learn/HTML/Введение_в_HTML/Создание_гиперссылок +slug: Learn/HTML/Introduction_to_HTML/Creating_hyperlinks tags: - Абсолютные - Гиперссылки @@ -13,6 +13,7 @@ tags: - Ссылки - Язык гипертекстовой разметки translation_of: Learn/HTML/Introduction_to_HTML/Creating_hyperlinks +original_slug: Learn/HTML/Введение_в_HTML/Создание_гиперссылок ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/html/introduction_to_html/debugging_html/index.html b/files/ru/learn/html/introduction_to_html/debugging_html/index.html index 1f3e03e508..a48d53d1c2 100644 --- a/files/ru/learn/html/introduction_to_html/debugging_html/index.html +++ b/files/ru/learn/html/introduction_to_html/debugging_html/index.html @@ -1,6 +1,6 @@ --- title: Отладка HTML -slug: Learn/HTML/Введение_в_HTML/Debugging_HTML +slug: Learn/HTML/Introduction_to_HTML/Debugging_HTML tags: - Debugging - Guide @@ -8,6 +8,7 @@ tags: - Валидация - Отладка translation_of: Learn/HTML/Introduction_to_HTML/Debugging_HTML +original_slug: Learn/HTML/Введение_в_HTML/Debugging_HTML ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/html/introduction_to_html/document_and_website_structure/index.html b/files/ru/learn/html/introduction_to_html/document_and_website_structure/index.html index 13f4f458d1..081d12edf3 100644 --- a/files/ru/learn/html/introduction_to_html/document_and_website_structure/index.html +++ b/files/ru/learn/html/introduction_to_html/document_and_website_structure/index.html @@ -1,6 +1,6 @@ --- title: Структура документа и веб-сайта -slug: Learn/HTML/Введение_в_HTML/Структура_документа_и_веб-сайта +slug: Learn/HTML/Introduction_to_HTML/Document_and_website_structure tags: - Guide - HTML @@ -10,6 +10,7 @@ tags: - С чего начать - Структура сайта translation_of: Learn/HTML/Introduction_to_HTML/Document_and_website_structure +original_slug: Learn/HTML/Введение_в_HTML/Структура_документа_и_веб-сайта ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/html/introduction_to_html/getting_started/index.html b/files/ru/learn/html/introduction_to_html/getting_started/index.html index 48904b9e17..f27e4c5398 100644 --- a/files/ru/learn/html/introduction_to_html/getting_started/index.html +++ b/files/ru/learn/html/introduction_to_html/getting_started/index.html @@ -1,6 +1,6 @@ --- title: Начало работы с HTML -slug: Learn/HTML/Введение_в_HTML/Начало_работы +slug: Learn/HTML/Introduction_to_HTML/Getting_started tags: - Guide - HTML @@ -13,6 +13,7 @@ tags: - Урок - элементы translation_of: Learn/HTML/Introduction_to_HTML/Getting_started +original_slug: Learn/HTML/Введение_в_HTML/Начало_работы ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/html/introduction_to_html/html_text_fundamentals/index.html b/files/ru/learn/html/introduction_to_html/html_text_fundamentals/index.html index 711c0bfdf3..8ca79e314e 100644 --- a/files/ru/learn/html/introduction_to_html/html_text_fundamentals/index.html +++ b/files/ru/learn/html/introduction_to_html/html_text_fundamentals/index.html @@ -1,6 +1,6 @@ --- title: Основы редактирования текста в HTML -slug: Learn/HTML/Введение_в_HTML/HTML_text_fundamentals +slug: Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals tags: - Guide - HTML @@ -13,6 +13,7 @@ tags: - Семантика - Текст translation_of: Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals +original_slug: Learn/HTML/Введение_в_HTML/HTML_text_fundamentals ---
       {{LearnSidebar}}
      diff --git a/files/ru/learn/html/introduction_to_html/index.html b/files/ru/learn/html/introduction_to_html/index.html index 1ecf1eb84a..a90af38b71 100644 --- a/files/ru/learn/html/introduction_to_html/index.html +++ b/files/ru/learn/html/introduction_to_html/index.html @@ -1,6 +1,6 @@ --- title: Введение в HTML -slug: Learn/HTML/Введение_в_HTML +slug: Learn/HTML/Introduction_to_HTML tags: - HTML - Введение @@ -14,6 +14,7 @@ tags: - Структура - Текст translation_of: Learn/HTML/Introduction_to_HTML +original_slug: Learn/HTML/Введение_в_HTML ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/html/introduction_to_html/marking_up_a_letter/index.html b/files/ru/learn/html/introduction_to_html/marking_up_a_letter/index.html index c9ede9d116..cb0956fa0b 100644 --- a/files/ru/learn/html/introduction_to_html/marking_up_a_letter/index.html +++ b/files/ru/learn/html/introduction_to_html/marking_up_a_letter/index.html @@ -1,9 +1,10 @@ --- title: Разметка письма -slug: Learn/HTML/Введение_в_HTML/Marking_up_a_letter +slug: Learn/HTML/Introduction_to_HTML/Marking_up_a_letter tags: - HTML translation_of: Learn/HTML/Introduction_to_HTML/Marking_up_a_letter +original_slug: Learn/HTML/Введение_в_HTML/Marking_up_a_letter ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/html/introduction_to_html/structuring_a_page_of_content/index.html b/files/ru/learn/html/introduction_to_html/structuring_a_page_of_content/index.html index b5bb7fa235..0dd009c3bc 100644 --- a/files/ru/learn/html/introduction_to_html/structuring_a_page_of_content/index.html +++ b/files/ru/learn/html/introduction_to_html/structuring_a_page_of_content/index.html @@ -1,9 +1,10 @@ --- title: Структурируем страницу -slug: Learn/HTML/Введение_в_HTML/Structuring_a_page_of_content +slug: Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content tags: - HTML translation_of: Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content +original_slug: Learn/HTML/Введение_в_HTML/Structuring_a_page_of_content ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/html/introduction_to_html/the_head_metadata_in_html/index.html b/files/ru/learn/html/introduction_to_html/the_head_metadata_in_html/index.html index dfb2840569..9563f7edbe 100644 --- a/files/ru/learn/html/introduction_to_html/the_head_metadata_in_html/index.html +++ b/files/ru/learn/html/introduction_to_html/the_head_metadata_in_html/index.html @@ -1,6 +1,6 @@ --- title: Что внутри "head"? Метаданные в HTML -slug: Learn/HTML/Введение_в_HTML/The_head_metadata_in_HTML +slug: Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML tags: - HTML - Meta @@ -15,6 +15,7 @@ tags: - метаданные - язык translation_of: Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML +original_slug: Learn/HTML/Введение_в_HTML/The_head_metadata_in_HTML ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/html/multimedia_and_embedding/adding_vector_graphics_to_the_web/index.html b/files/ru/learn/html/multimedia_and_embedding/adding_vector_graphics_to_the_web/index.html index a3a445dfc7..9e6eb3707e 100644 --- a/files/ru/learn/html/multimedia_and_embedding/adding_vector_graphics_to_the_web/index.html +++ b/files/ru/learn/html/multimedia_and_embedding/adding_vector_graphics_to_the_web/index.html @@ -1,7 +1,8 @@ --- title: Добавление векторной графики в веб-документ -slug: Learn/HTML/Multimedia_and_embedding/Добавление_r_graphics_to_the_Web +slug: Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web translation_of: Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web +original_slug: Learn/HTML/Multimedia_and_embedding/Добавление_r_graphics_to_the_Web ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/html/multimedia_and_embedding/images_in_html/index.html b/files/ru/learn/html/multimedia_and_embedding/images_in_html/index.html index d96558e3da..3bf7b57393 100644 --- a/files/ru/learn/html/multimedia_and_embedding/images_in_html/index.html +++ b/files/ru/learn/html/multimedia_and_embedding/images_in_html/index.html @@ -1,7 +1,8 @@ --- title: Изображения в HTML -slug: Learn/HTML/Multimedia_and_embedding/Изображения_в_HTML +slug: Learn/HTML/Multimedia_and_embedding/Images_in_HTML translation_of: Learn/HTML/Multimedia_and_embedding/Images_in_HTML +original_slug: Learn/HTML/Multimedia_and_embedding/Изображения_в_HTML ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/html/multimedia_and_embedding/images_in_html/test_your_skills_colon__html_images/index.html b/files/ru/learn/html/multimedia_and_embedding/images_in_html/test_your_skills_colon__html_images/index.html index e00777dabe..00ef01d21d 100644 --- a/files/ru/learn/html/multimedia_and_embedding/images_in_html/test_your_skills_colon__html_images/index.html +++ b/files/ru/learn/html/multimedia_and_embedding/images_in_html/test_your_skills_colon__html_images/index.html @@ -1,9 +1,11 @@ --- title: 'Проверьте свои знания: Изображения в HTML' slug: >- - Learn/HTML/Multimedia_and_embedding/Изображения_в_HTML/Проверьте_свои_знания:_Изображения_в_HTML + Learn/HTML/Multimedia_and_embedding/Images_in_HTML/Test_your_skills:_HTML_images translation_of: >- Learn/HTML/Multimedia_and_embedding/Images_in_HTML/Test_your_skills:_HTML_images +original_slug: >- + Learn/HTML/Multimedia_and_embedding/Изображения_в_HTML/Проверьте_свои_знания:_Изображения_в_HTML ---
      {{learnsidebar}}
      diff --git a/files/ru/learn/html/multimedia_and_embedding/mozilla_splash_page/index.html b/files/ru/learn/html/multimedia_and_embedding/mozilla_splash_page/index.html index 4171780730..d3233346a2 100644 --- a/files/ru/learn/html/multimedia_and_embedding/mozilla_splash_page/index.html +++ b/files/ru/learn/html/multimedia_and_embedding/mozilla_splash_page/index.html @@ -1,7 +1,8 @@ --- title: Заставка Mozilla -slug: Learn/HTML/Multimedia_and_embedding/заставка_Mozilla +slug: Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page translation_of: Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page +original_slug: Learn/HTML/Multimedia_and_embedding/заставка_Mozilla ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/asynchronous/timeouts_and_intervals/index.html b/files/ru/learn/javascript/asynchronous/timeouts_and_intervals/index.html index e3aa0c72b8..1b7207c7c2 100644 --- a/files/ru/learn/javascript/asynchronous/timeouts_and_intervals/index.html +++ b/files/ru/learn/javascript/asynchronous/timeouts_and_intervals/index.html @@ -1,7 +1,8 @@ --- title: 'Объединенный асинхронный JavaScript: Таймайты и интервалы' -slug: Learn/JavaScript/Asynchronous/Таймауты_и_интервалы +slug: Learn/JavaScript/Asynchronous/Timeouts_and_intervals translation_of: Learn/JavaScript/Asynchronous/Timeouts_and_intervals +original_slug: Learn/JavaScript/Asynchronous/Таймауты_и_интервалы ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/building_blocks/events/index.html b/files/ru/learn/javascript/building_blocks/events/index.html index db13cec676..c2ed6bbe07 100644 --- a/files/ru/learn/javascript/building_blocks/events/index.html +++ b/files/ru/learn/javascript/building_blocks/events/index.html @@ -1,12 +1,13 @@ --- title: Введение в события -slug: Learn/JavaScript/Building_blocks/События +slug: Learn/JavaScript/Building_blocks/Events tags: - Изучение - Обработчик событий - Руководство - события translation_of: Learn/JavaScript/Building_blocks/Events +original_slug: Learn/JavaScript/Building_blocks/События ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/first_steps/a_first_splash/index.html b/files/ru/learn/javascript/first_steps/a_first_splash/index.html index b2a811b992..7d04a8b3af 100644 --- a/files/ru/learn/javascript/first_steps/a_first_splash/index.html +++ b/files/ru/learn/javascript/first_steps/a_first_splash/index.html @@ -1,7 +1,8 @@ --- title: Первое погружение в JavaScript -slug: Learn/JavaScript/Первые_шаги/A_first_splash +slug: Learn/JavaScript/First_steps/A_first_splash translation_of: Learn/JavaScript/First_steps/A_first_splash +original_slug: Learn/JavaScript/Первые_шаги/A_first_splash ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/first_steps/arrays/index.html b/files/ru/learn/javascript/first_steps/arrays/index.html index 7f38ce4a50..1c575c759b 100644 --- a/files/ru/learn/javascript/first_steps/arrays/index.html +++ b/files/ru/learn/javascript/first_steps/arrays/index.html @@ -1,6 +1,6 @@ --- title: Массивы -slug: Learn/JavaScript/Первые_шаги/Arrays +slug: Learn/JavaScript/First_steps/Arrays tags: - JavaScript - Pop @@ -11,6 +11,7 @@ tags: - Массивы - Статья translation_of: Learn/JavaScript/First_steps/Arrays +original_slug: Learn/JavaScript/Первые_шаги/Arrays ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/first_steps/index.html b/files/ru/learn/javascript/first_steps/index.html index bd435e920f..c1f7991f3d 100644 --- a/files/ru/learn/javascript/first_steps/index.html +++ b/files/ru/learn/javascript/first_steps/index.html @@ -1,11 +1,12 @@ --- title: Первые шаги в JavaScript -slug: Learn/JavaScript/Первые_шаги +slug: Learn/JavaScript/First_steps tags: - JavaScript - Массивы - Новичкам translation_of: Learn/JavaScript/First_steps +original_slug: Learn/JavaScript/Первые_шаги ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/first_steps/math/index.html b/files/ru/learn/javascript/first_steps/math/index.html index 29ff9258bf..22a6945573 100644 --- a/files/ru/learn/javascript/first_steps/math/index.html +++ b/files/ru/learn/javascript/first_steps/math/index.html @@ -1,6 +1,6 @@ --- title: Базовая математика в JavaScript — числа и операторы -slug: Learn/JavaScript/Первые_шаги/Math +slug: Learn/JavaScript/First_steps/Math tags: - JavaScript - Гайд @@ -12,6 +12,7 @@ tags: - Статья - кодинг translation_of: Learn/JavaScript/First_steps/Math +original_slug: Learn/JavaScript/Первые_шаги/Math ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/first_steps/silly_story_generator/index.html b/files/ru/learn/javascript/first_steps/silly_story_generator/index.html index 139e478847..62576df3be 100644 --- a/files/ru/learn/javascript/first_steps/silly_story_generator/index.html +++ b/files/ru/learn/javascript/first_steps/silly_story_generator/index.html @@ -1,6 +1,6 @@ --- title: Генератор глупых историй -slug: Learn/JavaScript/Первые_шаги/Создатель_глуых_историй +slug: Learn/JavaScript/First_steps/Silly_story_generator tags: - JavaScript - Задание @@ -14,6 +14,7 @@ tags: - Проверка - Числа translation_of: Learn/JavaScript/First_steps/Silly_story_generator +original_slug: Learn/JavaScript/Первые_шаги/Создатель_глуых_историй ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/first_steps/strings/index.html b/files/ru/learn/javascript/first_steps/strings/index.html index 583e29182e..9c769ff801 100644 --- a/files/ru/learn/javascript/first_steps/strings/index.html +++ b/files/ru/learn/javascript/first_steps/strings/index.html @@ -1,7 +1,8 @@ --- title: Работа с текстом — строки в JavaScript -slug: Learn/JavaScript/Первые_шаги/Строки +slug: Learn/JavaScript/First_steps/Strings translation_of: Learn/JavaScript/First_steps/Strings +original_slug: Learn/JavaScript/Первые_шаги/Строки ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/first_steps/useful_string_methods/index.html b/files/ru/learn/javascript/first_steps/useful_string_methods/index.html index 1318ee39ac..552423bc8b 100644 --- a/files/ru/learn/javascript/first_steps/useful_string_methods/index.html +++ b/files/ru/learn/javascript/first_steps/useful_string_methods/index.html @@ -1,6 +1,6 @@ --- title: Полезные строковые методы -slug: Learn/JavaScript/Первые_шаги/Useful_string_methods +slug: Learn/JavaScript/First_steps/Useful_string_methods tags: - Beginner - CodingScripting @@ -14,6 +14,7 @@ tags: - Обучение - Регистр translation_of: Learn/JavaScript/First_steps/Useful_string_methods +original_slug: Learn/JavaScript/Первые_шаги/Useful_string_methods ---

      {{LearnSidebar}}

      diff --git a/files/ru/learn/javascript/first_steps/variables/index.html b/files/ru/learn/javascript/first_steps/variables/index.html index e1195effd5..2e041f5e9f 100644 --- a/files/ru/learn/javascript/first_steps/variables/index.html +++ b/files/ru/learn/javascript/first_steps/variables/index.html @@ -1,7 +1,8 @@ --- title: Переменные - место хранения необходимой информации -slug: Learn/JavaScript/Первые_шаги/Variables +slug: Learn/JavaScript/First_steps/Variables translation_of: Learn/JavaScript/First_steps/Variables +original_slug: Learn/JavaScript/Первые_шаги/Variables ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/first_steps/what_is_javascript/index.html b/files/ru/learn/javascript/first_steps/what_is_javascript/index.html index f34dac6902..68c9173c1f 100644 --- a/files/ru/learn/javascript/first_steps/what_is_javascript/index.html +++ b/files/ru/learn/javascript/first_steps/what_is_javascript/index.html @@ -1,7 +1,8 @@ --- title: Что такое JavaScript? -slug: Learn/JavaScript/Первые_шаги/What_is_JavaScript +slug: Learn/JavaScript/First_steps/What_is_JavaScript translation_of: Learn/JavaScript/First_steps/What_is_JavaScript +original_slug: Learn/JavaScript/Первые_шаги/What_is_JavaScript ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/first_steps/what_went_wrong/index.html b/files/ru/learn/javascript/first_steps/what_went_wrong/index.html index dbb0a4577a..5e84e07e34 100644 --- a/files/ru/learn/javascript/first_steps/what_went_wrong/index.html +++ b/files/ru/learn/javascript/first_steps/what_went_wrong/index.html @@ -1,7 +1,8 @@ --- title: Что пошло не так? Устранение ошибок JavaScript -slug: Learn/JavaScript/Первые_шаги/Что_пошло_не_так +slug: Learn/JavaScript/First_steps/What_went_wrong translation_of: Learn/JavaScript/First_steps/What_went_wrong +original_slug: Learn/JavaScript/Первые_шаги/Что_пошло_не_так ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/objects/adding_bouncing_balls_features/index.html b/files/ru/learn/javascript/objects/adding_bouncing_balls_features/index.html index fe97392371..cb606d3818 100644 --- a/files/ru/learn/javascript/objects/adding_bouncing_balls_features/index.html +++ b/files/ru/learn/javascript/objects/adding_bouncing_balls_features/index.html @@ -1,7 +1,8 @@ --- title: Добавление функций в нашу демонстрацию отбойных шаров -slug: Learn/JavaScript/Объекты/Adding_bouncing_balls_features +slug: Learn/JavaScript/Objects/Adding_bouncing_balls_features translation_of: Learn/JavaScript/Objects/Adding_bouncing_balls_features +original_slug: Learn/JavaScript/Объекты/Adding_bouncing_balls_features ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/objects/basics/index.html b/files/ru/learn/javascript/objects/basics/index.html index a4e7cc0071..41873c646b 100644 --- a/files/ru/learn/javascript/objects/basics/index.html +++ b/files/ru/learn/javascript/objects/basics/index.html @@ -1,10 +1,11 @@ --- title: Основы объектов в JavaScript -slug: Learn/JavaScript/Объекты/Основы +slug: Learn/JavaScript/Objects/Basics tags: - JavaScript - ООП translation_of: Learn/JavaScript/Objects/Basics +original_slug: Learn/JavaScript/Объекты/Основы ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/objects/index.html b/files/ru/learn/javascript/objects/index.html index 9acc354feb..08d6d2dc43 100644 --- a/files/ru/learn/javascript/objects/index.html +++ b/files/ru/learn/javascript/objects/index.html @@ -1,12 +1,13 @@ --- title: Введение в объекты JavaScript -slug: Learn/JavaScript/Объекты +slug: Learn/JavaScript/Objects tags: - JavaScript - Начинающим - Объекты - Руководства translation_of: Learn/JavaScript/Objects +original_slug: Learn/JavaScript/Объекты ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/objects/inheritance/index.html b/files/ru/learn/javascript/objects/inheritance/index.html index c1565cd72f..fe473b0ef8 100644 --- a/files/ru/learn/javascript/objects/inheritance/index.html +++ b/files/ru/learn/javascript/objects/inheritance/index.html @@ -1,11 +1,12 @@ --- title: Наследование в JavaScript -slug: Learn/JavaScript/Объекты/Inheritance +slug: Learn/JavaScript/Objects/Inheritance tags: - JavaScript - Наследование - ООП translation_of: Learn/JavaScript/Objects/Inheritance +original_slug: Learn/JavaScript/Объекты/Inheritance ---

      diff --git a/files/ru/learn/javascript/objects/json/index.html b/files/ru/learn/javascript/objects/json/index.html index 371f254ec6..89de0661a8 100644 --- a/files/ru/learn/javascript/objects/json/index.html +++ b/files/ru/learn/javascript/objects/json/index.html @@ -1,11 +1,12 @@ --- title: Работа с JSON -slug: Learn/JavaScript/Объекты/JSON +slug: Learn/JavaScript/Objects/JSON tags: - Beginner - JSON - JavaScript translation_of: Learn/JavaScript/Objects/JSON +original_slug: Learn/JavaScript/Объекты/JSON ---

      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/objects/object-oriented_js/index.html b/files/ru/learn/javascript/objects/object-oriented_js/index.html index 0299268a90..7df73c5045 100644 --- a/files/ru/learn/javascript/objects/object-oriented_js/index.html +++ b/files/ru/learn/javascript/objects/object-oriented_js/index.html @@ -1,6 +1,6 @@ --- title: Объектно-ориентированный JavaScript для начинающих -slug: Learn/JavaScript/Объекты/Object-oriented_JS +slug: Learn/JavaScript/Objects/Object-oriented_JS tags: - Constructor - Create @@ -11,6 +11,7 @@ tags: - ООП - экземпляр translation_of: Learn/JavaScript/Objects/Object-oriented_JS +original_slug: Learn/JavaScript/Объекты/Object-oriented_JS ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/objects/object_building_practice/index.html b/files/ru/learn/javascript/objects/object_building_practice/index.html index b06b769ca4..778e83578e 100644 --- a/files/ru/learn/javascript/objects/object_building_practice/index.html +++ b/files/ru/learn/javascript/objects/object_building_practice/index.html @@ -1,10 +1,11 @@ --- title: Практика построения объектов -slug: Learn/JavaScript/Объекты/Object_building_practice +slug: Learn/JavaScript/Objects/Object_building_practice tags: - Guide - JavaScript translation_of: Learn/JavaScript/Objects/Object_building_practice +original_slug: Learn/JavaScript/Объекты/Object_building_practice ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/javascript/objects/object_prototypes/index.html b/files/ru/learn/javascript/objects/object_prototypes/index.html index 0a76580d9c..a8487bf0e6 100644 --- a/files/ru/learn/javascript/objects/object_prototypes/index.html +++ b/files/ru/learn/javascript/objects/object_prototypes/index.html @@ -1,6 +1,6 @@ --- title: Прототипы объектов -slug: Learn/JavaScript/Объекты/Object_prototypes +slug: Learn/JavaScript/Objects/Object_prototypes tags: - JavaScript - create() @@ -12,6 +12,7 @@ tags: - Статья - прототип translation_of: Learn/JavaScript/Objects/Object_prototypes +original_slug: Learn/JavaScript/Объекты/Object_prototypes ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/server-side/django/authentication/index.html b/files/ru/learn/server-side/django/authentication/index.html index 807db42a90..30e5df336b 100644 --- a/files/ru/learn/server-side/django/authentication/index.html +++ b/files/ru/learn/server-side/django/authentication/index.html @@ -1,6 +1,6 @@ --- title: 'Руководство Django Часть 8: Аутентификация и авторизация пользователя' -slug: Learn/Server-side/Django/Аутентификация +slug: Learn/Server-side/Django/Authentication tags: - Python - Аутентификация @@ -16,6 +16,7 @@ tags: - на стороне сервера - сессии translation_of: Learn/Server-side/Django/Authentication +original_slug: Learn/Server-side/Django/Аутентификация ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/server-side/django/deployment/index.html b/files/ru/learn/server-side/django/deployment/index.html index 640527b63d..fc62ed6ac8 100644 --- a/files/ru/learn/server-side/django/deployment/index.html +++ b/files/ru/learn/server-side/django/deployment/index.html @@ -1,12 +1,13 @@ --- title: 'Django Руководство часть 11: Разворачивание сайта на сервере' -slug: Learn/Server-side/Django/Разворачивание +slug: Learn/Server-side/Django/Deployment tags: - Веб-сервер - Для начинающих - Разворачивание на сервере - Развёртывание Django translation_of: Learn/Server-side/Django/Deployment +original_slug: Learn/Server-side/Django/Разворачивание ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/server-side/django/introduction/index.html b/files/ru/learn/server-side/django/introduction/index.html index 4bff707908..f2f6b957f7 100644 --- a/files/ru/learn/server-side/django/introduction/index.html +++ b/files/ru/learn/server-side/django/introduction/index.html @@ -1,6 +1,6 @@ --- title: Django введение -slug: Learn/Server-side/Django/Введение +slug: Learn/Server-side/Django/Introduction tags: - Python - django @@ -9,6 +9,7 @@ tags: - Начинающим - Серверное программирование translation_of: Learn/Server-side/Django/Introduction +original_slug: Learn/Server-side/Django/Введение ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/server-side/django/sessions/index.html b/files/ru/learn/server-side/django/sessions/index.html index 5f7d492c72..8792653f11 100644 --- a/files/ru/learn/server-side/django/sessions/index.html +++ b/files/ru/learn/server-side/django/sessions/index.html @@ -1,6 +1,6 @@ --- title: 'Руководство часть 7: Сессии' -slug: Learn/Server-side/Django/Сессии +slug: Learn/Server-side/Django/Sessions tags: - django - Джанго @@ -13,6 +13,7 @@ tags: - применение сессий - сессии translation_of: Learn/Server-side/Django/Sessions +original_slug: Learn/Server-side/Django/Сессии ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/server-side/express_nodejs/tutorial_local_library_website/index.html b/files/ru/learn/server-side/express_nodejs/tutorial_local_library_website/index.html index c7e821248e..66954ba287 100644 --- a/files/ru/learn/server-side/express_nodejs/tutorial_local_library_website/index.html +++ b/files/ru/learn/server-side/express_nodejs/tutorial_local_library_website/index.html @@ -1,6 +1,6 @@ --- title: 'Учебник Express: сайт Local Library' -slug: Learn/Server-side/Express_Nodejs/Учебник_сайт_local_library +slug: Learn/Server-side/Express_Nodejs/Tutorial_local_library_website tags: - Express - Node @@ -10,6 +10,7 @@ tags: - Серверная часть - Учебник translation_of: Learn/Server-side/Express_Nodejs/Tutorial_local_library_website +original_slug: Learn/Server-side/Express_Nodejs/Учебник_сайт_local_library ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/server-side/first_steps/website_security/index.html b/files/ru/learn/server-side/first_steps/website_security/index.html index 6caa9b2aa2..95fa361668 100644 --- a/files/ru/learn/server-side/first_steps/website_security/index.html +++ b/files/ru/learn/server-side/first_steps/website_security/index.html @@ -1,7 +1,8 @@ --- title: Веб-безопасность -slug: Learn/Server-side/First_steps/Веб_Безопасность +slug: Learn/Server-side/First_steps/Website_security translation_of: Learn/Server-side/First_steps/Website_security +original_slug: Learn/Server-side/First_steps/Веб_Безопасность ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/tools_and_testing/client-side_javascript_frameworks/index.html b/files/ru/learn/tools_and_testing/client-side_javascript_frameworks/index.html index 08fb977bb5..f85eb11569 100644 --- a/files/ru/learn/tools_and_testing/client-side_javascript_frameworks/index.html +++ b/files/ru/learn/tools_and_testing/client-side_javascript_frameworks/index.html @@ -1,7 +1,8 @@ --- title: Понимание JavaScript-фреймворков для фронтенда -slug: Learn/Tools_and_testing/Фронтенд_JavaScript_фреймворки +slug: Learn/Tools_and_testing/Client-side_JavaScript_frameworks translation_of: Learn/Tools_and_testing/Client-side_JavaScript_frameworks +original_slug: Learn/Tools_and_testing/Фронтенд_JavaScript_фреймворки ---
      {{LearnSidebar}}
      JavaScript-фреймворки являются неотъемлемой частью современной веб-разработки,
      diff --git a/files/ru/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.html b/files/ru/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.html index 9a898b282a..710fe7511f 100644 --- a/files/ru/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.html +++ b/files/ru/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.html @@ -1,8 +1,10 @@ --- title: Начало работы с React -slug: Learn/Tools_and_testing/Фронтенд_JavaScript_фреймворки/React_getting_started +slug: >- + Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started translation_of: >- Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started +original_slug: Learn/Tools_and_testing/Фронтенд_JavaScript_фреймворки/React_getting_started ---
      {{LearnSidebar}}
      diff --git a/files/ru/learn/tools_and_testing/github/index.html b/files/ru/learn/tools_and_testing/github/index.html index f78ac2a27c..addc19507d 100644 --- a/files/ru/learn/tools_and_testing/github/index.html +++ b/files/ru/learn/tools_and_testing/github/index.html @@ -1,11 +1,12 @@ --- title: Гит и ГитХаб -slug: Learn/Tools_and_testing/ГитХаб +slug: Learn/Tools_and_testing/GitHub tags: - Веб - Начинающий - гит translation_of: Learn/Tools_and_testing/GitHub +original_slug: Learn/Tools_and_testing/ГитХаб ---
      {{LearnSidebar}}
      diff --git a/files/ru/mdn/at_ten/index.html b/files/ru/mdn/at_ten/index.html index bbbdcccd01..afa83467a3 100644 --- a/files/ru/mdn/at_ten/index.html +++ b/files/ru/mdn/at_ten/index.html @@ -1,9 +1,10 @@ --- title: 10-летие MDN -slug: MDN_at_ten +slug: MDN/At_ten tags: - MDN translation_of: MDN_at_ten +original_slug: MDN_at_ten ---
      Празднуем 10-летие документирования Web.
      diff --git a/files/ru/mdn/contribute/howto/add_or_update_browser_compatibility_data/index.html b/files/ru/mdn/contribute/howto/add_or_update_browser_compatibility_data/index.html index 5b31ce215e..6604a710ab 100644 --- a/files/ru/mdn/contribute/howto/add_or_update_browser_compatibility_data/index.html +++ b/files/ru/mdn/contribute/howto/add_or_update_browser_compatibility_data/index.html @@ -1,10 +1,11 @@ --- title: Как добавить или обновить данные о браузерной совместимости -slug: MDN/Contribute/Howto/Добавить_или_обновить_данные_о_браузерной_совместимости +slug: MDN/Contribute/Howto/Add_or_update_browser_compatibility_data tags: - MDN Meta - Руководство translation_of: MDN/Contribute/Howto/Add_or_update_browser_compatibility_data +original_slug: MDN/Contribute/Howto/Добавить_или_обновить_данные_о_браузерной_совместимости ---
      {{MDNSidebar}}{{IncludeSubnav("/ru/docs/MDN")}}
      diff --git a/files/ru/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.html b/files/ru/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.html index 5488b77d10..2ae7444791 100644 --- a/files/ru/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.html +++ b/files/ru/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.html @@ -1,8 +1,9 @@ --- title: Как создать интерактивное обучающее упражнение -slug: >- - MDN/Contribute/Howto/Создай_интерактивное_упражнение_для_помощи_в_изучении_веба +slug: MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web translation_of: MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web +original_slug: >- + MDN/Contribute/Howto/Создай_интерактивное_упражнение_для_помощи_в_изучении_веба ---
      {{MDNSidebar}}
      diff --git a/files/ru/mdn/contribute/howto/create_and_edit_pages/index.html b/files/ru/mdn/contribute/howto/create_and_edit_pages/index.html index 9b6d34eff9..eb06e1c506 100644 --- a/files/ru/mdn/contribute/howto/create_and_edit_pages/index.html +++ b/files/ru/mdn/contribute/howto/create_and_edit_pages/index.html @@ -1,6 +1,6 @@ --- title: Как создавать и редактировать страницы -slug: MDN/Contribute/Creating_and_editing_pages +slug: MDN/Contribute/Howto/Create_and_edit_pages tags: - MDN основы - Гайд @@ -8,6 +8,7 @@ tags: - Новичок - Стартовая translation_of: MDN/Contribute/Howto/Create_and_edit_pages +original_slug: MDN/Contribute/Creating_and_editing_pages ---
      {{MDNSidebar}}
      diff --git a/files/ru/mdn/contribute/processes/index.html b/files/ru/mdn/contribute/processes/index.html index 4c6bdda462..d0d186e509 100644 --- a/files/ru/mdn/contribute/processes/index.html +++ b/files/ru/mdn/contribute/processes/index.html @@ -1,11 +1,12 @@ --- title: Процессы документирования -slug: MDN/Contribute/Процессы +slug: MDN/Contribute/Processes tags: - Landing - MDN Meta - Процессы translation_of: MDN/Contribute/Processes +original_slug: MDN/Contribute/Процессы ---
      {{MDNSidebar}}
      {{IncludeSubnav("/en-US/docs/MDN")}}
      diff --git a/files/ru/mdn/tools/kumascript/troubleshooting/index.html b/files/ru/mdn/tools/kumascript/troubleshooting/index.html index dfbe9868eb..0e0b91324b 100644 --- a/files/ru/mdn/tools/kumascript/troubleshooting/index.html +++ b/files/ru/mdn/tools/kumascript/troubleshooting/index.html @@ -1,6 +1,6 @@ --- title: Решение проблем с ошибками в KumaScript -slug: MDN/Kuma/Troubleshooting_KumaScript_errors +slug: MDN/Tools/KumaScript/Troubleshooting tags: - Errors - KumaScript @@ -10,6 +10,7 @@ tags: - Руководство - инструменты translation_of: MDN/Tools/KumaScript/Troubleshooting +original_slug: MDN/Kuma/Troubleshooting_KumaScript_errors ---
      {{MDNSidebar}}
      diff --git a/files/ru/mdn/tools/search/index.html b/files/ru/mdn/tools/search/index.html index 08ba78607f..4f175b6ce8 100644 --- a/files/ru/mdn/tools/search/index.html +++ b/files/ru/mdn/tools/search/index.html @@ -1,10 +1,11 @@ --- title: Использование продвинутого поиска -slug: MDN/User_guide/Advanced_search +slug: MDN/Tools/Search tags: - Guide - MDN translation_of: MDN/Tools/Search +original_slug: MDN/User_guide/Advanced_search ---
      {{MDNSidebar}}

      В качестве дополнительной возможности внесения для вкладчиков в MDN у нас есть продвинутый механизм поиска, который позволяется вам искать по исходному коду страницы — то есть, по сырому HTML сайта, с макросами вместо их вывода — что позволяет искать использования определённых макросов, атрибутов HTML и тому подобное.

      На текущий момент для использования продвинутого механизма поиска нет пользовательского интерфейса, но вы можете получить к нему доступ посредством специально сформированных URL. Вы можете получить вывод либо на стандартную страницу с результатами поиска по MDN, либо в формате JSON (последнее означает, что вы можете использовать этот механизм, например, из кода на KumaScript). Эта статья описывает, как всем этим пользоваться.

      diff --git a/files/ru/mdn/tools/unsupported_get_api/index.html b/files/ru/mdn/tools/unsupported_get_api/index.html index d42d9c436e..7aab6b7657 100644 --- a/files/ru/mdn/tools/unsupported_get_api/index.html +++ b/files/ru/mdn/tools/unsupported_get_api/index.html @@ -1,6 +1,6 @@ --- title: URL-суффиксы -slug: MDN/Tools/URL-suffix +slug: MDN/Tools/Unsupported_GET_API tags: - HTTP - Kuma @@ -9,6 +9,7 @@ tags: - Параметры URL - инструменты translation_of: MDN/Tools/Document_parameters +original_slug: MDN/Tools/URL-suffix ---
      {{MDNSidebar}}
      diff --git a/files/ru/mdn/yari/index.html b/files/ru/mdn/yari/index.html index ee8105bf08..b230e4a533 100644 --- a/files/ru/mdn/yari/index.html +++ b/files/ru/mdn/yari/index.html @@ -1,10 +1,11 @@ --- title: 'Kuma: вики-платформа MDN' -slug: MDN/Kuma +slug: MDN/Yari tags: - Kuma - Главная translation_of: MDN/Kuma +original_slug: MDN/Kuma ---
      {{MDNSidebar}}
      diff --git a/files/ru/mozilla/add-ons/webextensions/internationalization/index.html b/files/ru/mozilla/add-ons/webextensions/internationalization/index.html index 36a37820d9..86ca109207 100644 --- a/files/ru/mozilla/add-ons/webextensions/internationalization/index.html +++ b/files/ru/mozilla/add-ons/webextensions/internationalization/index.html @@ -1,7 +1,8 @@ --- title: Интернационализация -slug: Mozilla/Add-ons/WebExtensions/Интернационализация +slug: Mozilla/Add-ons/WebExtensions/Internationalization translation_of: Mozilla/Add-ons/WebExtensions/Internationalization +original_slug: Mozilla/Add-ons/WebExtensions/Интернационализация ---
      {{AddonSidebar}}
      diff --git a/files/ru/mozilla/add-ons/webextensions/modify_a_web_page/index.html b/files/ru/mozilla/add-ons/webextensions/modify_a_web_page/index.html index 0f58364706..1419267790 100644 --- a/files/ru/mozilla/add-ons/webextensions/modify_a_web_page/index.html +++ b/files/ru/mozilla/add-ons/webextensions/modify_a_web_page/index.html @@ -1,7 +1,8 @@ --- title: Модификация веб страницы -slug: Mozilla/Add-ons/WebExtensions/модификация_веб_страницы +slug: Mozilla/Add-ons/WebExtensions/Modify_a_web_page translation_of: Mozilla/Add-ons/WebExtensions/Modify_a_web_page +original_slug: Mozilla/Add-ons/WebExtensions/модификация_веб_страницы ---

       

      diff --git a/files/ru/mozilla/developer_guide/introduction/index.html b/files/ru/mozilla/developer_guide/introduction/index.html index 206d60c40d..e3bb8c23b4 100644 --- a/files/ru/mozilla/developer_guide/introduction/index.html +++ b/files/ru/mozilla/developer_guide/introduction/index.html @@ -1,8 +1,9 @@ --- title: Введение (альтернативные проекты) -slug: Introduction_(alternate) +slug: Mozilla/Developer_guide/Introduction translation_of: Mozilla/Developer_guide/Introduction translation_of_original: Introduction_(alternate) +original_slug: Introduction_(alternate) ---

      Хотя Firefox в значительной степени написан на C++, есть много способов помочь сообществу, не зная C++.

      Firefox/Thunderbird/ и др.

      diff --git a/files/ru/mozilla/developer_guide/source_code/index.html b/files/ru/mozilla/developer_guide/source_code/index.html index f8ea35c33a..f7231a2093 100644 --- a/files/ru/mozilla/developer_guide/source_code/index.html +++ b/files/ru/mozilla/developer_guide/source_code/index.html @@ -1,9 +1,10 @@ --- title: Работа с исходным кодом Mozilla -slug: Mozilla/Developer_guide/Исходный_код +slug: Mozilla/Developer_guide/Source_Code tags: - Разработка в Mozilla - Средний уровень translation_of: Mozilla/Developer_guide/Source_Code +original_slug: Mozilla/Developer_guide/Исходный_код --- textex diff --git a/files/ru/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html b/files/ru/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html index 2db6fe3556..74ce692f87 100644 --- a/files/ru/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html +++ b/files/ru/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html @@ -1,7 +1,8 @@ --- title: Использование кэширования в Firefox 1.5 -slug: Using_Firefox_1.5_caching +slug: Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching translation_of: Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching +original_slug: Using_Firefox_1.5_caching ---
      {{FirefoxSidebar}}

       

      diff --git a/files/ru/mozilla/firefox/releases/3.5/index.html b/files/ru/mozilla/firefox/releases/3.5/index.html index a3e9f4c276..96baad6004 100644 --- a/files/ru/mozilla/firefox/releases/3.5/index.html +++ b/files/ru/mozilla/firefox/releases/3.5/index.html @@ -1,7 +1,8 @@ --- title: Firefox 3.5 для разработчика -slug: Firefox_3.5_для_разработчика +slug: Mozilla/Firefox/Releases/3.5 translation_of: Mozilla/Firefox/Releases/3.5 +original_slug: Firefox_3.5_для_разработчика ---
      {{FirefoxSidebar}}

      Firefox 3.5 вводит ряд новых возможностей, а также дополнительную и улучшенную поддержку для самых различных веб-стандартов. Данная статья представляет собой исчерпывающий перечень нововведений со ссылками на статьи, освещающие основные усовершенствования.

      Новые возможности для разработчиков

      diff --git a/files/ru/mozilla/firefox/releases/3/index.html b/files/ru/mozilla/firefox/releases/3/index.html index 98537faee9..c72f2672df 100644 --- a/files/ru/mozilla/firefox/releases/3/index.html +++ b/files/ru/mozilla/firefox/releases/3/index.html @@ -1,7 +1,8 @@ --- title: Firefox 3 для разработчиков -slug: Firefox_3_for_developers +slug: Mozilla/Firefox/Releases/3 translation_of: Mozilla/Firefox/Releases/3 +original_slug: Firefox_3_for_developers ---
      {{FirefoxSidebar}}

      Если вы разработчик и хотите познакомится со всеми возможностями Firefox 3 вы пришли по адресу. В этой статье представлен список новых статей, в которых рассказывается о новых возможностях Firefox 3. В статьях не будут представлены сведения о незначительных изменениях, однако они помогут вам познакомится с существенными обновлениями.

      Новые возможности для разработчиков в Firefox 3

      diff --git a/files/ru/orphaned/glossary/polifill/index.html b/files/ru/orphaned/glossary/polifill/index.html index caffde4878..ca0499456e 100644 --- a/files/ru/orphaned/glossary/polifill/index.html +++ b/files/ru/orphaned/glossary/polifill/index.html @@ -1,10 +1,11 @@ --- title: Полифил -slug: Glossary/Polifill +slug: orphaned/Glossary/Polifill tags: - Glossary - Глоссарий - Словарь +original_slug: Glossary/Polifill ---

      Полифил (англ. "polyfill") — это фрагмент кода, предоставляющий функционал необходимой технологии, которая будет нативным образом представлена браузером. Другими словами, код будет работать в точности так, как технология, которую он, собственно, и предназначен представлять. Подделка архитектуры API интерфейса, если вам угодно.

      diff --git a/files/ru/orphaned/learn/how_to_contribute/index.html b/files/ru/orphaned/learn/how_to_contribute/index.html index caed3b7970..16440b4327 100644 --- a/files/ru/orphaned/learn/how_to_contribute/index.html +++ b/files/ru/orphaned/learn/how_to_contribute/index.html @@ -1,6 +1,6 @@ --- title: Как сделать вклад в Обучающую Зону MDN -slug: Learn/Как_сделать_вклад +slug: orphaned/Learn/How_to_contribute tags: - Вклад - Документация @@ -10,6 +10,7 @@ tags: - Правила - Руководство translation_of: Learn/How_to_contribute +original_slug: Learn/Как_сделать_вклад ---
      {{LearnSidebar}}
      diff --git a/files/ru/orphaned/learn/html/forms/html5_updates/index.html b/files/ru/orphaned/learn/html/forms/html5_updates/index.html index ad5a8bc7e6..23d48d6765 100644 --- a/files/ru/orphaned/learn/html/forms/html5_updates/index.html +++ b/files/ru/orphaned/learn/html/forms/html5_updates/index.html @@ -1,6 +1,6 @@ --- title: Формы в HTML -slug: Web/Guide/HTML/Формы_в_HTML +slug: orphaned/Learn/HTML/Forms/HTML5_updates tags: - HTML - HTML5 @@ -12,6 +12,7 @@ tags: - Руководство - Формы translation_of: Learn/HTML/Forms/HTML5_updates +original_slug: Web/Guide/HTML/Формы_в_HTML ---

      Элементы и атрибуты форм в HTML5 предоставляют большие возможности семантической верстки, чем HTML4, а также позволяет отказаться от использования JavaScript и CSS, которое было ранее необходимо для HTML4. Большие возможности в формах HTML5 делают удобным для пользователей отправление информации с различных веб-сайтов. Они также предоставляют эти возможности для тех пользователей, у которых отключена поддержка JavaScript.

      diff --git a/files/ru/orphaned/mdn/about/linking_to_mdn/index.html b/files/ru/orphaned/mdn/about/linking_to_mdn/index.html index 093ce13265..daefa73c53 100644 --- a/files/ru/orphaned/mdn/about/linking_to_mdn/index.html +++ b/files/ru/orphaned/mdn/about/linking_to_mdn/index.html @@ -1,11 +1,12 @@ --- title: Проставление ссылок на MDN -slug: MDN/User_guide/Linking_to_MDN +slug: orphaned/MDN/About/Linking_to_MDN tags: - Documentation - Guide - MDN translation_of: MDN/About/Linking_to_MDN +original_slug: MDN/User_guide/Linking_to_MDN ---
      {{MDNSidebar}}

      Мы регулярно получаем от пользователей вопросы о том, как сослаться на MDN, или даже разрешено ли это делать. Краткий ответ таков: да, вы можете ссылаться на MDN! Читайте дальше, чтобы узнать о руководящих принципах и лучших практиках!

      diff --git a/files/ru/orphaned/mdn/community/conversations/index.html b/files/ru/orphaned/mdn/community/conversations/index.html index 1440b5cdcd..0c82918926 100644 --- a/files/ru/orphaned/mdn/community/conversations/index.html +++ b/files/ru/orphaned/mdn/community/conversations/index.html @@ -1,11 +1,12 @@ --- title: MDN community conversations -slug: MDN/Сообщество/Conversations +slug: orphaned/MDN/Community/Conversations tags: - MDN Meta - Руководство - Сообщество translation_of: MDN/Community/Conversations +original_slug: MDN/Сообщество/Conversations ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/community/index.html b/files/ru/orphaned/mdn/community/index.html index 5824e576e4..cbbdbc999b 100644 --- a/files/ru/orphaned/mdn/community/index.html +++ b/files/ru/orphaned/mdn/community/index.html @@ -1,11 +1,12 @@ --- title: Присоединяйся к сообществу MDN -slug: MDN/Сообщество +slug: orphaned/MDN/Community tags: - МДН - Руководство - Сообщество translation_of: MDN/Community +original_slug: MDN/Сообщество ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/community/whats_happening/index.html b/files/ru/orphaned/mdn/community/whats_happening/index.html index fb74f6342c..1230622cdd 100644 --- a/files/ru/orphaned/mdn/community/whats_happening/index.html +++ b/files/ru/orphaned/mdn/community/whats_happening/index.html @@ -1,7 +1,8 @@ --- title: Следите за событиями -slug: MDN/Сообщество/Whats_happening +slug: orphaned/MDN/Community/Whats_happening translation_of: MDN/Community/Whats_happening +original_slug: MDN/Сообщество/Whats_happening ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/community/working_in_community/index.html b/files/ru/orphaned/mdn/community/working_in_community/index.html index 9f5faaf33d..9fd9e70f83 100644 --- a/files/ru/orphaned/mdn/community/working_in_community/index.html +++ b/files/ru/orphaned/mdn/community/working_in_community/index.html @@ -1,6 +1,6 @@ --- title: Работа в сообществе -slug: MDN/Сообщество/Working_in_community +slug: orphaned/MDN/Community/Working_in_community tags: - Community - Guide @@ -8,6 +8,7 @@ tags: - Руководство - Сообщество translation_of: MDN/Community/Working_in_community +original_slug: MDN/Сообщество/Working_in_community ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/contribute/howto/create_an_mdn_account/index.html b/files/ru/orphaned/mdn/contribute/howto/create_an_mdn_account/index.html index 99857a600a..c2bbde2e7a 100644 --- a/files/ru/orphaned/mdn/contribute/howto/create_an_mdn_account/index.html +++ b/files/ru/orphaned/mdn/contribute/howto/create_an_mdn_account/index.html @@ -1,11 +1,12 @@ --- title: Как создать MDN аккаунт -slug: MDN/Contribute/Howto/Create_an_MDN_account +slug: orphaned/MDN/Contribute/Howto/Create_an_MDN_account tags: - Документация - Начинающий - Руководство translation_of: MDN/Contribute/Howto/Create_an_MDN_account +original_slug: MDN/Contribute/Howto/Create_an_MDN_account ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/contribute/howto/do_a_technical_review/index.html b/files/ru/orphaned/mdn/contribute/howto/do_a_technical_review/index.html index ba395e2669..8c5a6e29a5 100644 --- a/files/ru/orphaned/mdn/contribute/howto/do_a_technical_review/index.html +++ b/files/ru/orphaned/mdn/contribute/howto/do_a_technical_review/index.html @@ -1,6 +1,6 @@ --- title: Как сделать технический обзор -slug: MDN/Contribute/Howto/Do_a_technical_review +slug: orphaned/MDN/Contribute/Howto/Do_a_technical_review tags: - Guide - Howto @@ -8,6 +8,7 @@ tags: - Как сделать - Руководство translation_of: MDN/Contribute/Howto/Do_a_technical_review +original_slug: MDN/Contribute/Howto/Do_a_technical_review ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html b/files/ru/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html index eab3b47fde..3556bb253c 100644 --- a/files/ru/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html +++ b/files/ru/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html @@ -1,6 +1,6 @@ --- title: Как сделать редакционный обзор -slug: MDN/Contribute/Howto/Do_an_editorial_review +slug: orphaned/MDN/Contribute/Howto/Do_an_editorial_review tags: - Guide - Howto @@ -8,6 +8,7 @@ tags: - Как сделать - Руководство translation_of: MDN/Contribute/Howto/Do_an_editorial_review +original_slug: MDN/Contribute/Howto/Do_an_editorial_review ---
      {{MDNSidebar}}

      Редакционный обзор заключается в исправлении опечаток и орфографических, грамматических, оборотных или текстовых ошибок в статье. Не все участники обладают лингвистическими навыками, но, благодаря их знаниям, появляются чрезвычайно полезные статьи, которые нуждаются в техническом редактировании и исправлении; это делается в редакционном обзоре.

      diff --git a/files/ru/orphaned/mdn/contribute/howto/set_the_summary_for_a_page/index.html b/files/ru/orphaned/mdn/contribute/howto/set_the_summary_for_a_page/index.html index 26d5101d9d..ab6d1a6292 100644 --- a/files/ru/orphaned/mdn/contribute/howto/set_the_summary_for_a_page/index.html +++ b/files/ru/orphaned/mdn/contribute/howto/set_the_summary_for_a_page/index.html @@ -1,7 +1,8 @@ --- title: Как оптимизировать страницы -slug: MDN/Contribute/Howto/Как_оптимизировать_страницы +slug: orphaned/MDN/Contribute/Howto/Set_the_summary_for_a_page translation_of: MDN/Contribute/Howto/Set_the_summary_for_a_page +original_slug: MDN/Contribute/Howto/Как_оптимизировать_страницы ---
      {{MDNSidebar}}

      Вы можете заняться оптимизацией любой страницы на MDN, для поисковой оптимизации страницы, вы можете выбрать любую страницу: пусть то будет Лендинговая страница или подсказки. Это должен быть текст, который связан по смыслу с контентом страницы. Все слова должны быть уникальными и не должны встречаться в тексте.

      diff --git a/files/ru/orphaned/mdn/contribute/howto/tag_javascript_pages/index.html b/files/ru/orphaned/mdn/contribute/howto/tag_javascript_pages/index.html index 0c0ed4eca9..81daf4193d 100644 --- a/files/ru/orphaned/mdn/contribute/howto/tag_javascript_pages/index.html +++ b/files/ru/orphaned/mdn/contribute/howto/tag_javascript_pages/index.html @@ -1,12 +1,13 @@ --- title: Как пометить страницы JavaScript -slug: MDN/Contribute/Howto/Метки_JavaScript_страниц +slug: orphaned/MDN/Contribute/Howto/Tag_JavaScript_pages tags: - Guide - Howto - JavaScript - MDN Meta translation_of: MDN/Contribute/Howto/Tag_JavaScript_pages +original_slug: MDN/Contribute/Howto/Метки_JavaScript_страниц ---
      {{MDNSidebar}}

      Маркировка состоит из добавления метаданных на страницы, чтобы связанный контент можно было сгруппировать, например, в инструменте поиска.

      diff --git a/files/ru/orphaned/mdn/editor/basics/index.html b/files/ru/orphaned/mdn/editor/basics/index.html index 10b5d91eb9..9bfaeb7307 100644 --- a/files/ru/orphaned/mdn/editor/basics/index.html +++ b/files/ru/orphaned/mdn/editor/basics/index.html @@ -1,7 +1,8 @@ --- title: Редактор UI элементов -slug: MDN/Editor/Basics +slug: orphaned/MDN/Editor/Basics translation_of: MDN/Editor/Basics +original_slug: MDN/Editor/Basics ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/editor/basics/page_controls/index.html b/files/ru/orphaned/mdn/editor/basics/page_controls/index.html index 3f49c886b4..1ba42276a2 100644 --- a/files/ru/orphaned/mdn/editor/basics/page_controls/index.html +++ b/files/ru/orphaned/mdn/editor/basics/page_controls/index.html @@ -1,11 +1,12 @@ --- title: Элементы управления страницей в редакторе MDN -slug: MDN/Editor/Basics/Page_controls +slug: orphaned/MDN/Editor/Basics/Page_controls tags: - Beginner - Guide - editor translation_of: MDN/Editor/Basics/Page_controls +original_slug: MDN/Editor/Basics/Page_controls ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/editor/basics/toolbar/index.html b/files/ru/orphaned/mdn/editor/basics/toolbar/index.html index 8a01621158..6dc04bdd35 100644 --- a/files/ru/orphaned/mdn/editor/basics/toolbar/index.html +++ b/files/ru/orphaned/mdn/editor/basics/toolbar/index.html @@ -1,10 +1,11 @@ --- title: Панель инструментов редактора MDN -slug: MDN/Editor/Basics/Toolbar +slug: orphaned/MDN/Editor/Basics/Toolbar tags: - Beginner - editor translation_of: MDN/Editor/Basics/Toolbar +original_slug: MDN/Editor/Basics/Toolbar ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/editor/images/index.html b/files/ru/orphaned/mdn/editor/images/index.html index f095489297..21bd1eec8b 100644 --- a/files/ru/orphaned/mdn/editor/images/index.html +++ b/files/ru/orphaned/mdn/editor/images/index.html @@ -1,12 +1,13 @@ --- title: Изображения -slug: MDN/Editor/Картинки +slug: orphaned/MDN/Editor/Images tags: - Изображение - Работа с изображениями - Рисунок - Руководство translation_of: MDN/Editor/Images +original_slug: MDN/Editor/Картинки ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/editor/index.html b/files/ru/orphaned/mdn/editor/index.html index df98522e38..6a775db62e 100644 --- a/files/ru/orphaned/mdn/editor/index.html +++ b/files/ru/orphaned/mdn/editor/index.html @@ -1,11 +1,12 @@ --- title: Руководство по MDN редактору -slug: MDN/Editor +slug: orphaned/MDN/Editor tags: - Landing - MDN - Редактор MDN translation_of: MDN/Editor +original_slug: MDN/Editor ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/editor/keyboard_shortcuts/index.html b/files/ru/orphaned/mdn/editor/keyboard_shortcuts/index.html index 7a697614df..18456347b5 100644 --- a/files/ru/orphaned/mdn/editor/keyboard_shortcuts/index.html +++ b/files/ru/orphaned/mdn/editor/keyboard_shortcuts/index.html @@ -1,6 +1,6 @@ --- title: Горячие клавиши в редакторе MDN -slug: MDN/Editor/Горячие_клавиши +slug: orphaned/MDN/Editor/Keyboard_shortcuts tags: - MDN - MDN Meta @@ -9,6 +9,7 @@ tags: - Клавиши - Редактор translation_of: MDN/Editor/Keyboard_shortcuts +original_slug: MDN/Editor/Горячие_клавиши ---

      Существует ряд удобных горячих клавиш, позволяющих вам не отрывать руки от клавиатуры во время работы в UI редактора MDN.

      diff --git a/files/ru/orphaned/mdn/editor/links/index.html b/files/ru/orphaned/mdn/editor/links/index.html index 459a965172..7ddf996bb4 100644 --- a/files/ru/orphaned/mdn/editor/links/index.html +++ b/files/ru/orphaned/mdn/editor/links/index.html @@ -1,6 +1,6 @@ --- title: Создание ссылок в статьях MDN -slug: MDN/Editor/Ссылки +slug: orphaned/MDN/Editor/Links tags: - Guide - MDN @@ -9,6 +9,7 @@ tags: - Редактор - Руководство translation_of: MDN/Editor/Links +original_slug: MDN/Editor/Ссылки ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/editor/redirects/index.html b/files/ru/orphaned/mdn/editor/redirects/index.html index dade13fb99..eec64eb864 100644 --- a/files/ru/orphaned/mdn/editor/redirects/index.html +++ b/files/ru/orphaned/mdn/editor/redirects/index.html @@ -1,12 +1,13 @@ --- title: Перенаправление -slug: MDN/Editor/Перенаправление +slug: orphaned/MDN/Editor/Redirects tags: - Гайд - Переадресация - Перенаправление - Удаление translation_of: MDN/Editor/Redirects +original_slug: MDN/Editor/Перенаправление ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/editor/source_mode/index.html b/files/ru/orphaned/mdn/editor/source_mode/index.html index af5d7b5535..7923b81be6 100644 --- a/files/ru/orphaned/mdn/editor/source_mode/index.html +++ b/files/ru/orphaned/mdn/editor/source_mode/index.html @@ -1,6 +1,6 @@ --- title: Режим источника -slug: MDN/Editor/Source_mode +slug: orphaned/MDN/Editor/Source_mode tags: - Guide - MDN Meta @@ -9,6 +9,7 @@ tags: - Редактор MDN - Руководство translation_of: MDN/Editor/Source_mode +original_slug: MDN/Editor/Source_mode ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/editor/syntax_highlighting/index.html b/files/ru/orphaned/mdn/editor/syntax_highlighting/index.html index f959ae7809..1d70a0448e 100644 --- a/files/ru/orphaned/mdn/editor/syntax_highlighting/index.html +++ b/files/ru/orphaned/mdn/editor/syntax_highlighting/index.html @@ -1,6 +1,6 @@ --- title: Синтаксические выделения -slug: MDN/Editor/Синтаксические_выделения +slug: orphaned/MDN/Editor/Syntax_highlighting tags: - Guide - Howto @@ -10,6 +10,7 @@ tags: - Руководство - выделение translation_of: MDN/Editor/Syntax_highlighting +original_slug: MDN/Editor/Синтаксические_выделения ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/editor/tables/index.html b/files/ru/orphaned/mdn/editor/tables/index.html index 1f6f988d6a..50f6c4b373 100644 --- a/files/ru/orphaned/mdn/editor/tables/index.html +++ b/files/ru/orphaned/mdn/editor/tables/index.html @@ -1,6 +1,6 @@ --- title: Таблицы -slug: MDN/Editor/Tables +slug: orphaned/MDN/Editor/Tables tags: - Guide - MDN @@ -8,6 +8,7 @@ tags: - Редактор - Руководство translation_of: MDN/Editor/Tables +original_slug: MDN/Editor/Tables ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/structures/live_samples/simple_live_sample_demo/index.html b/files/ru/orphaned/mdn/structures/live_samples/simple_live_sample_demo/index.html index 393a20bc94..c16264ed11 100644 --- a/files/ru/orphaned/mdn/structures/live_samples/simple_live_sample_demo/index.html +++ b/files/ru/orphaned/mdn/structures/live_samples/simple_live_sample_demo/index.html @@ -1,11 +1,12 @@ --- title: A simple demo of a live code sample -slug: MDN/Structures/Live_samples/Simple_live_sample_demo +slug: orphaned/MDN/Structures/Live_samples/Simple_live_sample_demo tags: - MDN Meta - Конструкции - Пример translation_of: MDN/Structures/Live_samples/Simple_live_sample_demo +original_slug: MDN/Structures/Live_samples/Simple_live_sample_demo ---
      {{MDNSidebar}}
      diff --git a/files/ru/orphaned/mdn/tools/feeds/index.html b/files/ru/orphaned/mdn/tools/feeds/index.html index ba43bf1809..e7a69892e2 100644 --- a/files/ru/orphaned/mdn/tools/feeds/index.html +++ b/files/ru/orphaned/mdn/tools/feeds/index.html @@ -1,9 +1,10 @@ --- title: Ленты новостей MDN -slug: MDN/User_guide/Feeds +slug: orphaned/MDN/Tools/Feeds tags: - Kuma translation_of: MDN/Tools/Feeds +original_slug: MDN/User_guide/Feeds ---
      {{MDNSidebar}}

      Вики MDN предлагает ряд лент новостей, которые вы можете использовать для слежения за сайтом. В будущем их, вероятно, будет больше, а некоторые из них до сих пор ещё в разработке, но эта информация всё равно может быть для вас полезна.

      diff --git a/files/ru/orphaned/mdn/tools/page_deletion/index.html b/files/ru/orphaned/mdn/tools/page_deletion/index.html index ffd7d04664..ee44aa31f1 100644 --- a/files/ru/orphaned/mdn/tools/page_deletion/index.html +++ b/files/ru/orphaned/mdn/tools/page_deletion/index.html @@ -1,10 +1,11 @@ --- title: Удаление страниц -slug: MDN/User_guide/Deleting_pages +slug: orphaned/MDN/Tools/Page_deletion tags: - Guide - MDN translation_of: MDN/Tools/Page_deletion +original_slug: MDN/User_guide/Deleting_pages ---
      {{MDNSidebar}}

      Только администраторы MDN имеют право и могут удалять страницы. Эта статья описывает, как отправить запрос на удаление страницы с MDN.

      Чтобы организовать удаление страницы, вы должны сделать следующее:

      diff --git a/files/ru/orphaned/mdn/tools/page_watching/index.html b/files/ru/orphaned/mdn/tools/page_watching/index.html index 04b9dc05ad..3118cf34c3 100644 --- a/files/ru/orphaned/mdn/tools/page_watching/index.html +++ b/files/ru/orphaned/mdn/tools/page_watching/index.html @@ -1,6 +1,6 @@ --- title: Подписка на страницы -slug: MDN/Tools/Page_watching +slug: orphaned/MDN/Tools/Page_watching tags: - MDN Meta - Подписка @@ -8,6 +8,7 @@ tags: - Страница уровня - инструменты translation_of: MDN/Tools/Page_watching +original_slug: MDN/Tools/Page_watching ---
      {{MDNSidebar}}

      Ok

      diff --git a/files/ru/orphaned/mozilla/add-ons/webextensions/debugging/index.html b/files/ru/orphaned/mozilla/add-ons/webextensions/debugging/index.html index 4ceb3eab28..7e520f3a84 100644 --- a/files/ru/orphaned/mozilla/add-ons/webextensions/debugging/index.html +++ b/files/ru/orphaned/mozilla/add-ons/webextensions/debugging/index.html @@ -1,6 +1,6 @@ --- title: Отладка -slug: Mozilla/Add-ons/WebExtensions/Перевод +slug: orphaned/Mozilla/Add-ons/WebExtensions/Debugging tags: - Firefox - Mozilla @@ -8,6 +8,7 @@ tags: - Пособие - Предоставление Веб-страниц translation_of: Mozilla/Add-ons/WebExtensions/Debugging +original_slug: Mozilla/Add-ons/WebExtensions/Перевод ---
      {{AddonSidebar}}
      diff --git a/files/ru/orphaned/toolkit_api/index.html b/files/ru/orphaned/toolkit_api/index.html index 48d33c6e3a..bde21206ac 100644 --- a/files/ru/orphaned/toolkit_api/index.html +++ b/files/ru/orphaned/toolkit_api/index.html @@ -1,8 +1,9 @@ --- title: Toolkit API (Инструментарий АПИ) -slug: Toolkit_API +slug: orphaned/Toolkit_API tags: - Toolkit API +original_slug: Toolkit_API ---

      Mozilla Toolkit это набор программных интерфейсов (APIs) собранных на базе Gecko которые обеспечивают продвинутые службы на базе XUL приложенияй. Эти службы включают:

      • Менеджер профиля
      • Chrome регистрация
      • История просмотра
      • Расширения и Управление темами
      • Служба обновления приложения
      • Безопасный режим
      • diff --git a/files/ru/orphaned/tools/add-ons/dom_inspector/index.html b/files/ru/orphaned/tools/add-ons/dom_inspector/index.html index 0e2c41dc29..3316c31f83 100644 --- a/files/ru/orphaned/tools/add-ons/dom_inspector/index.html +++ b/files/ru/orphaned/tools/add-ons/dom_inspector/index.html @@ -1,7 +1,8 @@ --- title: DOM Inspector -slug: Tools/Add-ons/DOM_Inspector +slug: orphaned/Tools/Add-ons/DOM_Inspector translation_of: Tools/Add-ons/DOM_Inspector +original_slug: Tools/Add-ons/DOM_Inspector ---
        {{ToolsSidebar}}

        Инспектор DOM (также известный как DOMi) — инструмент для разработчиков, используемый для проверки, просмотра и редактирования объектной модели документа - обычных веб-страниц или XUL windows. По иерархии DOM можно перемещаться с помощью двух окон, отображающих целый ряд различных представлений документа и всех вложенных в него узлов.

        diff --git a/files/ru/orphaned/tools/add-ons/index.html b/files/ru/orphaned/tools/add-ons/index.html index ab408aeb18..c385f15d53 100644 --- a/files/ru/orphaned/tools/add-ons/index.html +++ b/files/ru/orphaned/tools/add-ons/index.html @@ -1,10 +1,11 @@ --- title: Add-ons -slug: Tools/Add-ons +slug: orphaned/Tools/Add-ons tags: - NeedsTranslation - TopicStub translation_of: Tools/Add-ons +original_slug: Tools/Add-ons ---
        {{ToolsSidebar}}

        Developer tools that are not built into Firefox, but ship as separate add-ons.

        diff --git a/files/ru/orphaned/web/api/web_crypto_api/checking_authenticity_with_password/index.html b/files/ru/orphaned/web/api/web_crypto_api/checking_authenticity_with_password/index.html index ea8ec86586..1d113bd79b 100644 --- a/files/ru/orphaned/web/api/web_crypto_api/checking_authenticity_with_password/index.html +++ b/files/ru/orphaned/web/api/web_crypto_api/checking_authenticity_with_password/index.html @@ -1,10 +1,11 @@ --- title: Проверка подлинности данных с паролем -slug: Web/API/Web_Crypto_API/Checking_authenticity_with_password +slug: orphaned/Web/API/Web_Crypto_API/Checking_authenticity_with_password tags: - HMAC - Web Crypto translation_of: Web/API/Web_Crypto_API/Checking_authenticity_with_password +original_slug: Web/API/Web_Crypto_API/Checking_authenticity_with_password ---

        {{APIRef("Web Crypto API")}}{{draft}}

        diff --git "a/files/ru/orphaned/web/guide/ajax/\321\201_\321\207\320\265\320\263\320\276_\320\275\320\260\321\207\320\260\321\202\321\214_question_/index.html" "b/files/ru/orphaned/web/guide/ajax/\321\201_\321\207\320\265\320\263\320\276_\320\275\320\260\321\207\320\260\321\202\321\214_question_/index.html" index f66d6b1dbf..7fbfff4658 100644 --- "a/files/ru/orphaned/web/guide/ajax/\321\201_\321\207\320\265\320\263\320\276_\320\275\320\260\321\207\320\260\321\202\321\214_question_/index.html" +++ "b/files/ru/orphaned/web/guide/ajax/\321\201_\321\207\320\265\320\263\320\276_\320\275\320\260\321\207\320\260\321\202\321\214_question_/index.html" @@ -1,6 +1,7 @@ --- title: С чего начать? -slug: Web/Guide/AJAX/С_чего_начать? +slug: orphaned/Web/Guide/AJAX/С_чего_начать? +original_slug: Web/Guide/AJAX/С_чего_начать? ---

        IKFIA

        diff --git a/files/ru/orphaned/web/html/element/element/index.html b/files/ru/orphaned/web/html/element/element/index.html index 183d25eb92..801d4ec7a9 100644 --- a/files/ru/orphaned/web/html/element/element/index.html +++ b/files/ru/orphaned/web/html/element/element/index.html @@ -1,7 +1,8 @@ --- title: -slug: Web/HTML/Element/element +slug: orphaned/Web/HTML/Element/element translation_of: Web/HTML/Element/element +original_slug: Web/HTML/Element/element ---

        {{obsolete_header}}

        diff --git a/files/ru/orphaned/web/html/global_attributes/dropzone/index.html b/files/ru/orphaned/web/html/global_attributes/dropzone/index.html index 19c7d5d01b..89e91d7a2c 100644 --- a/files/ru/orphaned/web/html/global_attributes/dropzone/index.html +++ b/files/ru/orphaned/web/html/global_attributes/dropzone/index.html @@ -1,7 +1,8 @@ --- title: dropzone -slug: Web/HTML/Global_attributes/dropzone +slug: orphaned/Web/HTML/Global_attributes/dropzone translation_of: Web/HTML/Global_attributes/dropzone +original_slug: Web/HTML/Global_attributes/dropzone ---

        {{HTMLSidebar("Global_attributes")}}{{SeeCompatTable}}

        diff --git "a/files/ru/orphaned/web/javascript/guide/\320\276\320\261_\321\215\321\202\320\276\320\274_\321\200\321\203\320\272\320\276\320\262\320\276\320\264\321\201\321\202\320\262\320\265/index.html" "b/files/ru/orphaned/web/javascript/guide/\320\276\320\261_\321\215\321\202\320\276\320\274_\321\200\321\203\320\272\320\276\320\262\320\276\320\264\321\201\321\202\320\262\320\265/index.html" index 397327911c..7a71d93a38 100644 --- "a/files/ru/orphaned/web/javascript/guide/\320\276\320\261_\321\215\321\202\320\276\320\274_\321\200\321\203\320\272\320\276\320\262\320\276\320\264\321\201\321\202\320\262\320\265/index.html" +++ "b/files/ru/orphaned/web/javascript/guide/\320\276\320\261_\321\215\321\202\320\276\320\274_\321\200\321\203\320\272\320\276\320\262\320\276\320\264\321\201\321\202\320\262\320\265/index.html" @@ -1,6 +1,7 @@ --- title: Об этом руководстве -slug: Web/JavaScript/Guide/Об_этом_руководстве +slug: orphaned/Web/JavaScript/Guide/Об_этом_руководстве +original_slug: Web/JavaScript/Guide/Об_этом_руководстве ---

         

        JavaScript является кросс-платформенным, объектно-ориентированный язык сценариев. Это руководство объясняет все, что нужно знать об использовании JavaScript.

        diff --git a/files/ru/orphaned/web/javascript/reference/global_objects/array/prototype/index.html b/files/ru/orphaned/web/javascript/reference/global_objects/array/prototype/index.html index 4d04fc0736..1995d42310 100644 --- a/files/ru/orphaned/web/javascript/reference/global_objects/array/prototype/index.html +++ b/files/ru/orphaned/web/javascript/reference/global_objects/array/prototype/index.html @@ -1,12 +1,13 @@ --- title: Array.prototype -slug: Web/JavaScript/Reference/Global_Objects/Array/prototype +slug: orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype tags: - Array - JavaScript - Property - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Array/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Array/prototype ---
        {{JSRef("Global_Objects", "Array")}}
        diff --git a/files/ru/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html b/files/ru/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html index 9d0c21f241..5a3e01d354 100644 --- a/files/ru/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html +++ b/files/ru/orphaned/web/javascript/reference/global_objects/asyncfunction/prototype/index.html @@ -1,7 +1,8 @@ --- title: AsyncFunction.prototype -slug: Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype +slug: orphaned/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype translation_of: Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype ---
        {{JSRef}}
        diff --git "a/files/ru/orphaned/web/javascript/reference/global_objects/math/\320\274\320\265\321\202\320\276\320\264_math.max()_/index.html" "b/files/ru/orphaned/web/javascript/reference/global_objects/math/\320\274\320\265\321\202\320\276\320\264_math.max()_/index.html" index ab66d8acb0..56c70fde75 100644 --- "a/files/ru/orphaned/web/javascript/reference/global_objects/math/\320\274\320\265\321\202\320\276\320\264_math.max()_/index.html" +++ "b/files/ru/orphaned/web/javascript/reference/global_objects/math/\320\274\320\265\321\202\320\276\320\264_math.max()_/index.html" @@ -1,11 +1,12 @@ --- title: Метод Math.max() -slug: Web/JavaScript/Reference/Global_Objects/Math/Метод_Math.max()_ +slug: orphaned/Web/JavaScript/Reference/Global_Objects/Math/Метод_Math.max()_ tags: - JavaScript - Math - Method - Reference +original_slug: Web/JavaScript/Reference/Global_Objects/Math/Метод_Math.max()_ ---
        {{JSRef("Global_Objects", "Math")}}
        diff --git a/files/ru/orphaned/web/manifest/serviceworker/index.html b/files/ru/orphaned/web/manifest/serviceworker/index.html index 11681a7060..8c1fe50334 100644 --- a/files/ru/orphaned/web/manifest/serviceworker/index.html +++ b/files/ru/orphaned/web/manifest/serviceworker/index.html @@ -1,11 +1,12 @@ --- title: serviceworker -slug: Web/Manifest/serviceworker +slug: orphaned/Web/Manifest/serviceworker tags: - Manifest - ServiceWorker - Web translation_of: Web/Manifest/serviceworker +original_slug: Web/Manifest/serviceworker ---
        {{QuickLinksWithSubpages("/ru/docs/Web/Manifest")}}
        diff --git a/files/ru/orphaned/web/security/information_security_basics/index.html b/files/ru/orphaned/web/security/information_security_basics/index.html index 0d36d99bad..53535a9992 100644 --- a/files/ru/orphaned/web/security/information_security_basics/index.html +++ b/files/ru/orphaned/web/security/information_security_basics/index.html @@ -1,7 +1,8 @@ --- title: Основы по информационной безопасности -slug: Web/Security/Information_Security_Basics +slug: orphaned/Web/Security/Information_Security_Basics translation_of: Web/Security/Information_Security_Basics +original_slug: Web/Security/Information_Security_Basics ---

        Базовое понимание информационной безопасности, поможет обезопасить ваше программное обеспечение и сайты от уязвимостей открывающим доступ к финансовым махинациям и прочим противоправным действиям. Из этих статей вы сможете узнать все что для этого необходимо. Вооружившись этой информацией, вы поймете роль и важность безопасности начиная от цикла веб-разработки вплоть до размещения вашего контента. 

        diff --git a/files/ru/orphaned/web/svg/attribute/onload/index.html b/files/ru/orphaned/web/svg/attribute/onload/index.html index b6a5d49ea2..8c73972cde 100644 --- a/files/ru/orphaned/web/svg/attribute/onload/index.html +++ b/files/ru/orphaned/web/svg/attribute/onload/index.html @@ -1,5 +1,6 @@ --- title: onload -slug: Web/SVG/Attribute/onload +slug: orphaned/Web/SVG/Attribute/onload +original_slug: Web/SVG/Attribute/onload ---

        Link not exist

        diff --git a/files/ru/orphaned/xml_in_mozilla/index.html b/files/ru/orphaned/xml_in_mozilla/index.html index aea3fbcb61..b1fa4c61a6 100644 --- a/files/ru/orphaned/xml_in_mozilla/index.html +++ b/files/ru/orphaned/xml_in_mozilla/index.html @@ -1,6 +1,7 @@ --- title: XML in Mozilla -slug: XML_in_Mozilla +slug: orphaned/XML_in_Mozilla +original_slug: XML_in_Mozilla ---

        Поведение метода length объекта XML в браузерах IE и Mozilla

        Непредвиденное поведение метода определяющего количество элементов в коллекции в браузере Mozilla.

        diff --git a/files/ru/orphaned/xpcnativewrapper/index.html b/files/ru/orphaned/xpcnativewrapper/index.html index c12a434e12..bd4a4ec19f 100644 --- a/files/ru/orphaned/xpcnativewrapper/index.html +++ b/files/ru/orphaned/xpcnativewrapper/index.html @@ -1,11 +1,12 @@ --- title: XPCNativeWrapper -slug: XPCNativeWrapper +slug: orphaned/XPCNativeWrapper tags: - DOM - XPCNativeWrapper - Безопасность - Расширения +original_slug: XPCNativeWrapper ---

         

        XPCNativeWrapper позволяет так обернуть объект, чтобы доступ к нему был безопасен для привилегированного кода. Эта обёртка может быть использована во всех версиях, хотя её поведение слегка изменилось начиная с Firefox 1.5 (Gecko 1.8). Информацию о поведении XPCNativeWrapper в Firefox версий младше 1.5 можно получить из статьи о XPCNativeWrapper в MozillaZine KnowledgeBase. Эта же статья посвящена XPCNativeWrapper в Firefox версий 1.5 и выше.

        diff --git a/files/ru/orphaned/xpcom/index.html b/files/ru/orphaned/xpcom/index.html index ee75427939..c2db3696b1 100644 --- a/files/ru/orphaned/xpcom/index.html +++ b/files/ru/orphaned/xpcom/index.html @@ -1,8 +1,9 @@ --- title: XPCOM -slug: XPCOM +slug: orphaned/XPCOM tags: - XPCOM +original_slug: XPCOM ---
        Введение в XPCOM

        Перевод статей с портала IBM developerWorks: Part I, Part II, Part III, Part IV & V

        diff --git "a/files/ru/orphaned/\320\262\320\265\320\261-\321\201\321\202\320\260\320\275\320\264\320\260\321\200\321\202\321\213/index.html" "b/files/ru/orphaned/\320\262\320\265\320\261-\321\201\321\202\320\260\320\275\320\264\320\260\321\200\321\202\321\213/index.html" index 993ff92019..fe2fd3a4f0 100644 --- "a/files/ru/orphaned/\320\262\320\265\320\261-\321\201\321\202\320\260\320\275\320\264\320\260\321\200\321\202\321\213/index.html" +++ "b/files/ru/orphaned/\320\262\320\265\320\261-\321\201\321\202\320\260\320\275\320\264\320\260\321\200\321\202\321\213/index.html" @@ -1,6 +1,7 @@ --- title: Веб-стандарты -slug: Веб-стандарты +slug: orphaned/Веб-стандарты +original_slug: Веб-стандарты ---

        Веб-стандарты, как следует из их названия, являются стандартами в области веб-технологий. Эти стандарты являются рекомендациями для разработчиков программного обеспечения и для веб-мастеров. Служат веб-стандарты для того, чтобы, с одной стороны, пользователи ПО без проблем и неудобств могли пользоваться сетью интернет, а с другой стороны, для того, чтобы разработчики программного обеспечения или веб-мастера были уверены в работоспособности своих продуктов.

        Исторически сложилось так, что в начале 90-х годов XX века развязалась так называемая "война браузеров" между компанией Netscape и Microsoft. Суть войны заключалась в том, что разработчики веб-браузеров стремились привнести в продукты своих разработок собственные новые функции, но при этом совершенно не заботились о совместимости технологий и не согласовывали свои действия с разработчиками конкурирующей компании. По этой причине начало возрастать недовольство как среди людей, создающих сайты, так и среди людей, пользующихся сетью интернет - ведь сайты, которые были написаны специально для Netscape Navigator крайне плохо работали в Microsoft Intrnet Explorer и наоборот посредством Internet Explorer почти невозможно было просматривать сайт, написанный для Netscape Navigator.

        diff --git "a/files/ru/orphaned/\320\262\320\276\320\277\321\200\320\276\321\201\321\213_\320\261\320\265\320\267_\320\276\321\202\320\262\320\265\321\202\320\276\320\262/index.html" "b/files/ru/orphaned/\320\262\320\276\320\277\321\200\320\276\321\201\321\213_\320\261\320\265\320\267_\320\276\321\202\320\262\320\265\321\202\320\276\320\262/index.html" index bd39637d9a..da5847b2af 100644 --- "a/files/ru/orphaned/\320\262\320\276\320\277\321\200\320\276\321\201\321\213_\320\261\320\265\320\267_\320\276\321\202\320\262\320\265\321\202\320\276\320\262/index.html" +++ "b/files/ru/orphaned/\320\262\320\276\320\277\321\200\320\276\321\201\321\213_\320\261\320\265\320\267_\320\276\321\202\320\262\320\265\321\202\320\276\320\262/index.html" @@ -1,8 +1,9 @@ --- title: Вопросы без ответов -slug: Вопросы_без_ответов +slug: orphaned/Вопросы_без_ответов tags: - Оставить вопрос - Список вопросов +original_slug: Вопросы_без_ответов ---

        Здесь Вы можете оставить свой вопрос, на который Вы не нашли ответа. После того, как мы найдём на него ответ, вопрос будет перемещён на страницу Часто Задаваемых Вопросов.

        diff --git "a/files/ru/orphaned/\320\264\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270_\320\270\320\267\320\274\320\265\320\275\321\217\320\265\320\274\321\213\320\271_\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271_\320\270\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201_\320\275\320\260_xul/index.html" "b/files/ru/orphaned/\320\264\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270_\320\270\320\267\320\274\320\265\320\275\321\217\320\265\320\274\321\213\320\271_\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271_\320\270\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201_\320\275\320\260_xul/index.html" index 418fbc826a..4c53fd3669 100644 --- "a/files/ru/orphaned/\320\264\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270_\320\270\320\267\320\274\320\265\320\275\321\217\320\265\320\274\321\213\320\271_\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271_\320\270\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201_\320\275\320\260_xul/index.html" +++ "b/files/ru/orphaned/\320\264\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270_\320\270\320\267\320\274\320\265\320\275\321\217\320\265\320\274\321\213\320\271_\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271_\320\270\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201_\320\275\320\260_xul/index.html" @@ -1,10 +1,11 @@ --- title: Динамически изменяемый пользовательский интерфейс на XUL -slug: Динамически_изменяемый_пользовательский_интерфейс_на_XUL +slug: orphaned/Динамически_изменяемый_пользовательский_интерфейс_на_XUL tags: - DOM - Extensions - XUL +original_slug: Динамически_изменяемый_пользовательский_интерфейс_на_XUL ---

        В этой статье обсуждается управление XUL интерфейсами с использованием DOM и других API. Здесь объясняется принцип документов DOM, приводится несколько простых примеров использования вызовов DOM для выполнения простейших манипуляций с документом, после чего приводится пример, демонстрирующий работу с анонимным XBL содержимым с использованием методов, специфичных для Mozilla.

        Эта статья написана как для начинающих, так и для разработчиков среднего уровня подготовки. Предполагается, что у читателя есть базовые знания по XUL и JavaScript. Возможно вы захотие прочитать некоторые вводные документы по DOM, такие как статья Об объектной модели документа или вводная страница Gecko DOM Reference.

        diff --git "a/files/ru/orphaned/\320\264\320\276\321\201\321\202\321\203\320\277\320\275\320\276\321\201\321\202\321\214/index.html" "b/files/ru/orphaned/\320\264\320\276\321\201\321\202\321\203\320\277\320\275\320\276\321\201\321\202\321\214/index.html" index b86149b9b8..b63553d6ea 100644 --- "a/files/ru/orphaned/\320\264\320\276\321\201\321\202\321\203\320\277\320\275\320\276\321\201\321\202\321\214/index.html" +++ "b/files/ru/orphaned/\320\264\320\276\321\201\321\202\321\203\320\277\320\275\320\276\321\201\321\202\321\214/index.html" @@ -1,8 +1,9 @@ --- title: Доступность -slug: Доступность +slug: orphaned/Доступность tags: - Accessibility +original_slug: Доступность ---

         

        diff --git "a/files/ru/orphaned/\320\267\320\260\320\263\320\276\320\273\320\276\320\262\320\276\320\272_\321\201\321\201\321\213\320\273\320\272\320\270/index.html" "b/files/ru/orphaned/\320\267\320\260\320\263\320\276\320\273\320\276\320\262\320\276\320\272_\321\201\321\201\321\213\320\273\320\272\320\270/index.html" index 633d7eb6a3..1865fd39fe 100644 --- "a/files/ru/orphaned/\320\267\320\260\320\263\320\276\320\273\320\276\320\262\320\276\320\272_\321\201\321\201\321\213\320\273\320\272\320\270/index.html" +++ "b/files/ru/orphaned/\320\267\320\260\320\263\320\276\320\273\320\276\320\262\320\276\320\272_\321\201\321\201\321\213\320\273\320\272\320\270/index.html" @@ -1,6 +1,7 @@ --- title: Заголовок ссылки -slug: Заголовок_ссылки +slug: orphaned/Заголовок_ссылки +original_slug: Заголовок_ссылки ---

        Это моя страничка для работы Кроме того мне нужно разместить здесь фотьографии diff --git "a/files/ru/orphaned/\320\272\320\276\320\275\321\202\321\200\320\276\320\273\321\214_\320\272\320\260\321\207\320\265\321\201\321\202\320\262\320\260/index.html" "b/files/ru/orphaned/\320\272\320\276\320\275\321\202\321\200\320\276\320\273\321\214_\320\272\320\260\321\207\320\265\321\201\321\202\320\262\320\260/index.html" index c5059d89f6..d9a09f4b91 100644 --- "a/files/ru/orphaned/\320\272\320\276\320\275\321\202\321\200\320\276\320\273\321\214_\320\272\320\260\321\207\320\265\321\201\321\202\320\262\320\260/index.html" +++ "b/files/ru/orphaned/\320\272\320\276\320\275\321\202\321\200\320\276\320\273\321\214_\320\272\320\260\321\207\320\265\321\201\321\202\320\262\320\260/index.html" @@ -1,6 +1,7 @@ --- title: Контроль качества -slug: Контроль_качества +slug: orphaned/Контроль_качества +original_slug: Контроль_качества ---


        Эта страница не содержит текста. Измените MDN добавив статью.

        diff --git "a/files/ru/orphaned/\320\273\320\276\320\272\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/index.html" "b/files/ru/orphaned/\320\273\320\276\320\272\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/index.html" index 0f723d6f82..4a5900ce30 100644 --- "a/files/ru/orphaned/\320\273\320\276\320\272\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/index.html" +++ "b/files/ru/orphaned/\320\273\320\276\320\272\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/index.html" @@ -1,5 +1,6 @@ --- title: Локализация -slug: Локализация +slug: orphaned/Локализация +original_slug: Локализация ---

        Локализация - это процесс перевода пользовательского интерфейса программного обеспечения с одного языка на другой и адаптации в соответствии с особенностями иностранной культуры. Данный ресурс расскажет о создании базирующихся на технологиях Mozilla локализованных приложений и расширений.

        diff --git "a/files/ru/orphaned/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_\321\201\321\200\320\265\320\264\321\213_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" "b/files/ru/orphaned/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_\321\201\321\200\320\265\320\264\321\213_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" index 14cfda019e..9e3ea0ff57 100644 --- "a/files/ru/orphaned/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_\321\201\321\200\320\265\320\264\321\213_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" +++ "b/files/ru/orphaned/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_\321\201\321\200\320\265\320\264\321\213_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" @@ -1,8 +1,9 @@ --- title: Настройка среды разработки расширений -slug: Настройка_среды_разработки_расширений +slug: orphaned/Настройка_среды_разработки_расширений tags: - Расширения +original_slug: Настройка_среды_разработки_расширений ---

        В этой статье приводится несколько советов о том, как настроить ваше приложение Mozilla для удобной работы над расширениями.

        diff --git "a/files/ru/orphaned/\320\277\320\265\321\200\320\265\321\205\320\276\320\264_\321\201_internet_explorer_\320\275\320\260_mozilla/index.html" "b/files/ru/orphaned/\320\277\320\265\321\200\320\265\321\205\320\276\320\264_\321\201_internet_explorer_\320\275\320\260_mozilla/index.html" index c24c37d79d..4815631f3c 100644 --- "a/files/ru/orphaned/\320\277\320\265\321\200\320\265\321\205\320\276\320\264_\321\201_internet_explorer_\320\275\320\260_mozilla/index.html" +++ "b/files/ru/orphaned/\320\277\320\265\321\200\320\265\321\205\320\276\320\264_\321\201_internet_explorer_\320\275\320\260_mozilla/index.html" @@ -1,6 +1,7 @@ --- title: Переход с Internet Explorer на Mozilla -slug: Переход_с_Internet_Explorer_на_Mozilla +slug: orphaned/Переход_с_Internet_Explorer_на_Mozilla +original_slug: Переход_с_Internet_Explorer_на_Mozilla ---

        Введение

        Когда Netscape запустила броузер Mozilla, было решено поддерживать стандарт W3C. В результате, Mozilla не полностью совместима с Netscape Navigator 4.x и Microsoft Internet Explorer; например, Mozilla не поддерживает <layer>, я расскажу об этом позже. Броузеры, такие как Internet Explorer 4, были разработаны до утверждения стандарта W3C, и имеют много индивидуальных особенностей. В этом ключе, я опишу особенности Mozilla, с поддержкой строгого стиля HTML в сочетании с Internet Explorer и другими используемыми броузерами.

        diff --git "a/files/ru/orphaned/\321\201\320\261\320\276\321\200\320\272\320\260_\320\270_\321\203\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260/index.html" "b/files/ru/orphaned/\321\201\320\261\320\276\321\200\320\272\320\260_\320\270_\321\203\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260/index.html" index 0da2e7ca31..d513d5dbad 100644 --- "a/files/ru/orphaned/\321\201\320\261\320\276\321\200\320\272\320\260_\320\270_\321\203\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260/index.html" +++ "b/files/ru/orphaned/\321\201\320\261\320\276\321\200\320\272\320\260_\320\270_\321\203\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260/index.html" @@ -1,6 +1,7 @@ --- title: Сборка и установка -slug: Сборка_и_установка +slug: orphaned/Сборка_и_установка +original_slug: Сборка_и_установка ---
        Важно: Не начинайте сборку без предварительной конфигурации!

        Сборка

        diff --git "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/index.html" "b/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/index.html" index f5a8d14f6f..02595959ca 100644 --- "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/index.html" +++ "b/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/index.html" @@ -1,8 +1,9 @@ --- title: Создание расширения -slug: Создание_расширения +slug: orphaned/Создание_расширения tags: - Extensions +original_slug: Создание_расширения ---

        Введение

        diff --git "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270/index.html" "b/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270/index.html" index 790d74ed18..540eec6800 100644 --- "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270/index.html" +++ "b/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270/index.html" @@ -1,6 +1,7 @@ --- title: Настройка Firefox для разработки -slug: Создание_расширения/Настройка_Firefox_для_разработки +slug: orphaned/Создание_расширения/Настройка_Firefox_для_разработки +original_slug: Создание_расширения/Настройка_Firefox_для_разработки ---

        Перед созданием собственного расширения рекомендуется для этого настроить Firefox. Нужно это для того, чтобы не потерять важные данные и не сбить настройки на повседневном профиле браузера из-за неудачного опыта с расширением.

        Создание экспериментального профиля

        diff --git "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" "b/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" index 2ee5466f3e..f85369e2e0 100644 --- "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" +++ "b/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217/\320\275\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260_firefox_\320\264\320\273\321\217_\321\200\320\260\320\267\321\200\320\260\320\261\320\276\321\202\320\272\320\270_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271/index.html" @@ -1,6 +1,7 @@ --- title: Настройка Firefox для разработки расширений -slug: Создание_расширения/Настройка_Firefox_для_разработки_расширений +slug: orphaned/Создание_расширения/Настройка_Firefox_для_разработки_расширений +original_slug: Создание_расширения/Настройка_Firefox_для_разработки_расширений ---

        Прежде чем начать разработку расширения, желательно настроить для этого Firefox. Нужно это для того, чтобы не потерять нужные данные и не сбить настройки в повседневном профиле Firefox.

        Создание экспериментального профиля Firefox

        diff --git "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217_\320\264\320\273\321\217_firefox_\321\201_\320\270\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\274_mozilla_build_system/index.html" "b/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217_\320\264\320\273\321\217_firefox_\321\201_\320\270\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\274_mozilla_build_system/index.html" index b6fbfd6e87..41af48f7e2 100644 --- "a/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217_\320\264\320\273\321\217_firefox_\321\201_\320\270\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\274_mozilla_build_system/index.html" +++ "b/files/ru/orphaned/\321\201\320\276\320\267\320\264\320\260\320\275\320\270\320\265_\321\200\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217_\320\264\320\273\321\217_firefox_\321\201_\320\270\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\320\265\320\274_mozilla_build_system/index.html" @@ -1,6 +1,7 @@ --- title: Создание расширения для Firefox с использованием Mozilla Build System -slug: Создание_расширения_для_Firefox_с_использованием_Mozilla_Build_System +slug: orphaned/Создание_расширения_для_Firefox_с_использованием_Mozilla_Build_System +original_slug: Создание_расширения_для_Firefox_с_использованием_Mozilla_Build_System ---

        Существует специальное расширение для создания новых расширений для Firefox.

        {{ languages( { "en": "en/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System", "it": "it/Creare_Estensioni_personalizzate_per_Firefox_con_il_sistema_di_sviluppo_di_Mozilla", "ja": "ja/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System" } ) }} diff --git "a/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/index.html" "b/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/index.html" index 91f9a7bee9..a86e2fa2dc 100644 --- "a/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/index.html" +++ "b/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/index.html" @@ -1,9 +1,10 @@ --- title: Справочная информация по Gecko DOM -slug: Справочная_информация_по_Gecko_DOM +slug: orphaned/Справочная_информация_по_Gecko_DOM tags: - NeedsTechnicalReview - Справочная_информация_по_Gecko_DOM +original_slug: Справочная_информация_по_Gecko_DOM ---

        Содержание справочной информации по Gecko DOM.

        diff --git "a/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" "b/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" index e2b49f348b..82a4ce1465 100644 --- "a/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" +++ "b/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\262\320\262\320\265\320\264\320\265\320\275\320\270\320\265/index.html" @@ -1,6 +1,7 @@ --- title: Введение -slug: Справочная_информация_по_Gecko_DOM/Введение +slug: orphaned/Справочная_информация_по_Gecko_DOM/Введение +original_slug: Справочная_информация_по_Gecko_DOM/Введение ---

        В этом разделе представлено краткое концептуальное введение в DOM: что это такое, как он предоставляет структуру для HTML и XML-документов, как вы можете получить к нему доступ, и как этот API представляет справочную информацию и примеры.

        diff --git "a/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\277\321\200\320\265\320\264\320\270\321\201\320\273\320\276\320\262\320\270\320\265/index.html" "b/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\277\321\200\320\265\320\264\320\270\321\201\320\273\320\276\320\262\320\270\320\265/index.html" index 6d891324fa..db38e4b46e 100644 --- "a/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\277\321\200\320\265\320\264\320\270\321\201\320\273\320\276\320\262\320\270\320\265/index.html" +++ "b/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\277\321\200\320\265\320\264\320\270\321\201\320\273\320\276\320\262\320\270\320\265/index.html" @@ -1,6 +1,7 @@ --- title: Предисловие -slug: Справочная_информация_по_Gecko_DOM/Предисловие +slug: orphaned/Справочная_информация_по_Gecko_DOM/Предисловие +original_slug: Справочная_информация_по_Gecko_DOM/Предисловие ---

         

        diff --git "a/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\277\321\200\320\270\320\274\320\265\321\200\321\213/index.html" "b/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\277\321\200\320\270\320\274\320\265\321\200\321\213/index.html" index 6d2319c182..f030f68c04 100644 --- "a/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\277\321\200\320\270\320\274\320\265\321\200\321\213/index.html" +++ "b/files/ru/orphaned/\321\201\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\260\321\217_\320\270\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\321\217_\320\277\320\276_gecko_dom/\320\277\321\200\320\270\320\274\320\265\321\200\321\213/index.html" @@ -1,5 +1,6 @@ --- title: Примеры -slug: Справочная_информация_по_Gecko_DOM/Примеры +slug: orphaned/Справочная_информация_по_Gecko_DOM/Примеры +original_slug: Справочная_информация_по_Gecko_DOM/Примеры ---

        This page has no content. Enrich MDC by contributing.

        diff --git "a/files/ru/orphaned/\321\202\320\265\320\274\321\213/index.html" "b/files/ru/orphaned/\321\202\320\265\320\274\321\213/index.html" index 32b62868e6..b66e44f6ba 100644 --- "a/files/ru/orphaned/\321\202\320\265\320\274\321\213/index.html" +++ "b/files/ru/orphaned/\321\202\320\265\320\274\321\213/index.html" @@ -1,6 +1,7 @@ --- title: Темы -slug: Темы +slug: orphaned/Темы +original_slug: Темы ---

         

        Введение
        diff --git a/files/ru/plugins/roadmap/index.html b/files/ru/plugins/roadmap/index.html index d50a948963..1eda145955 100644 --- a/files/ru/plugins/roadmap/index.html +++ b/files/ru/plugins/roadmap/index.html @@ -1,7 +1,8 @@ --- title: План поддержки плагинов в Firefox -slug: Plugins/План +slug: Plugins/Roadmap translation_of: Plugins/Roadmap +original_slug: Plugins/План ---

        Плагины — проблема безопасности и производительности для пользователей Firefox. NPAPI плагины являются устаревшей технологией, и Mozilla движется к Вебу, в котором они не нужны. Последний оставшийся NPAPI плагин — Adobe Flash, который выпустил план по окончанию срока поддержки. Для поддержки воздержания от использования Flash, Firefox, вместе с другими браузерами, работает над тем, чтобы постепенно и аккуратно избавиться от использования и зависимости от Flash. Ниже представлен план, рассказывающий о том, что будет происходить с поддержкой плагинов в Firefox.

        diff --git a/files/ru/tools/accessibility_inspector/index.html b/files/ru/tools/accessibility_inspector/index.html index a375a027ae..52c20f411a 100644 --- a/files/ru/tools/accessibility_inspector/index.html +++ b/files/ru/tools/accessibility_inspector/index.html @@ -1,7 +1,8 @@ --- title: Инспектор доступности -slug: Tools/Инспектор_доступности +slug: Tools/Accessibility_inspector translation_of: Tools/Accessibility_inspector +original_slug: Tools/Инспектор_доступности ---
        {{ToolsSidebar}}
        diff --git a/files/ru/tools/browser_console/index.html b/files/ru/tools/browser_console/index.html index 487bc2eb5e..00d49816ff 100644 --- a/files/ru/tools/browser_console/index.html +++ b/files/ru/tools/browser_console/index.html @@ -1,14 +1,15 @@ --- title: Консоль браузера -slug: Tools/Консоль_браузера +slug: Tools/Browser_Console tags: - Tools - Web Development - Браузер - Отладка - - 'веб-разработка:инструменты' + - веб-разработка:инструменты - консоль translation_of: Tools/Browser_Console +original_slug: Tools/Консоль_браузера ---
        {{ToolsSidebar}}

        Консоль браузера — как Веб-консоль, но для работы со всем браузером, а не с отдельной его вкладкой.

        diff --git a/files/ru/tools/debugger/how_to/debug_eval_sources/index.html b/files/ru/tools/debugger/how_to/debug_eval_sources/index.html index 29224f2590..714444fe1c 100644 --- a/files/ru/tools/debugger/how_to/debug_eval_sources/index.html +++ b/files/ru/tools/debugger/how_to/debug_eval_sources/index.html @@ -1,9 +1,10 @@ --- title: Отладка кода внутри eval -slug: Tools/Debugger/How_to/Отладка_кода_внутри_eval +slug: Tools/Debugger/How_to/Debug_eval_sources tags: - Отладка translation_of: Tools/Debugger/How_to/Debug_eval_sources +original_slug: Tools/Debugger/How_to/Отладка_кода_внутри_eval ---
        {{ToolsSidebar}}

        Доступно, начиная с Firefox 36.

        diff --git a/files/ru/tools/debugger/how_to/pretty-print_a_minified_file/index.html b/files/ru/tools/debugger/how_to/pretty-print_a_minified_file/index.html index e224f9d591..2800f84c31 100644 --- a/files/ru/tools/debugger/how_to/pretty-print_a_minified_file/index.html +++ b/files/ru/tools/debugger/how_to/pretty-print_a_minified_file/index.html @@ -1,7 +1,8 @@ --- title: Работа с минифицированным кодом -slug: Tools/Debugger/How_to/Работа_с_минифицированным_кодом +slug: Tools/Debugger/How_to/Pretty-print_a_minified_file translation_of: Tools/Debugger/How_to/Pretty-print_a_minified_file +original_slug: Tools/Debugger/How_to/Работа_с_минифицированным_кодом ---
        {{ToolsSidebar}}

        Чтобы представить минифицированный код в удобочитаемом виде, откройте его, а затем нажмите на иконку с фигурными скобками:

        diff --git a/files/ru/tools/page_inspector/how_to/edit_fonts/index.html b/files/ru/tools/page_inspector/how_to/edit_fonts/index.html index 24b490e3d3..32000bbe0f 100644 --- a/files/ru/tools/page_inspector/how_to/edit_fonts/index.html +++ b/files/ru/tools/page_inspector/how_to/edit_fonts/index.html @@ -1,11 +1,12 @@ --- title: Просмотр шрифтов -slug: Tools/Page_Inspector/How_to/Просмотр_шрифтов +slug: Tools/Page_Inspector/How_to/Edit_fonts tags: - Guide - Инспектор - инструменты translation_of: Tools/Page_Inspector/How_to/Edit_fonts +original_slug: Tools/Page_Inspector/How_to/Просмотр_шрифтов ---
        {{ToolsSidebar}}

        Всплывающая подсказка у font-family

        diff --git a/files/ru/tools/page_inspector/how_to/examine_event_listeners/index.html b/files/ru/tools/page_inspector/how_to/examine_event_listeners/index.html index c5ea101f0b..02599668dd 100644 --- a/files/ru/tools/page_inspector/how_to/examine_event_listeners/index.html +++ b/files/ru/tools/page_inspector/how_to/examine_event_listeners/index.html @@ -1,11 +1,12 @@ --- title: Исследовать Event Listeners -slug: Tools/Page_Inspector/How_to/Исследовать_event_listeners +slug: Tools/Page_Inspector/How_to/Examine_event_listeners tags: - Инспектор - Руководство - инструменты translation_of: Tools/Page_Inspector/How_to/Examine_event_listeners +original_slug: Tools/Page_Inspector/How_to/Исследовать_event_listeners ---
        {{ToolsSidebar}}

        Начиная с Firefox 33 вы увидите значок «ev» в области HTML, напротив элементов, у которых есть связаные с ними Event Listeners:

        diff --git a/files/ru/tools/page_inspector/how_to/open_the_inspector/index.html b/files/ru/tools/page_inspector/how_to/open_the_inspector/index.html index a4e0927d76..7e9bddf5a5 100644 --- a/files/ru/tools/page_inspector/how_to/open_the_inspector/index.html +++ b/files/ru/tools/page_inspector/how_to/open_the_inspector/index.html @@ -1,11 +1,12 @@ --- title: Открытие Инспектора -slug: Tools/Page_Inspector/How_to/Otkrytie_Inspektora +slug: Tools/Page_Inspector/How_to/Open_the_Inspector tags: - Guide - Инспектор - инструменты translation_of: Tools/Page_Inspector/How_to/Open_the_Inspector +original_slug: Tools/Page_Inspector/How_to/Otkrytie_Inspektora ---
        {{ToolsSidebar}}

        Есть два основных способа открытия Инспектора:

        diff --git a/files/ru/tools/page_inspector/how_to/select_an_element/index.html b/files/ru/tools/page_inspector/how_to/select_an_element/index.html index 16db872b70..c607b31043 100644 --- a/files/ru/tools/page_inspector/how_to/select_an_element/index.html +++ b/files/ru/tools/page_inspector/how_to/select_an_element/index.html @@ -1,11 +1,12 @@ --- title: Выбор элемента -slug: Tools/Page_Inspector/How_to/Vybor_elementa +slug: Tools/Page_Inspector/How_to/Select_an_element tags: - Guide - Инспектор - инструменты translation_of: Tools/Page_Inspector/How_to/Select_an_element +original_slug: Tools/Page_Inspector/How_to/Vybor_elementa ---
        {{ToolsSidebar}}

        {{EmbedYouTube("y2LcsxE2pR0")}}

        diff --git a/files/ru/tools/page_inspector/keyboard_shortcuts/index.html b/files/ru/tools/page_inspector/keyboard_shortcuts/index.html index ae162ef628..a5129643e4 100644 --- a/files/ru/tools/page_inspector/keyboard_shortcuts/index.html +++ b/files/ru/tools/page_inspector/keyboard_shortcuts/index.html @@ -1,10 +1,11 @@ --- title: Клавиатурные сокращения -slug: Tools/Page_Inspector/Сочетания_клавиш +slug: Tools/Page_Inspector/Keyboard_shortcuts tags: - Инспектор - инструменты translation_of: Tools/Page_Inspector/Keyboard_shortcuts +original_slug: Tools/Page_Inspector/Сочетания_клавиш ---
        {{ToolsSidebar}}

        {{ Page ("ru/docs/tools/Keyboard_shortcuts", "page-inspector") }}

        diff --git a/files/ru/tools/performance/index.html b/files/ru/tools/performance/index.html index ba11369101..ac389754f9 100644 --- a/files/ru/tools/performance/index.html +++ b/files/ru/tools/performance/index.html @@ -1,7 +1,8 @@ --- title: Производительность -slug: Tools/Производительность +slug: Tools/Performance translation_of: Tools/Performance +original_slug: Tools/Производительность ---
        {{ToolsSidebar}}

        Инструмент даёт Вам понять общую отзывчивость вашего сайта,  JavaScript и общее представление о разметке. С помощью инструмента производительности Вы создадите запись или профиль своего сайта за определенный промежуток времени. Затем, инструмент покажет Вам действия браузера и график смены частоты кадров, поверх профиля, рендера Вашего сайта.

        diff --git a/files/ru/tools/performance/waterfall/index.html b/files/ru/tools/performance/waterfall/index.html index 1531a44a10..7b785197a7 100644 --- a/files/ru/tools/performance/waterfall/index.html +++ b/files/ru/tools/performance/waterfall/index.html @@ -1,7 +1,8 @@ --- title: Waterfall -slug: Tools/Производительность/Waterfall +slug: Tools/Performance/Waterfall translation_of: Tools/Performance/Waterfall +original_slug: Tools/Производительность/Waterfall ---
        {{ToolsSidebar}}

        Водопад (Waterfall) дает вам представление о различных процессах, которые происходят внутри браузера, когда вы открывайте ваш сайт или запускаете ваше приложение. Он основан на идее разделения всех происходящих внутри браузера процессов на различные типы  - запуск JavaScript, обновление layout и так далее - и что в любой момент времени браузрер выполняет один из этих процессов.

        diff --git a/files/ru/tools/responsive_design_mode/index.html b/files/ru/tools/responsive_design_mode/index.html index e5acc43af0..417421f884 100644 --- a/files/ru/tools/responsive_design_mode/index.html +++ b/files/ru/tools/responsive_design_mode/index.html @@ -1,17 +1,18 @@ --- title: Режим адаптивного дизайна -slug: Tools/Responsive_Design_View +slug: Tools/Responsive_Design_Mode tags: - Design - Firefox - Guide - Tools - Web Development - - 'l10n:priority' + - l10n:priority - Дизайн - адаптивный дизайн - инструменты разработки translation_of: Tools/Responsive_Design_Mode +original_slug: Tools/Responsive_Design_View ---
        {{ToolsSidebar}}
        diff --git a/files/ru/tools/rulers/index.html b/files/ru/tools/rulers/index.html index c8d17fffac..e14bb8a970 100644 --- a/files/ru/tools/rulers/index.html +++ b/files/ru/tools/rulers/index.html @@ -1,7 +1,8 @@ --- title: Линейки -slug: Tools/Линейки +slug: Tools/Rulers translation_of: Tools/Rulers +original_slug: Tools/Линейки ---
        {{ToolsSidebar}}

        Новое в Firefox 40.

        diff --git a/files/ru/tools/web_console/ui_tour/index.html b/files/ru/tools/web_console/ui_tour/index.html index 41f3e760cc..6848e5d67c 100644 --- a/files/ru/tools/web_console/ui_tour/index.html +++ b/files/ru/tools/web_console/ui_tour/index.html @@ -1,7 +1,8 @@ --- title: Opening the Web Console -slug: Tools/Web_Console/Opening_the_Web_Console +slug: Tools/Web_Console/UI_Tour translation_of: Tools/Web_Console/UI_Tour +original_slug: Tools/Web_Console/Opening_the_Web_Console ---
        {{ToolsSidebar}}

        To open the Web Console:

        diff --git a/files/ru/web/api/baseaudiocontext/createpanner/index.html b/files/ru/web/api/baseaudiocontext/createpanner/index.html index 0a4d5db32b..28e5bdc0f7 100644 --- a/files/ru/web/api/baseaudiocontext/createpanner/index.html +++ b/files/ru/web/api/baseaudiocontext/createpanner/index.html @@ -1,7 +1,8 @@ --- title: AudioContext.createPanner() -slug: Web/API/AudioContext/createPanner +slug: Web/API/BaseAudioContext/createPanner translation_of: Web/API/BaseAudioContext/createPanner +original_slug: Web/API/AudioContext/createPanner ---

        {{ APIRef("Web Audio API") }}

        diff --git a/files/ru/web/api/baseaudiocontext/currenttime/index.html b/files/ru/web/api/baseaudiocontext/currenttime/index.html index 51370701f4..ed77cb9ec9 100644 --- a/files/ru/web/api/baseaudiocontext/currenttime/index.html +++ b/files/ru/web/api/baseaudiocontext/currenttime/index.html @@ -1,7 +1,8 @@ --- title: AudioContext.currentTime -slug: Web/API/AudioContext/currentTime +slug: Web/API/BaseAudioContext/currentTime translation_of: Web/API/BaseAudioContext/currentTime +original_slug: Web/API/AudioContext/currentTime ---

        {{ APIRef("AudioContext") }}

        diff --git a/files/ru/web/api/baseaudiocontext/decodeaudiodata/index.html b/files/ru/web/api/baseaudiocontext/decodeaudiodata/index.html index faae982eae..a04a0df083 100644 --- a/files/ru/web/api/baseaudiocontext/decodeaudiodata/index.html +++ b/files/ru/web/api/baseaudiocontext/decodeaudiodata/index.html @@ -1,9 +1,10 @@ --- title: AudioContext.decodeAudioData() -slug: Web/API/AudioContext/decodeAudioData +slug: Web/API/BaseAudioContext/decodeAudioData tags: - API translation_of: Web/API/BaseAudioContext/decodeAudioData +original_slug: Web/API/AudioContext/decodeAudioData ---

        {{ APIRef("Web Audio API") }}

        diff --git a/files/ru/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html b/files/ru/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html index 2c9eeaae78..3dc5e6c8f0 100644 --- a/files/ru/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html +++ b/files/ru/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html @@ -1,7 +1,8 @@ --- title: Применение стилей и цветов -slug: Web/API/Canvas_API/Tutorial/Применение_стилей_и_цветов +slug: Web/API/Canvas_API/Tutorial/Applying_styles_and_colors translation_of: Web/API/Canvas_API/Tutorial/Applying_styles_and_colors +original_slug: Web/API/Canvas_API/Tutorial/Применение_стилей_и_цветов ---
        {{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_shapes", "Web/API/Canvas_API/Tutorial/Drawing_text")}}
        diff --git a/files/ru/web/api/canvas_api/tutorial/basic_animations/index.html b/files/ru/web/api/canvas_api/tutorial/basic_animations/index.html index a47b8b734e..e4595cbbd4 100644 --- a/files/ru/web/api/canvas_api/tutorial/basic_animations/index.html +++ b/files/ru/web/api/canvas_api/tutorial/basic_animations/index.html @@ -1,6 +1,6 @@ --- title: Простые анимации -slug: Web/API/Canvas_API/Tutorial/Основы_анимации +slug: Web/API/Canvas_API/Tutorial/Basic_animations tags: - HTML - HTML5 @@ -9,6 +9,7 @@ tags: - Средний уровень - Холст translation_of: Web/API/Canvas_API/Tutorial/Basic_animations +original_slug: Web/API/Canvas_API/Tutorial/Основы_анимации ---
        {{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Compositing", "Web/API/Canvas_API/Tutorial/Advanced_animations")}}
        diff --git a/files/ru/web/api/canvas_api/tutorial/compositing/index.html b/files/ru/web/api/canvas_api/tutorial/compositing/index.html index 264cc7e544..bac6986141 100644 --- a/files/ru/web/api/canvas_api/tutorial/compositing/index.html +++ b/files/ru/web/api/canvas_api/tutorial/compositing/index.html @@ -1,9 +1,10 @@ --- title: Композиция и обрезка -slug: Web/API/Canvas_API/Tutorial/Композиции +slug: Web/API/Canvas_API/Tutorial/Compositing tags: - канвас translation_of: Web/API/Canvas_API/Tutorial/Compositing +original_slug: Web/API/Canvas_API/Tutorial/Композиции ---
        {{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Transformations", "Web/API/Canvas_API/Tutorial/Basic_animations")}}
        diff --git a/files/ru/web/api/canvas_api/tutorial/drawing_shapes/index.html b/files/ru/web/api/canvas_api/tutorial/drawing_shapes/index.html index f6ca6c23ef..046e249975 100644 --- a/files/ru/web/api/canvas_api/tutorial/drawing_shapes/index.html +++ b/files/ru/web/api/canvas_api/tutorial/drawing_shapes/index.html @@ -1,7 +1,8 @@ --- title: Рисование фигур с помощью canvas -slug: Web/API/Canvas_API/Tutorial/Рисование_фигур +slug: Web/API/Canvas_API/Tutorial/Drawing_shapes translation_of: Web/API/Canvas_API/Tutorial/Drawing_shapes +original_slug: Web/API/Canvas_API/Tutorial/Рисование_фигур ---
        {{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_usage", "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors")}}
        diff --git a/files/ru/web/api/canvas_api/tutorial/drawing_text/index.html b/files/ru/web/api/canvas_api/tutorial/drawing_text/index.html index 90915c5e09..c25c49be30 100644 --- a/files/ru/web/api/canvas_api/tutorial/drawing_text/index.html +++ b/files/ru/web/api/canvas_api/tutorial/drawing_text/index.html @@ -1,6 +1,6 @@ --- title: Рисование текста -slug: Web/API/Canvas_API/Tutorial/Рисование_текста +slug: Web/API/Canvas_API/Tutorial/Drawing_text tags: - Canvas - Графика @@ -8,6 +8,7 @@ tags: - Рукводовство - мануал translation_of: Web/API/Canvas_API/Tutorial/Drawing_text +original_slug: Web/API/Canvas_API/Tutorial/Рисование_текста ---
        {{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Applying_styles_and_colors", "Web/API/Canvas_API/Tutorial/Using_images")}}
        diff --git a/files/ru/web/api/canvas_api/tutorial/using_images/index.html b/files/ru/web/api/canvas_api/tutorial/using_images/index.html index 3ce4b8384e..d1addb4b7d 100644 --- a/files/ru/web/api/canvas_api/tutorial/using_images/index.html +++ b/files/ru/web/api/canvas_api/tutorial/using_images/index.html @@ -1,9 +1,10 @@ --- title: Использование изображений -slug: Web/API/Canvas_API/Tutorial/Использование_изображений +slug: Web/API/Canvas_API/Tutorial/Using_images tags: - Графика translation_of: Web/API/Canvas_API/Tutorial/Using_images +original_slug: Web/API/Canvas_API/Tutorial/Использование_изображений ---
        {{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_text", "Web/API/Canvas_API/Tutorial/Трансформации")}}
        diff --git a/files/ru/web/api/crypto/getrandomvalues/index.html b/files/ru/web/api/crypto/getrandomvalues/index.html index c59f5dde54..20f900e9bb 100644 --- a/files/ru/web/api/crypto/getrandomvalues/index.html +++ b/files/ru/web/api/crypto/getrandomvalues/index.html @@ -1,12 +1,13 @@ --- title: RandomSource.getRandomValues() -slug: Web/API/RandomSource/getRandomValues +slug: Web/API/Crypto/getRandomValues tags: - АПИ - Криптография - Справка - метод translation_of: Web/API/Crypto/getRandomValues +original_slug: Web/API/RandomSource/getRandomValues ---

        {{APIRef("Web Crypto API")}}

        diff --git a/files/ru/web/api/css_object_model/managing_screen_orientation/index.html b/files/ru/web/api/css_object_model/managing_screen_orientation/index.html index a6b16cba4a..198fae2acb 100644 --- a/files/ru/web/api/css_object_model/managing_screen_orientation/index.html +++ b/files/ru/web/api/css_object_model/managing_screen_orientation/index.html @@ -1,11 +1,12 @@ --- title: Разбираемся с ориентацией экрана -slug: Web/API/CSS_Object_Model/ориентация_экрана +slug: Web/API/CSS_Object_Model/Managing_screen_orientation tags: - Ориентация экрана - Положение экрана - Руководство translation_of: Web/API/CSS_Object_Model/Managing_screen_orientation +original_slug: Web/API/CSS_Object_Model/ориентация_экрана ---

        {{DefaultAPISidebar("Screen Orientation API")}}{{SeeCompatTable}}

        diff --git a/files/ru/web/api/document/createelement/index.html b/files/ru/web/api/document/createelement/index.html index 15542d751d..f233ecf007 100644 --- a/files/ru/web/api/document/createelement/index.html +++ b/files/ru/web/api/document/createelement/index.html @@ -1,10 +1,11 @@ --- title: document.createElement -slug: DOM/document.createElement +slug: Web/API/Document/createElement tags: - DOM - Gecko translation_of: Web/API/Document/createElement +original_slug: DOM/document.createElement ---

        {{ ApiRef() }}

        diff --git a/files/ru/web/api/document/images/index.html b/files/ru/web/api/document/images/index.html index c9ba4ac1e2..420dd40024 100644 --- a/files/ru/web/api/document/images/index.html +++ b/files/ru/web/api/document/images/index.html @@ -1,10 +1,11 @@ --- title: document.images -slug: DOM/document.images +slug: Web/API/Document/images tags: - DOM - JavaScript translation_of: Web/API/Document/images +original_slug: DOM/document.images ---

        {{ ApiRef() }}

        Кратко об обьекте

        diff --git a/files/ru/web/api/document/readystatechange_event/index.html b/files/ru/web/api/document/readystatechange_event/index.html index 5a268b033f..70ea3f778a 100644 --- a/files/ru/web/api/document/readystatechange_event/index.html +++ b/files/ru/web/api/document/readystatechange_event/index.html @@ -1,9 +1,10 @@ --- title: readystatechange -slug: Web/Events/readystatechange +slug: Web/API/Document/readystatechange_event tags: - события translation_of: Web/API/Document/readystatechange_event +original_slug: Web/Events/readystatechange ---

        {{ApiRef}}

        diff --git a/files/ru/web/api/document_object_model/events/index.html b/files/ru/web/api/document_object_model/events/index.html index eeadb57328..c5995b792e 100644 --- a/files/ru/web/api/document_object_model/events/index.html +++ b/files/ru/web/api/document_object_model/events/index.html @@ -1,7 +1,8 @@ --- title: Events and the DOM -slug: DOM/DOM_Reference/Events +slug: Web/API/Document_Object_Model/Events translation_of: Web/API/Document_Object_Model/Events +original_slug: DOM/DOM_Reference/Events ---

        Вступление

        diff --git a/files/ru/web/api/document_object_model/examples/index.html b/files/ru/web/api/document_object_model/examples/index.html index a3332f7585..b590dec1ae 100644 --- a/files/ru/web/api/document_object_model/examples/index.html +++ b/files/ru/web/api/document_object_model/examples/index.html @@ -1,7 +1,8 @@ --- title: Examples of web and XML development using the DOM -slug: DOM/DOM_Reference/Examples +slug: Web/API/Document_Object_Model/Examples translation_of: Web/API/Document_Object_Model/Examples +original_slug: DOM/DOM_Reference/Examples ---

        В этой главе представлены более длинные примеры разработки веб-сайтов и XML с использованием DOM. По возможности, примеры используют общие API, трюки и шаблоны в JavaScript для управления объектом документа.

        diff --git a/files/ru/web/api/document_object_model/index.html b/files/ru/web/api/document_object_model/index.html index db06b01dd8..a1546eb2a4 100644 --- a/files/ru/web/api/document_object_model/index.html +++ b/files/ru/web/api/document_object_model/index.html @@ -1,6 +1,6 @@ --- title: Руководство по DOM -slug: DOM/DOM_Reference +slug: Web/API/Document_Object_Model tags: - DOM - DOM Reference @@ -8,6 +8,7 @@ tags: - Intermediate - Руководство translation_of: Web/API/Document_Object_Model +original_slug: DOM/DOM_Reference ---

        Объектная Модель Документа (DOM) является программным интерфейсом для HTML, XML и SVG документов. Это обеспечивает структурированное представление документа (дерева), и определяет способ, по которому структура может быть доступна для программы, для изменения структуры документа, его стиля и содержания. DOM обеспечивает представление документа в виде структурированной группы узлов и объектов, которые имеют свойства и методы. По сути, она связывает веб -страницы со скриптами или языками программирования.

        diff --git a/files/ru/web/api/document_object_model/introduction/index.html b/files/ru/web/api/document_object_model/introduction/index.html index 3c02e5799f..9fa1a55cbc 100644 --- a/files/ru/web/api/document_object_model/introduction/index.html +++ b/files/ru/web/api/document_object_model/introduction/index.html @@ -1,9 +1,10 @@ --- title: Введение -slug: DOM/DOM_Reference/Введение +slug: Web/API/Document_Object_Model/Introduction tags: - DOM translation_of: Web/API/Document_Object_Model/Introduction +original_slug: DOM/DOM_Reference/Введение ---

        Этот раздел представляет краткое знакомство с Объектной Моделью Документа (DOM) - что такое DOM, каким образом предоставляются структуры HTML и XML документов, и как взаимодействовать с ними. Данный раздел содержит справочную информацию и примеры.

        diff --git a/files/ru/web/api/document_object_model/locating_dom_elements_using_selectors/index.html b/files/ru/web/api/document_object_model/locating_dom_elements_using_selectors/index.html index 73538e8616..0bdfd09bdc 100644 --- a/files/ru/web/api/document_object_model/locating_dom_elements_using_selectors/index.html +++ b/files/ru/web/api/document_object_model/locating_dom_elements_using_selectors/index.html @@ -1,7 +1,8 @@ --- title: Locating DOM elements using selectors -slug: DOM/DOM_Reference/Locating_DOM_elements_using_selectors +slug: Web/API/Document_object_model/Locating_DOM_elements_using_selectors translation_of: Web/API/Document_object_model/Locating_DOM_elements_using_selectors +original_slug: DOM/DOM_Reference/Locating_DOM_elements_using_selectors ---
        {{ gecko_minversion_header("1.9.1") }}
        diff --git a/files/ru/web/api/documentorshadowroot/activeelement/index.html b/files/ru/web/api/documentorshadowroot/activeelement/index.html index 71db5bc678..4261eee4e9 100644 --- a/files/ru/web/api/documentorshadowroot/activeelement/index.html +++ b/files/ru/web/api/documentorshadowroot/activeelement/index.html @@ -1,6 +1,6 @@ --- title: Document.activeElement -slug: Web/API/Document/activeElement +slug: Web/API/DocumentOrShadowRoot/activeElement tags: - API - Document @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/API/DocumentOrShadowRoot/activeElement translation_of_original: Web/API/Document/activeElement +original_slug: Web/API/Document/activeElement ---

        {{ ApiRef() }}

        diff --git a/files/ru/web/api/documentorshadowroot/getselection/index.html b/files/ru/web/api/documentorshadowroot/getselection/index.html index c57695e055..ce4007b2f3 100644 --- a/files/ru/web/api/documentorshadowroot/getselection/index.html +++ b/files/ru/web/api/documentorshadowroot/getselection/index.html @@ -1,8 +1,9 @@ --- title: Document.getSelection() -slug: Web/API/Document/getSelection +slug: Web/API/DocumentOrShadowRoot/getSelection translation_of: Web/API/DocumentOrShadowRoot/getSelection translation_of_original: Web/API/Document/getSelection +original_slug: Web/API/Document/getSelection ---

        {{APIRef("DOM")}}

        diff --git a/files/ru/web/api/element/blur_event/index.html b/files/ru/web/api/element/blur_event/index.html index a29fa0debc..3beea937a2 100644 --- a/files/ru/web/api/element/blur_event/index.html +++ b/files/ru/web/api/element/blur_event/index.html @@ -1,10 +1,11 @@ --- title: blur (event) -slug: Web/Events/blur +slug: Web/API/Element/blur_event tags: - DOM - DOM Events translation_of: Web/API/Element/blur_event +original_slug: Web/Events/blur ---

        Событие blur вызывается когда элемент теряет фокус. Главное отличие между этим событием и  focusout только в том что у последнего есть фаза всплытия.

        diff --git a/files/ru/web/api/element/error_event/index.html b/files/ru/web/api/element/error_event/index.html index 787fb9a4fa..716ebfef1d 100644 --- a/files/ru/web/api/element/error_event/index.html +++ b/files/ru/web/api/element/error_event/index.html @@ -1,6 +1,6 @@ --- title: error -slug: Web/Events/error +slug: Web/API/Element/error_event tags: - DOM - UI события @@ -13,6 +13,7 @@ tags: - аудио - события translation_of: Web/API/Element/error_event +original_slug: Web/Events/error ---

        Событие error возникает, когда произошла какая-либо ошибка. Точные обстоятельства могут быть различными, потому что события с этим именем используются множеством различных API.

        diff --git a/files/ru/web/api/element/focusin_event/index.html b/files/ru/web/api/element/focusin_event/index.html index 02f27b66fb..8a8b4f0608 100644 --- a/files/ru/web/api/element/focusin_event/index.html +++ b/files/ru/web/api/element/focusin_event/index.html @@ -1,7 +1,8 @@ --- title: focusin -slug: Web/Events/focusin +slug: Web/API/Element/focusin_event translation_of: Web/API/Element/focusin_event +original_slug: Web/Events/focusin ---

        Событие focusin срабатывает, когда элемент получает фокус. Главное отличие от focus в том, что последний не всплывает.

        diff --git a/files/ru/web/api/element/focusout_event/index.html b/files/ru/web/api/element/focusout_event/index.html index 742f52af03..38a4eed235 100644 --- a/files/ru/web/api/element/focusout_event/index.html +++ b/files/ru/web/api/element/focusout_event/index.html @@ -1,7 +1,8 @@ --- title: focusout -slug: Web/Events/focusout +slug: Web/API/Element/focusout_event translation_of: Web/API/Element/focusout_event +original_slug: Web/Events/focusout ---

        Событие focusout вызывается перед потерей элементом фокуса. Главное отличие между этим событием и blur в том, что у последнего нет фазы всплытия.

        diff --git a/files/ru/web/api/elementcssinlinestyle/style/index.html b/files/ru/web/api/elementcssinlinestyle/style/index.html index 683bfa1101..95f9209797 100644 --- a/files/ru/web/api/elementcssinlinestyle/style/index.html +++ b/files/ru/web/api/elementcssinlinestyle/style/index.html @@ -1,6 +1,6 @@ --- title: HTMLElement.style -slug: Web/API/HTMLElement/style +slug: Web/API/ElementCSSInlineStyle/style tags: - API - HTML DOM @@ -12,6 +12,7 @@ tags: - Свойство - Ссылки translation_of: Web/API/ElementCSSInlineStyle/style +original_slug: Web/API/HTMLElement/style ---

        Кратко

        diff --git a/files/ru/web/api/file_and_directory_entries_api/introduction/index.html b/files/ru/web/api/file_and_directory_entries_api/introduction/index.html index e5c76758c1..fba2cad5c7 100644 --- a/files/ru/web/api/file_and_directory_entries_api/introduction/index.html +++ b/files/ru/web/api/file_and_directory_entries_api/introduction/index.html @@ -1,7 +1,8 @@ --- title: Введение в API файлов и каталогов -slug: Web/API/File_and_Directory_Entries_API/Введение +slug: Web/API/File_and_Directory_Entries_API/Introduction translation_of: Web/API/File_and_Directory_Entries_API/Introduction +original_slug: Web/API/File_and_Directory_Entries_API/Введение ---
        {{DefaultAPISidebar("File System API")}}{{Non-standard_header}}
        diff --git a/files/ru/web/api/fullscreen_api/index.html b/files/ru/web/api/fullscreen_api/index.html index ad21d6d20e..74c429955a 100644 --- a/files/ru/web/api/fullscreen_api/index.html +++ b/files/ru/web/api/fullscreen_api/index.html @@ -1,7 +1,8 @@ --- title: Fullscreen API -slug: DOM/Using_fullscreen_mode +slug: Web/API/Fullscreen_API translation_of: Web/API/Fullscreen_API +original_slug: DOM/Using_fullscreen_mode ---
        {{DefaultAPISidebar("Fullscreen API")}}
        diff --git a/files/ru/web/api/geolocation_api/index.html b/files/ru/web/api/geolocation_api/index.html index 39847dedc5..3082794454 100644 --- a/files/ru/web/api/geolocation_api/index.html +++ b/files/ru/web/api/geolocation_api/index.html @@ -1,11 +1,12 @@ --- title: Использование геолокации -slug: Web/API/Geolocation/Using_geolocation +slug: Web/API/Geolocation_API tags: - Geolocation API - Guide - Intermediate translation_of: Web/API/Geolocation_API +original_slug: Web/API/Geolocation/Using_geolocation ---
        {{securecontext_header}}{{DefaultAPISidebar("Geolocation API")}}
        diff --git a/files/ru/web/api/geolocation_api/using_the_geolocation_api/index.html b/files/ru/web/api/geolocation_api/using_the_geolocation_api/index.html index 5fa1055292..c945a1ba55 100644 --- a/files/ru/web/api/geolocation_api/using_the_geolocation_api/index.html +++ b/files/ru/web/api/geolocation_api/using_the_geolocation_api/index.html @@ -1,11 +1,12 @@ --- title: Использование Geolocation API -slug: Web/API/Geolocation/Using_geolocation/Using_the_Geolocation_API +slug: Web/API/Geolocation_API/Using_the_Geolocation_API tags: - Geolocation API - Guide - Tutorial translation_of: Web/API/Geolocation_API/Using_the_Geolocation_API +original_slug: Web/API/Geolocation/Using_geolocation/Using_the_Geolocation_API ---
        {{securecontext_header}}{{DefaultAPISidebar("Geolocation API")}}
        diff --git a/files/ru/web/api/html_drag_and_drop_api/drag_operations/index.html b/files/ru/web/api/html_drag_and_drop_api/drag_operations/index.html index 2dcdb6babb..0841bc211b 100644 --- a/files/ru/web/api/html_drag_and_drop_api/drag_operations/index.html +++ b/files/ru/web/api/html_drag_and_drop_api/drag_operations/index.html @@ -1,7 +1,8 @@ --- title: Drag Operations -slug: Web/Guide/HTML/Drag_and_drop/Drag_operations +slug: Web/API/HTML_Drag_and_Drop_API/Drag_operations translation_of: Web/API/HTML_Drag_and_Drop_API/Drag_operations +original_slug: Web/Guide/HTML/Drag_and_drop/Drag_operations ---

        {{DefaultAPISidebar("HTML Drag and Drop API")}}

        diff --git a/files/ru/web/api/html_drag_and_drop_api/index.html b/files/ru/web/api/html_drag_and_drop_api/index.html index 86467501fd..1532a3573e 100644 --- a/files/ru/web/api/html_drag_and_drop_api/index.html +++ b/files/ru/web/api/html_drag_and_drop_api/index.html @@ -1,7 +1,8 @@ --- title: Drag and drop -slug: Web/Guide/HTML/Drag_and_drop +slug: Web/API/HTML_Drag_and_Drop_API translation_of: Web/API/HTML_Drag_and_Drop_API +original_slug: Web/Guide/HTML/Drag_and_drop ---

        Firefox и прочие приложения компании Mozilla имеют ряд возможностей для управления drag и drop. Это позволяет пользователю нажать и удерживая зажатой кнопку мыши над элементом, переместить его на другую позицию, отпустив кнопку мыши пользователь может оставить элемент на новой позиции. На протяжении всей операции перемещения полупрозрачное представление элемента следует за курсором мыши. Новая позиция элемента может располагаться в совершенно другом приложении. Веб сайты, и XUL приложения могут использовать эту функциональность для того, чтобы определить какие элементы страницы могут быть перемещены, а также определить элементы куда первые могут быть перемещены.

        diff --git a/files/ru/web/api/htmlaudioelement/audio/index.html b/files/ru/web/api/htmlaudioelement/audio/index.html index 4d9e39dfab..56fb80134f 100644 --- a/files/ru/web/api/htmlaudioelement/audio/index.html +++ b/files/ru/web/api/htmlaudioelement/audio/index.html @@ -1,9 +1,10 @@ --- title: Audio() -slug: Web/API/HTMLAudioElement/Audio() +slug: Web/API/HTMLAudioElement/Audio tags: - аудио translation_of: Web/API/HTMLAudioElement/Audio +original_slug: Web/API/HTMLAudioElement/Audio() ---

        {{APIRef("HTML DOM")}}

        diff --git a/files/ru/web/api/htmlelement/accesskey/index.html b/files/ru/web/api/htmlelement/accesskey/index.html index 0230ecc9e0..01b872003b 100644 --- a/files/ru/web/api/htmlelement/accesskey/index.html +++ b/files/ru/web/api/htmlelement/accesskey/index.html @@ -1,8 +1,9 @@ --- title: Element.accessKey -slug: Web/API/Element/accessKey +slug: Web/API/HTMLElement/accessKey translation_of: Web/API/HTMLElement/accessKey translation_of_original: Web/API/Element/accessKey +original_slug: Web/API/Element/accessKey ---
        {{APIRef("DOM")}}
        diff --git a/files/ru/web/api/htmlelement/innertext/index.html b/files/ru/web/api/htmlelement/innertext/index.html index ef23b48d59..cb530097c2 100644 --- a/files/ru/web/api/htmlelement/innertext/index.html +++ b/files/ru/web/api/htmlelement/innertext/index.html @@ -1,7 +1,8 @@ --- title: Node.innerText -slug: Web/API/Node/innerText +slug: Web/API/HTMLElement/innerText translation_of: Web/API/HTMLElement/innerText +original_slug: Web/API/Node/innerText ---
        {{APIRef("DOM")}}
        diff --git a/files/ru/web/api/htmlelement/transitionend_event/index.html b/files/ru/web/api/htmlelement/transitionend_event/index.html index dfb8542da6..898af024d0 100644 --- a/files/ru/web/api/htmlelement/transitionend_event/index.html +++ b/files/ru/web/api/htmlelement/transitionend_event/index.html @@ -1,9 +1,10 @@ --- title: transitionend -slug: Web/Events/transitionend +slug: Web/API/HTMLElement/transitionend_event tags: - CSS translation_of: Web/API/HTMLElement/transitionend_event +original_slug: Web/Events/transitionend ---

        Событие transitionend срабатывает, когда CSS transition закончил свое выполнение. В случае, когда анимация удаляется до ее завершения(например, если transition-property [en-US] удаляется), то событие не срабатывает.

        diff --git a/files/ru/web/api/htmlmediaelement/seeking_event/index.html b/files/ru/web/api/htmlmediaelement/seeking_event/index.html index 5802aecadb..145c72b01b 100644 --- a/files/ru/web/api/htmlmediaelement/seeking_event/index.html +++ b/files/ru/web/api/htmlmediaelement/seeking_event/index.html @@ -1,7 +1,8 @@ --- title: стримится -slug: Web/HTML/Element/video/seeking_event +slug: Web/API/HTMLMediaElement/seeking_event translation_of: Web/API/HTMLMediaElement/seeking_event +original_slug: Web/HTML/Element/video/seeking_event ---

        Событие 'seeking' в случае, когда идет подгрузка видео

        diff --git a/files/ru/web/api/htmlorforeignelement/dataset/index.html b/files/ru/web/api/htmlorforeignelement/dataset/index.html index 328b265afa..f69b78492a 100644 --- a/files/ru/web/api/htmlorforeignelement/dataset/index.html +++ b/files/ru/web/api/htmlorforeignelement/dataset/index.html @@ -1,7 +1,8 @@ --- title: HTMLElement.dataset -slug: Web/API/HTMLElement/dataset +slug: Web/API/HTMLOrForeignElement/dataset translation_of: Web/API/HTMLOrForeignElement/dataset +original_slug: Web/API/HTMLElement/dataset ---

        {{ APIRef("HTML DOM") }}

        diff --git a/files/ru/web/api/htmlorforeignelement/nonce/index.html b/files/ru/web/api/htmlorforeignelement/nonce/index.html index e47f3aea23..497dd8a6be 100644 --- a/files/ru/web/api/htmlorforeignelement/nonce/index.html +++ b/files/ru/web/api/htmlorforeignelement/nonce/index.html @@ -1,7 +1,8 @@ --- title: HTMLElement.nonce -slug: Web/API/HTMLElement/nonce +slug: Web/API/HTMLOrForeignElement/nonce translation_of: Web/API/HTMLOrForeignElement/nonce +original_slug: Web/API/HTMLElement/nonce ---

        {{SeeCompatTable}}{{APIRef("HTML DOM")}}

        diff --git a/files/ru/web/api/htmlorforeignelement/tabindex/index.html b/files/ru/web/api/htmlorforeignelement/tabindex/index.html index fe41116fe4..5844679d21 100644 --- a/files/ru/web/api/htmlorforeignelement/tabindex/index.html +++ b/files/ru/web/api/htmlorforeignelement/tabindex/index.html @@ -1,7 +1,8 @@ --- title: HTMLElement.tabIndex -slug: Web/API/HTMLElement/tabIndex +slug: Web/API/HTMLOrForeignElement/tabIndex translation_of: Web/API/HTMLOrForeignElement/tabIndex +original_slug: Web/API/HTMLElement/tabIndex ---
        {{ APIRef("HTML DOM") }}
        diff --git a/files/ru/web/api/mediatrackconstraints/echocancellation/index.html b/files/ru/web/api/mediatrackconstraints/echocancellation/index.html index 3e8d1f1a4e..060a3d8b05 100644 --- a/files/ru/web/api/mediatrackconstraints/echocancellation/index.html +++ b/files/ru/web/api/mediatrackconstraints/echocancellation/index.html @@ -1,6 +1,6 @@ --- title: MediaTrackConstraints.echoCancellation -slug: Web/API/MediaTrackConstraints/Эхоподавление +slug: Web/API/MediaTrackConstraints/echoCancellation tags: - API - Media Capture and Streams API @@ -13,6 +13,7 @@ tags: - Эхоподавление - справочник translation_of: Web/API/MediaTrackConstraints/echoCancellation +original_slug: Web/API/MediaTrackConstraints/Эхоподавление ---
        {{APIRef("Media Capture and Streams")}}
        diff --git a/files/ru/web/api/navigator/connection/index.html b/files/ru/web/api/navigator/connection/index.html index 607101a911..76f086052f 100644 --- a/files/ru/web/api/navigator/connection/index.html +++ b/files/ru/web/api/navigator/connection/index.html @@ -1,7 +1,8 @@ --- title: NetworkInformation.connection -slug: Web/API/NetworkInformation/connection +slug: Web/API/Navigator/connection translation_of: Web/API/Navigator/connection +original_slug: Web/API/NetworkInformation/connection ---

        {{ apiref("Network Information API") }}

        diff --git a/files/ru/web/api/node/replacechild/index.html b/files/ru/web/api/node/replacechild/index.html index 6d69392c57..c1959cc322 100644 --- a/files/ru/web/api/node/replacechild/index.html +++ b/files/ru/web/api/node/replacechild/index.html @@ -1,6 +1,6 @@ --- title: Node.replaceChild -slug: Web/API/Node.replaceChild +slug: Web/API/Node/replaceChild tags: - API - DOM @@ -9,6 +9,7 @@ tags: - Method - Node translation_of: Web/API/Node/replaceChild +original_slug: Web/API/Node.replaceChild ---
        {{ApiRef}}
        diff --git a/files/ru/web/api/nondocumenttypechildnode/nextelementsibling/index.html b/files/ru/web/api/nondocumenttypechildnode/nextelementsibling/index.html index 84c40445d8..1e8d05c4c2 100644 --- a/files/ru/web/api/nondocumenttypechildnode/nextelementsibling/index.html +++ b/files/ru/web/api/nondocumenttypechildnode/nextelementsibling/index.html @@ -1,7 +1,8 @@ --- title: NonDocumentTypeChildNode.nextElementSibling -slug: Web/API/NonDocumentTypeChildNode/NonDocumentTypeChildNode.nextElementSibling +slug: Web/API/NonDocumentTypeChildNode/nextElementSibling translation_of: Web/API/NonDocumentTypeChildNode/nextElementSibling +original_slug: Web/API/NonDocumentTypeChildNode/NonDocumentTypeChildNode.nextElementSibling ---
        {{APIRef("DOM")}}
        diff --git a/files/ru/web/api/notation/index.html b/files/ru/web/api/notation/index.html index a1f468a55d..d0343162fa 100644 --- a/files/ru/web/api/notation/index.html +++ b/files/ru/web/api/notation/index.html @@ -1,9 +1,10 @@ --- title: Нотация -slug: Web/API/Нотация +slug: Web/API/Notation tags: - Нотация translation_of: Web/API/Notation +original_slug: Web/API/Нотация ---
        {{APIRef("DOM")}}{{draft}}{{obsolete_header}}
        diff --git a/files/ru/web/api/page_visibility_api/index.html b/files/ru/web/api/page_visibility_api/index.html index 9b181e92d1..9fc21bfaba 100644 --- a/files/ru/web/api/page_visibility_api/index.html +++ b/files/ru/web/api/page_visibility_api/index.html @@ -1,6 +1,6 @@ --- title: Видимость страницы API -slug: Web/API/Видимость_страницы_API +slug: Web/API/Page_Visibility_API tags: - API - DOM @@ -8,6 +8,7 @@ tags: - Показать страницу - Скрыть страницу translation_of: Web/API/Page_Visibility_API +original_slug: Web/API/Видимость_страницы_API ---
        {{DefaultAPISidebar("Page Visibility API")}}
        diff --git a/files/ru/web/api/web_workers_api/using_web_workers/index.html b/files/ru/web/api/web_workers_api/using_web_workers/index.html index 7503eccacb..8fd2faebd3 100644 --- a/files/ru/web/api/web_workers_api/using_web_workers/index.html +++ b/files/ru/web/api/web_workers_api/using_web_workers/index.html @@ -1,10 +1,11 @@ --- title: Использование Web Workers -slug: DOM/Using_web_workers +slug: Web/API/Web_Workers_API/Using_web_workers tags: - воркер - поток translation_of: Web/API/Web_Workers_API/Using_web_workers +original_slug: DOM/Using_web_workers ---
        {{DefaultAPISidebar("Web Workers API")}}
        diff --git a/files/ru/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html b/files/ru/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html index b5abccbe14..298613d533 100644 --- a/files/ru/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html +++ b/files/ru/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html @@ -1,10 +1,11 @@ --- title: Создание 3D объектов с помощью WebGL -slug: Web/API/WebGL_API/Tutorial/Создание_3D_объектов_с_помощью_WebGL +slug: Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL tags: - WebGL - Урок translation_of: Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL +original_slug: Web/API/WebGL_API/Tutorial/Создание_3D_объектов_с_помощью_WebGL ---

        {{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL")}}

        diff --git a/files/ru/web/api/webrtc_api/connectivity/index.html b/files/ru/web/api/webrtc_api/connectivity/index.html index 7c4f173c05..375f486aaa 100644 --- a/files/ru/web/api/webrtc_api/connectivity/index.html +++ b/files/ru/web/api/webrtc_api/connectivity/index.html @@ -1,7 +1,8 @@ --- title: WebRTC подключение -slug: Web/API/WebRTC_API/связь +slug: Web/API/WebRTC_API/Connectivity translation_of: Web/API/WebRTC_API/Connectivity +original_slug: Web/API/WebRTC_API/связь ---

        {{WebRTCSidebar}}{{draft}}

        diff --git a/files/ru/web/api/webrtc_api/protocols/index.html b/files/ru/web/api/webrtc_api/protocols/index.html index df618ab083..5d2fab37d9 100644 --- a/files/ru/web/api/webrtc_api/protocols/index.html +++ b/files/ru/web/api/webrtc_api/protocols/index.html @@ -1,7 +1,8 @@ --- title: Введение в протоколы WebRTC -slug: Web/API/WebRTC_API/протоколы +slug: Web/API/WebRTC_API/Protocols translation_of: Web/API/WebRTC_API/Protocols +original_slug: Web/API/WebRTC_API/протоколы ---

        {{APIRef("WebRTC")}}{{draft}}

        diff --git a/files/ru/web/api/websockets_api/index.html b/files/ru/web/api/websockets_api/index.html index 8e6c614a0b..071d8b9a49 100644 --- a/files/ru/web/api/websockets_api/index.html +++ b/files/ru/web/api/websockets_api/index.html @@ -1,6 +1,6 @@ --- title: WebSockets -slug: WebSockets +slug: Web/API/WebSockets_API tags: - NeedsBrowserCompatibility - NeedsTranslation @@ -8,6 +8,7 @@ tags: - TopicStub - WebSockets translation_of: Web/API/WebSockets_API +original_slug: WebSockets ---

        Вебсокеты это продвинутая технология, позволяющая открыть постоянное двунаправленное сетевое соединение между браузером пользователя и сервером. С помощью его API вы можете отправить сообщение на сервер и получить ответ без выполнения http запроса, причем этот процесс будет событийно-управляемым.

        diff --git a/files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html b/files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html index 5eaca515c2..73c9a28e62 100644 --- a/files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html +++ b/files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html @@ -1,7 +1,8 @@ --- title: Написание клиентских приложений с помощью вебсокетов -slug: WebSockets/Writing_WebSocket_client_applications +slug: Web/API/WebSockets_API/Writing_WebSocket_client_applications translation_of: Web/API/WebSockets_API/Writing_WebSocket_client_applications +original_slug: WebSockets/Writing_WebSocket_client_applications ---

        {{ draft() }}

        diff --git a/files/ru/web/api/window/domcontentloaded_event/index.html b/files/ru/web/api/window/domcontentloaded_event/index.html index 7702dcfd24..8531476a12 100644 --- a/files/ru/web/api/window/domcontentloaded_event/index.html +++ b/files/ru/web/api/window/domcontentloaded_event/index.html @@ -1,9 +1,10 @@ --- title: DOMContentLoaded -slug: Web/Events/DOMContentLoaded +slug: Web/API/Window/DOMContentLoaded_event tags: - события translation_of: Web/API/Window/DOMContentLoaded_event +original_slug: Web/Events/DOMContentLoaded ---

        Событие DOMContentLoaded происходит когда весь HTML был полностью загружен и пройден парсером, не дожидаясь окончания загрузки таблиц стилей, изображений и фреймов. Значительно отличающееся от него событие load используется для отслеживания только полностью загруженной страницы. Широко распространённой ошибкой является использование load в ситуации когда DOMContentLoaded является более подходящим, будьте внимательны.

        diff --git a/files/ru/web/api/window/load_event/index.html b/files/ru/web/api/window/load_event/index.html index a8d456806d..1574cedf21 100644 --- a/files/ru/web/api/window/load_event/index.html +++ b/files/ru/web/api/window/load_event/index.html @@ -1,7 +1,8 @@ --- title: load -slug: Web/Events/load +slug: Web/API/Window/load_event translation_of: Web/API/Window/load_event +original_slug: Web/Events/load ---

        Событие load происходит когда ресурс и его зависимые ресурсы закончили загружаться.

        diff --git a/files/ru/web/api/window/requestanimationframe/index.html b/files/ru/web/api/window/requestanimationframe/index.html index d451cae62f..48d694a584 100644 --- a/files/ru/web/api/window/requestanimationframe/index.html +++ b/files/ru/web/api/window/requestanimationframe/index.html @@ -1,9 +1,10 @@ --- title: window.requestAnimationFrame() -slug: DOM/window.requestAnimationFrame +slug: Web/API/window/requestAnimationFrame tags: - Анимация translation_of: Web/API/window/requestAnimationFrame +original_slug: DOM/window.requestAnimationFrame ---
        {{APIRef}}
        diff --git a/files/ru/web/api/window/unhandledrejection_event/index.html b/files/ru/web/api/window/unhandledrejection_event/index.html index 5248e75748..c32838dc9c 100644 --- a/files/ru/web/api/window/unhandledrejection_event/index.html +++ b/files/ru/web/api/window/unhandledrejection_event/index.html @@ -1,7 +1,8 @@ --- title: unhandledrejection -slug: Web/Events/unhandledrejection +slug: Web/API/Window/unhandledrejection_event translation_of: Web/API/Window/unhandledrejection_event +original_slug: Web/Events/unhandledrejection ---

        Событие unhandledrejection происходит, когда {{jsxref("Promise")}} завершен с ошибкой, но на данную ошибку не установлен обработчик.

        diff --git a/files/ru/web/api/windoworworkerglobalscope/btoa/index.html b/files/ru/web/api/windoworworkerglobalscope/btoa/index.html index 06b76a6304..dd19e4cc27 100644 --- a/files/ru/web/api/windoworworkerglobalscope/btoa/index.html +++ b/files/ru/web/api/windoworworkerglobalscope/btoa/index.html @@ -1,7 +1,8 @@ --- title: WindowBase64.btoa() -slug: Web/API/WindowBase64/btoa +slug: Web/API/WindowOrWorkerGlobalScope/btoa translation_of: Web/API/WindowOrWorkerGlobalScope/btoa +original_slug: Web/API/WindowBase64/btoa ---
        {{APIRef("HTML DOM")}}
        diff --git a/files/ru/web/api/windoworworkerglobalscope/settimeout/index.html b/files/ru/web/api/windoworworkerglobalscope/settimeout/index.html index 9e39020215..8fb8144b50 100644 --- a/files/ru/web/api/windoworworkerglobalscope/settimeout/index.html +++ b/files/ru/web/api/windoworworkerglobalscope/settimeout/index.html @@ -1,7 +1,8 @@ --- title: WindowTimers.setTimeout() -slug: Web/API/WindowTimers/setTimeout +slug: Web/API/WindowOrWorkerGlobalScope/setTimeout translation_of: Web/API/WindowOrWorkerGlobalScope/setTimeout +original_slug: Web/API/WindowTimers/setTimeout ---
        {{ APIRef() }}
        diff --git a/files/ru/web/api/xmldocument/async/index.html b/files/ru/web/api/xmldocument/async/index.html index 2ff21f28af..73e02f4142 100644 --- a/files/ru/web/api/xmldocument/async/index.html +++ b/files/ru/web/api/xmldocument/async/index.html @@ -1,7 +1,8 @@ --- title: Document.async -slug: Web/API/Document/async +slug: Web/API/XMLDocument/async translation_of: Web/API/XMLDocument/async +original_slug: Web/API/Document/async ---

        {{APIRef("DOM")}}{{Deprecated_header}} {{Non-standard_header}}

        diff --git a/files/ru/web/api/xmlhttprequest/loadstart_event/index.html b/files/ru/web/api/xmlhttprequest/loadstart_event/index.html index b725b05b30..4065e0f968 100644 --- a/files/ru/web/api/xmlhttprequest/loadstart_event/index.html +++ b/files/ru/web/api/xmlhttprequest/loadstart_event/index.html @@ -1,7 +1,8 @@ --- title: loadstart -slug: Web/Events/loadstart +slug: Web/API/XMLHttpRequest/loadstart_event translation_of: Web/API/XMLHttpRequest/loadstart_event +original_slug: Web/Events/loadstart ---

        Событие loadstart происходит, когда начинается загрузка.

        diff --git a/files/ru/web/css/actual_value/index.html b/files/ru/web/css/actual_value/index.html index da6231da1f..10d233d98f 100644 --- a/files/ru/web/css/actual_value/index.html +++ b/files/ru/web/css/actual_value/index.html @@ -1,11 +1,12 @@ --- title: Действительное значение -slug: Web/CSS/Действительное_значение +slug: Web/CSS/actual_value tags: - CSS - Guide - Web translation_of: Web/CSS/actual_value +original_slug: Web/CSS/Действительное_значение ---

        {{CSSRef}}

        diff --git a/files/ru/web/css/comments/index.html b/files/ru/web/css/comments/index.html index 1db7dd50b5..cdc6eff0c0 100644 --- a/files/ru/web/css/comments/index.html +++ b/files/ru/web/css/comments/index.html @@ -1,6 +1,6 @@ --- title: Комментарии -slug: Web/CSS/Тихий +slug: Web/CSS/Comments tags: - Beginner - CSS @@ -9,6 +9,7 @@ tags: - Новичку - Руководство translation_of: Web/CSS/Comments +original_slug: Web/CSS/Тихий ---
        {{CSSRef}}
        diff --git a/files/ru/web/css/css_animations/using_css_animations/index.html b/files/ru/web/css/css_animations/using_css_animations/index.html index 05f6cb5cec..36aa62c5ac 100644 --- a/files/ru/web/css/css_animations/using_css_animations/index.html +++ b/files/ru/web/css/css_animations/using_css_animations/index.html @@ -1,6 +1,6 @@ --- title: Использование CSS-анимации -slug: Web/CSS/CSS_Animations/Ispolzovanie_CSS_animatciy +slug: Web/CSS/CSS_Animations/Using_CSS_animations tags: - Advanced - CSS @@ -9,6 +9,7 @@ tags: - Experimental - Guide translation_of: Web/CSS/CSS_Animations/Using_CSS_animations +original_slug: Web/CSS/CSS_Animations/Ispolzovanie_CSS_animatciy ---

        {{SeeCompatTable}}{{CSSRef}}

        diff --git a/files/ru/web/css/css_background_and_borders/border-radius_generator/index.html b/files/ru/web/css/css_background_and_borders/border-radius_generator/index.html index 71f94831f0..0dbb391c06 100644 --- a/files/ru/web/css/css_background_and_borders/border-radius_generator/index.html +++ b/files/ru/web/css/css_background_and_borders/border-radius_generator/index.html @@ -1,7 +1,8 @@ --- title: Border-radius генератор -slug: Web/CSS/CSS_Background_and_Borders/Border-radius_генератор +slug: Web/CSS/CSS_Background_and_Borders/Border-radius_generator translation_of: Web/CSS/CSS_Background_and_Borders/Border-radius_generator +original_slug: Web/CSS/CSS_Background_and_Borders/Border-radius_генератор ---

        С помощью этого инструмента вы можете создать CSS3 {{cssxref("border-radius")}} эффекты.

        diff --git a/files/ru/web/css/css_background_and_borders/box-shadow_generator/index.html b/files/ru/web/css/css_background_and_borders/box-shadow_generator/index.html index 3f46cf53ba..a26dbc165d 100644 --- a/files/ru/web/css/css_background_and_borders/box-shadow_generator/index.html +++ b/files/ru/web/css/css_background_and_borders/box-shadow_generator/index.html @@ -1,11 +1,12 @@ --- title: Генератор теней -slug: Web/CSS/CSS_Box_Model/Box-shadow_generator +slug: Web/CSS/CSS_Background_and_Borders/Box-shadow_generator tags: - CSS3 - Тень - инструменты translation_of: Web/CSS/CSS_Background_and_Borders/Box-shadow_generator +original_slug: Web/CSS/CSS_Box_Model/Box-shadow_generator ---

        Этот инструмент позволяет вам создавать CSS {{cssxref("box-shadow")}} эффекты, добавлять тени вашим элементам.

        diff --git a/files/ru/web/css/css_backgrounds_and_borders/index.html b/files/ru/web/css/css_backgrounds_and_borders/index.html index 59c2117194..3c843d9d45 100644 --- a/files/ru/web/css/css_backgrounds_and_borders/index.html +++ b/files/ru/web/css/css_backgrounds_and_borders/index.html @@ -1,6 +1,6 @@ --- title: CSS Background and Borders -slug: Web/CSS/CSS_Background_and_Borders +slug: Web/CSS/CSS_Backgrounds_and_Borders tags: - CSS - CSS Backgrounds and Borders @@ -10,6 +10,7 @@ tags: - TopicStub translation_of: Web/CSS/CSS_Backgrounds_and_Borders translation_of_original: Web/CSS/CSS_Background_and_Borders +original_slug: Web/CSS/CSS_Background_and_Borders ---

        {{CSSRef}}

        diff --git a/files/ru/web/css/css_backgrounds_and_borders/using_multiple_backgrounds/index.html b/files/ru/web/css/css_backgrounds_and_borders/using_multiple_backgrounds/index.html index 231c794702..dc2ba0d32f 100644 --- a/files/ru/web/css/css_backgrounds_and_borders/using_multiple_backgrounds/index.html +++ b/files/ru/web/css/css_backgrounds_and_borders/using_multiple_backgrounds/index.html @@ -1,8 +1,9 @@ --- title: Множественные фоны -slug: Web/CSS/CSS_Background_and_Borders/Множественные_фоны +slug: Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds translation_of: Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds translation_of_original: Web/CSS/CSS_Background_and_Borders/Using_CSS_multiple_backgrounds +original_slug: Web/CSS/CSS_Background_and_Borders/Множественные_фоны ---

        {{CSSRef}}

        diff --git a/files/ru/web/css/css_basic_user_interface/using_url_values_for_the_cursor_property/index.html b/files/ru/web/css/css_basic_user_interface/using_url_values_for_the_cursor_property/index.html index c629b7bffd..9b133d5a73 100644 --- a/files/ru/web/css/css_basic_user_interface/using_url_values_for_the_cursor_property/index.html +++ b/files/ru/web/css/css_basic_user_interface/using_url_values_for_the_cursor_property/index.html @@ -1,13 +1,14 @@ --- title: Использование URL значений для свойства cursor -slug: >- - Web/CSS/CSS_Basic_User_Interface/Использование_URL_значений_для_свойства_cursor +slug: Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property tags: - CSS - Gecko - Справка - справочник translation_of: Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property +original_slug: >- + Web/CSS/CSS_Basic_User_Interface/Использование_URL_значений_для_свойства_cursor ---
        {{cssref}}
        diff --git a/files/ru/web/css/css_box_model/introduction_to_the_css_box_model/index.html b/files/ru/web/css/css_box_model/introduction_to_the_css_box_model/index.html index 6868871c5a..1ad4642062 100644 --- a/files/ru/web/css/css_box_model/introduction_to_the_css_box_model/index.html +++ b/files/ru/web/css/css_box_model/introduction_to_the_css_box_model/index.html @@ -1,11 +1,12 @@ --- -title: 'Блоковая модель (боксовая модель, box model)' -slug: Web/CSS/box_model +title: Блоковая модель (боксовая модель, box model) +slug: Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model tags: - CSS - Guide - Веб translation_of: Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model +original_slug: Web/CSS/box_model ---

        Описание

        diff --git a/files/ru/web/css/css_color/index.html b/files/ru/web/css/css_color/index.html index c6225aec39..18417802f5 100644 --- a/files/ru/web/css/css_color/index.html +++ b/files/ru/web/css/css_color/index.html @@ -1,12 +1,13 @@ --- title: CSS Colors -slug: Web/CSS/CSS_Colors +slug: Web/CSS/CSS_Color tags: - CSS - Цвета - Цвета в CSS translation_of: Web/CSS/CSS_Color translation_of_original: Web/CSS/CSS_Colors +original_slug: Web/CSS/CSS_Colors ---
        {{CSSRef}}
        diff --git a/files/ru/web/css/css_columns/using_multi-column_layouts/index.html b/files/ru/web/css/css_columns/using_multi-column_layouts/index.html index 65e96fcdcf..f9fb1c78d5 100644 --- a/files/ru/web/css/css_columns/using_multi-column_layouts/index.html +++ b/files/ru/web/css/css_columns/using_multi-column_layouts/index.html @@ -1,7 +1,8 @@ --- title: Использование CSS разметки для многих колонок -slug: Web/Guide/CSS/Using_multi-column_layouts +slug: Web/CSS/CSS_Columns/Using_multi-column_layouts translation_of: Web/CSS/CSS_Columns/Using_multi-column_layouts +original_slug: Web/Guide/CSS/Using_multi-column_layouts ---

        {{CSSRef("CSS Multi-columns")}}

        diff --git a/files/ru/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/index.html b/files/ru/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/index.html index 9fe0b2932f..e28dc11693 100644 --- a/files/ru/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/index.html +++ b/files/ru/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/index.html @@ -1,7 +1,8 @@ --- title: Выравнивание элементов во Flex контейнере -slug: Web/CSS/CSS_Flexible_Box_Layout/Выравнивание_элементов_в_Flex_контейнере +slug: Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container translation_of: Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container +original_slug: Web/CSS/CSS_Flexible_Box_Layout/Выравнивание_элементов_в_Flex_контейнере ---

        {{CSSRef}}

        diff --git a/files/ru/web/css/css_flexible_box_layout/controlling_ratios_of_flex_items_along_the_main_ax/index.html b/files/ru/web/css/css_flexible_box_layout/controlling_ratios_of_flex_items_along_the_main_ax/index.html index 97e521c2e1..7f0dc50bf1 100644 --- a/files/ru/web/css/css_flexible_box_layout/controlling_ratios_of_flex_items_along_the_main_ax/index.html +++ b/files/ru/web/css/css_flexible_box_layout/controlling_ratios_of_flex_items_along_the_main_ax/index.html @@ -1,9 +1,11 @@ --- title: Управление соотношением элементов вдоль главной оси slug: >- - Web/CSS/CSS_Flexible_Box_Layout/Контролирование_соотношения_элементов_вдоль_главной_оси + Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax translation_of: >- Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax +original_slug: >- + Web/CSS/CSS_Flexible_Box_Layout/Контролирование_соотношения_элементов_вдоль_главной_оси ---
        {{CSSRef}}
        diff --git a/files/ru/web/css/css_flow_layout/block_and_inline_layout_in_normal_flow/index.html b/files/ru/web/css/css_flow_layout/block_and_inline_layout_in_normal_flow/index.html index 86879d343e..48b0353176 100644 --- a/files/ru/web/css/css_flow_layout/block_and_inline_layout_in_normal_flow/index.html +++ b/files/ru/web/css/css_flow_layout/block_and_inline_layout_in_normal_flow/index.html @@ -1,6 +1,6 @@ --- title: Блочное и строчное расположение в нормальном потоке -slug: Web/CSS/CSS_Flow_Layout/Блочное_и_строчное_размещение_в_нормальном_потоке +slug: Web/CSS/CSS_Flow_Layout/Block_and_Inline_Layout_in_Normal_Flow tags: - CSS - Макет @@ -10,6 +10,7 @@ tags: - Средний уровень - поток translation_of: Web/CSS/CSS_Flow_Layout/Block_and_Inline_Layout_in_Normal_Flow +original_slug: Web/CSS/CSS_Flow_Layout/Блочное_и_строчное_размещение_в_нормальном_потоке ---
        {{CSSRef}}
        diff --git a/files/ru/web/css/css_flow_layout/intro_to_formatting_contexts/index.html b/files/ru/web/css/css_flow_layout/intro_to_formatting_contexts/index.html index c027e8eb3b..aed2f568ec 100644 --- a/files/ru/web/css/css_flow_layout/intro_to_formatting_contexts/index.html +++ b/files/ru/web/css/css_flow_layout/intro_to_formatting_contexts/index.html @@ -1,7 +1,8 @@ --- title: Введение в контексты форматирования -slug: Web/CSS/CSS_Flow_Layout/Введение_в_контексты_форматирования +slug: Web/CSS/CSS_Flow_Layout/Intro_to_formatting_contexts translation_of: Web/CSS/CSS_Flow_Layout/Intro_to_formatting_contexts +original_slug: Web/CSS/CSS_Flow_Layout/Введение_в_контексты_форматирования ---
        {{CSSRef}}
        diff --git a/files/ru/web/css/css_grid_layout/css_grid_logical_values_and_writing_modes/index.html b/files/ru/web/css/css_grid_layout/css_grid_logical_values_and_writing_modes/index.html index 48eec35abe..a481d519ad 100644 --- a/files/ru/web/css/css_grid_layout/css_grid_logical_values_and_writing_modes/index.html +++ b/files/ru/web/css/css_grid_layout/css_grid_logical_values_and_writing_modes/index.html @@ -1,7 +1,8 @@ --- -title: 'CSS grids, logical values and writing modes' -slug: 'Web/CSS/CSS_Grid_Layout/CSS_Grid,_Logical_Values_and_Writing_Modes' -translation_of: 'Web/CSS/CSS_Grid_Layout/CSS_Grid,_Logical_Values_and_Writing_Modes' +title: CSS grids, logical values and writing modes +slug: Web/CSS/CSS_Grid_Layout/CSS_Grid_Logical_Values_and_Writing_Modes +translation_of: Web/CSS/CSS_Grid_Layout/CSS_Grid,_Logical_Values_and_Writing_Modes +original_slug: Web/CSS/CSS_Grid_Layout/CSS_Grid,_Logical_Values_and_Writing_Modes ---

        В этих руководствах я уже затронул важную особенность grid layout: поддержка различных режимов записи, встроенных в спецификацию. В этом руководстве мы рассмотрим эту особенность grid и других современных методов компоновки, немного узнав о режимах записи и логических и физических свойствах, когда мы это делаем.

        diff --git a/files/ru/web/css/css_grid_layout/grid_template_areas/index.html b/files/ru/web/css/css_grid_layout/grid_template_areas/index.html index 6d2d3b6892..87da484318 100644 --- a/files/ru/web/css/css_grid_layout/grid_template_areas/index.html +++ b/files/ru/web/css/css_grid_layout/grid_template_areas/index.html @@ -1,7 +1,8 @@ --- title: Шаблоны грид-областей -slug: Web/CSS/CSS_Grid_Layout/Грид-области +slug: Web/CSS/CSS_Grid_Layout/Grid_Template_Areas translation_of: Web/CSS/CSS_Grid_Layout/Grid_Template_Areas +original_slug: Web/CSS/CSS_Grid_Layout/Грид-области ---

        В предыдущем обзоре мы рассмотрели грид-линии и то, как с их помощью размещать элементы в гридах. Когда Вы работаете с CSS Grid Layout, у Вас всегда есть грид-линии, поэтому они - быстрый, прямой и надежный способ расположить элементы. Как бы то ни было, существует альтернативный метод, и этот метод можно использовать как в одиночку, так и в сочетании с расположением элементов по грид-линиям. В этом методе элементы располагаются с помощью именнованных, заранее определенных грид-областей. Давайте рассмотрим, как он работает, и Вы скоро поймете, почему его называют методом ascii-искусства в концепции макетов на гридах!

        diff --git a/files/ru/web/css/css_grid_layout/line-based_placement_with_css_grid/index.html b/files/ru/web/css/css_grid_layout/line-based_placement_with_css_grid/index.html index e470a72ce7..be2ecaee2e 100644 --- a/files/ru/web/css/css_grid_layout/line-based_placement_with_css_grid/index.html +++ b/files/ru/web/css/css_grid_layout/line-based_placement_with_css_grid/index.html @@ -1,7 +1,6 @@ --- title: Расположение элементов по грид-линиям с помощью CSS Grid -slug: >- - Web/CSS/CSS_Grid_Layout/Расположение_элементов_по_грид-линиям_с_помощью_CSS_Grid +slug: Web/CSS/CSS_Grid_Layout/Line-based_Placement_with_CSS_Grid tags: - CSS - CSS Grid @@ -9,6 +8,8 @@ tags: - Руководство - Сетка translation_of: Web/CSS/CSS_Grid_Layout/Line-based_Placement_with_CSS_Grid +original_slug: >- + Web/CSS/CSS_Grid_Layout/Расположение_элементов_по_грид-линиям_с_помощью_CSS_Grid ---

        В статье, касавшейся основных понятий позиционирования элементов с помощью гридов, мы кратенько рассмотрели, как располагать элементы в гриде, используя номера линий. Теперь давайте детально исследуем то, как работает эта фундаментальная часть спецификации.

        diff --git a/files/ru/web/css/css_positioning/understanding_z_index/adding_z-index/index.html b/files/ru/web/css/css_positioning/understanding_z_index/adding_z-index/index.html index 2fff1726d3..4f041d515f 100644 --- a/files/ru/web/css/css_positioning/understanding_z_index/adding_z-index/index.html +++ b/files/ru/web/css/css_positioning/understanding_z_index/adding_z-index/index.html @@ -1,7 +1,8 @@ --- title: Using z-index -slug: Web/Guide/CSS/Understanding_z_index/Adding_z-index +slug: Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index translation_of: Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index +original_slug: Web/Guide/CSS/Understanding_z_index/Adding_z-index ---
        {{cssref}}
        diff --git a/files/ru/web/css/css_positioning/understanding_z_index/index.html b/files/ru/web/css/css_positioning/understanding_z_index/index.html index 0074ff2577..8d5d965a23 100644 --- a/files/ru/web/css/css_positioning/understanding_z_index/index.html +++ b/files/ru/web/css/css_positioning/understanding_z_index/index.html @@ -1,6 +1,6 @@ --- title: Понимание CSS z-index -slug: Web/Guide/CSS/Understanding_z_index +slug: Web/CSS/CSS_Positioning/Understanding_z_index tags: - Advanced - CSS @@ -11,6 +11,7 @@ tags: - Web - z-index translation_of: Web/CSS/CSS_Positioning/Understanding_z_index +original_slug: Web/Guide/CSS/Understanding_z_index ---

        Обычно HTML страницы можно считать двухмерными, потому что текст, картинки и другие элементы расположены на странице без перекрытия. Существует единый нормальный поток отрисовки (rendering flow) и элементы избегают пространства, занятого другими.{{cssxref("z-index")}} атрибут позволяет регулировать порядок наложения объектов друг на друга в процессе отрисовки контента (rendering content).

        diff --git a/files/ru/web/css/css_positioning/understanding_z_index/stacking_without_z-index/index.html b/files/ru/web/css/css_positioning/understanding_z_index/stacking_without_z-index/index.html index 7f4eb09133..4ed7e1686d 100644 --- a/files/ru/web/css/css_positioning/understanding_z_index/stacking_without_z-index/index.html +++ b/files/ru/web/css/css_positioning/understanding_z_index/stacking_without_z-index/index.html @@ -1,10 +1,11 @@ --- title: Stacking without z-index -slug: Web/Guide/CSS/Understanding_z_index/Stacking_without_z-index +slug: Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_without_z-index tags: - CSS - z-index translation_of: Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_without_z-index +original_slug: Web/Guide/CSS/Understanding_z_index/Stacking_without_z-index ---

        « CSS « Понимание CSS z-index

        diff --git a/files/ru/web/css/css_selectors/index.html b/files/ru/web/css/css_selectors/index.html index 8745681718..f3c8f7dfa7 100644 --- a/files/ru/web/css/css_selectors/index.html +++ b/files/ru/web/css/css_selectors/index.html @@ -1,11 +1,12 @@ --- title: CSS-селекторы -slug: Web/CSS/CSS_Селекторы +slug: Web/CSS/CSS_Selectors tags: - CSS - Обзор - Селекторы translation_of: Web/CSS/CSS_Selectors +original_slug: Web/CSS/CSS_Селекторы ---
        {{CSSRef}}
        diff --git a/files/ru/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.html b/files/ru/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.html index f737d2cb6d..456e350fad 100644 --- a/files/ru/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.html +++ b/files/ru/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.html @@ -1,7 +1,8 @@ --- -title: 'Использование псевдокласса :target в селекторах' -slug: 'Web/CSS/CSS_Селекторы/Using_the_:target_pseudo-class_in_selectors' -translation_of: 'Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors' +title: Использование псевдокласса :target в селекторах +slug: Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors +translation_of: Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors +original_slug: Web/CSS/CSS_Селекторы/Using_the_:target_pseudo-class_in_selectors ---
        {{CSSRef}}
        diff --git a/files/ru/web/css/layout_mode/index.html b/files/ru/web/css/layout_mode/index.html index dcf1440cb5..eed469409b 100644 --- a/files/ru/web/css/layout_mode/index.html +++ b/files/ru/web/css/layout_mode/index.html @@ -1,9 +1,10 @@ --- title: Способ разметки -slug: Web/CSS/Способ_расположения +slug: Web/CSS/Layout_mode tags: - CSS translation_of: Web/CSS/Layout_mode +original_slug: Web/CSS/Способ_расположения ---

        CSS способ разметки (или раскладки, или англ. layout) — это алгоритм определения позиции и размеров блоков, основанный на способе, которым они взаимодействуют с родственными блоками. Существует несколько типов разметки:

        diff --git a/files/ru/web/css/length/index.html b/files/ru/web/css/length/index.html index 4fd88f8cc2..287959e343 100644 --- a/files/ru/web/css/length/index.html +++ b/files/ru/web/css/length/index.html @@ -1,6 +1,6 @@ --- title: -slug: Web/CSS/размер +slug: Web/CSS/length tags: - CSS - CSS Тип Данных @@ -8,6 +8,7 @@ tags: - Разметка - длина translation_of: Web/CSS/length +original_slug: Web/CSS/размер ---
        {{CSSRef}}
        diff --git a/files/ru/web/css/media_queries/testing_media_queries/index.html b/files/ru/web/css/media_queries/testing_media_queries/index.html index 878621ebd3..d7f3f0cb76 100644 --- a/files/ru/web/css/media_queries/testing_media_queries/index.html +++ b/files/ru/web/css/media_queries/testing_media_queries/index.html @@ -1,10 +1,11 @@ --- title: Тестирование медиа-запросов программно -slug: Web/CSS/Media_Queries/Тестирование_медиа_запросы +slug: Web/CSS/Media_Queries/Testing_media_queries tags: - Запросы - медиа-запросы translation_of: Web/CSS/Media_Queries/Testing_media_queries +original_slug: Web/CSS/Media_Queries/Тестирование_медиа_запросы ---
        {{cssref}}
        diff --git a/files/ru/web/css/pseudo-classes/index.html b/files/ru/web/css/pseudo-classes/index.html index 2c280be32b..1b27fa85c5 100644 --- a/files/ru/web/css/pseudo-classes/index.html +++ b/files/ru/web/css/pseudo-classes/index.html @@ -1,12 +1,13 @@ --- title: Псевдоклассы -slug: Web/CSS/Псевдо-классы +slug: Web/CSS/Pseudo-classes tags: - CSS - Reference - Псевдоклассы - Селекторы translation_of: Web/CSS/Pseudo-classes +original_slug: Web/CSS/Псевдо-классы ---
        {{CSSRef}}
        diff --git a/files/ru/web/css/replaced_element/index.html b/files/ru/web/css/replaced_element/index.html index a252cbad33..d06bd6b9b9 100644 --- a/files/ru/web/css/replaced_element/index.html +++ b/files/ru/web/css/replaced_element/index.html @@ -1,11 +1,12 @@ --- title: Замещаемый элемент -slug: Web/CSS/Замещаемый_элемент +slug: Web/CSS/Replaced_element tags: - CSS - Reference - замещаемый элемент translation_of: Web/CSS/Replaced_element +original_slug: Web/CSS/Замещаемый_элемент ---
        {{CSSRef}}
        diff --git a/files/ru/web/css/specified_value/index.html b/files/ru/web/css/specified_value/index.html index 4f143afb74..7cc26d6db9 100644 --- a/files/ru/web/css/specified_value/index.html +++ b/files/ru/web/css/specified_value/index.html @@ -1,10 +1,11 @@ --- title: Указанное значение -slug: Web/CSS/Указанное_значение +slug: Web/CSS/specified_value tags: - CSS - CSS Reference translation_of: Web/CSS/specified_value +original_slug: Web/CSS/Указанное_значение ---

        {{CSSRef}}

        diff --git a/files/ru/web/css/syntax/index.html b/files/ru/web/css/syntax/index.html index 1adfb2fb04..d2db52f659 100644 --- a/files/ru/web/css/syntax/index.html +++ b/files/ru/web/css/syntax/index.html @@ -1,7 +1,8 @@ --- title: Синтаксис -slug: Web/CSS/Синтаксис +slug: Web/CSS/Syntax translation_of: Web/CSS/Syntax +original_slug: Web/CSS/Синтаксис ---
        {{cssref}}
        diff --git a/files/ru/web/css/visual_formatting_model/index.html b/files/ru/web/css/visual_formatting_model/index.html index 7a5de35909..b7cc6050f3 100644 --- a/files/ru/web/css/visual_formatting_model/index.html +++ b/files/ru/web/css/visual_formatting_model/index.html @@ -1,7 +1,8 @@ --- title: Модель визуального форматирования -slug: Web/Guide/CSS/Visual_formatting_model +slug: Web/CSS/Visual_formatting_model translation_of: Web/CSS/Visual_formatting_model +original_slug: Web/Guide/CSS/Visual_formatting_model ---

        {{CSSRef}}

        diff --git a/files/ru/web/guide/ajax/getting_started/index.html b/files/ru/web/guide/ajax/getting_started/index.html index e06b408228..ab99a986ce 100644 --- a/files/ru/web/guide/ajax/getting_started/index.html +++ b/files/ru/web/guide/ajax/getting_started/index.html @@ -1,9 +1,10 @@ --- title: С чего начать -slug: Web/Guide/AJAX/С_чего_начать +slug: Web/Guide/AJAX/Getting_Started tags: - AJAX translation_of: Web/Guide/AJAX/Getting_Started +original_slug: Web/Guide/AJAX/С_чего_начать ---

         

        diff --git a/files/ru/web/guide/events/creating_and_triggering_events/index.html b/files/ru/web/guide/events/creating_and_triggering_events/index.html index 9e7a8f099b..f766a93097 100644 --- a/files/ru/web/guide/events/creating_and_triggering_events/index.html +++ b/files/ru/web/guide/events/creating_and_triggering_events/index.html @@ -1,12 +1,13 @@ --- title: Создание и вызов событий -slug: Web/Guide/Events/Создание_и_вызов_событий +slug: Web/Guide/Events/Creating_and_triggering_events tags: - DOM - JavaScript - events - события translation_of: Web/Guide/Events/Creating_and_triggering_events +original_slug: Web/Guide/Events/Создание_и_вызов_событий ---

        Эта статья демонстрирует, как создавать и вызывать пользовательские DOM-события. Такие события часто называют исскуственными событиями, по отношению к событиям, производимым браузером.

        diff --git a/files/ru/web/guide/graphics/index.html b/files/ru/web/guide/graphics/index.html index 57dd4238e1..600c9cd4dd 100644 --- a/files/ru/web/guide/graphics/index.html +++ b/files/ru/web/guide/graphics/index.html @@ -1,7 +1,8 @@ --- title: Графика для Web -slug: Web/Guide/Графика +slug: Web/Guide/Graphics translation_of: Web/Guide/Graphics +original_slug: Web/Guide/Графика ---

        Современным веб-сайтам и веб-приложениям часто требуется отображать графику. Статические изображения легко отобразить с помощью элемента {{HTMLElement("img")}}, или с помощью CSS свойства  {{cssxref("background-image")}}. Часто требуется создавать графику на лету, или модифицировать ее каким-либо образом после. Как это проделать можно узнать в следующих статьях.

        diff --git a/files/ru/web/guide/html/html5/constraint_validation/index.html b/files/ru/web/guide/html/html5/constraint_validation/index.html index 5a5fccec8c..cad42baedb 100644 --- a/files/ru/web/guide/html/html5/constraint_validation/index.html +++ b/files/ru/web/guide/html/html5/constraint_validation/index.html @@ -1,9 +1,10 @@ --- title: Constraint validation -slug: HTML/HTML5/Constraint_validation +slug: Web/Guide/HTML/HTML5/Constraint_validation tags: - Селекторы translation_of: Web/Guide/HTML/HTML5/Constraint_validation +original_slug: HTML/HTML5/Constraint_validation ---

        Создание веб форм всегда было комплексной задачей. В то время как сама по себе разметка формы - задача не сложная, проверка каждого поля на валидность - сложнее, а информирование юзера о проблеме - может стать головной болью. Стандарт HTML5 предоставил новые механизмы для форм: были добавлены новые семантические типы для элемента {{ HTMLElement("input") }} и обязательная валидация, чтобы облегчить работу по проверке содержимого формы на стороне браузера. Проще говоря, обычная проверка может быть выполнена без JavaScript, простой установкой новых аттрибутов; более сложные ограничения могут быть реализованы через HTML5 Constraint Validation API.

        diff --git a/files/ru/web/guide/html/html5/index.html b/files/ru/web/guide/html/html5/index.html index dca2e39993..a090f00d95 100644 --- a/files/ru/web/guide/html/html5/index.html +++ b/files/ru/web/guide/html/html5/index.html @@ -1,9 +1,10 @@ --- title: HTML5 -slug: HTML/HTML5 +slug: Web/Guide/HTML/HTML5 tags: - HTML5 translation_of: Web/Guide/HTML/HTML5 +original_slug: HTML/HTML5 ---

        HTML5 — последняя версия стандарта HTML. Термин имеет два определения:

        diff --git a/files/ru/web/guide/html/html5/introduction_to_html5/index.html b/files/ru/web/guide/html/html5/introduction_to_html5/index.html index 28b8138f0e..64b43c9b8a 100644 --- a/files/ru/web/guide/html/html5/introduction_to_html5/index.html +++ b/files/ru/web/guide/html/html5/introduction_to_html5/index.html @@ -1,11 +1,12 @@ --- title: Введение в HTML5 -slug: HTML/HTML5/Введение_в_HTML5 +slug: Web/Guide/HTML/HTML5/Introduction_to_HTML5 tags: - DOCTYPE - HTML5 - HTML5 парсер translation_of: Web/Guide/HTML/HTML5/Introduction_to_HTML5 +original_slug: HTML/HTML5/Введение_в_HTML5 ---

        HTML5 - пятая редакция и самая новая версия стандарта HTML. Она предлагает новые возможности, которые предоставляют не только богатую поддержку медиа, но и также расширяет возможности для создания веб-приложений, которые могут взаимодействовать с пользователем, его локальными данными, и серверами проще и эффективнее, чем это было раньше.

        Because HTML5 is still being developed, changes to the specifications are inevitable. Therefore, not all of its features are supported by all browsers yet. However, Gecko, and by extension, Firefox, has very good initial support for HTML5, and work continues toward supporting more of its features. Gecko began supporting some HTML5 features in version 1.8.1. You can find a list of all of the HTML5 features that Gecko currently supports on the main HTML5 page. For detailed information about multiple browsers' support of HTML5 features, refer to the CanIUse website.

        diff --git a/files/ru/web/guide/html/using_html_sections_and_outlines/index.html b/files/ru/web/guide/html/using_html_sections_and_outlines/index.html index a6236d9c24..5bd0fa3f9d 100644 --- a/files/ru/web/guide/html/using_html_sections_and_outlines/index.html +++ b/files/ru/web/guide/html/using_html_sections_and_outlines/index.html @@ -1,6 +1,6 @@ --- title: Использование разделов и создание структуры HTML документа -slug: Web/Guide/HTML/Sections_and_Outlines_of_an_HTML5_document +slug: Web/Guide/HTML/Using_HTML_sections_and_outlines tags: - HTML5 - Веб @@ -11,6 +11,7 @@ tags: - Руководство - Структура translation_of: Web/Guide/HTML/Using_HTML_sections_and_outlines +original_slug: Web/Guide/HTML/Sections_and_Outlines_of_an_HTML5_document ---

        Важно: В настоящее время нет известных реализаций алгоритма построения структуры документа в графических браузерах или пользовательских приложениях, использующих реабилитационные технологии, хотя такой алгоритм внедрен в другие приложения, например, в средствах проверки соответствия спецификации. Поэтому алгоритм построения структуры нельзя использовать для передачи структуры документа пользователям. Авторы рекомендуют использовать для этой цели степень важности заголовков (h1-h6).

        diff --git a/files/ru/web/guide/performance/index.html b/files/ru/web/guide/performance/index.html index 8b1d2760da..e87f08135a 100644 --- a/files/ru/web/guide/performance/index.html +++ b/files/ru/web/guide/performance/index.html @@ -1,10 +1,11 @@ --- title: Оптимизация и производительность -slug: Web/Guide/Производительность +slug: Web/Guide/Performance tags: - Оптимизация - Производительность translation_of: Web/Guide/Performance +original_slug: Web/Guide/Производительность ---

        Создаваемые Вами современные веб-приложения и сайты должны иметь хорошую производительность - работать быстро и эффективно, как на персональных компьютерах (десктоп), так и на менее мощных мобильных устройствах. Существуют различные инструменты для тестирования сайтов на производительность. Самые известные из них:

        diff --git a/files/ru/web/html/attributes/crossorigin/index.html b/files/ru/web/html/attributes/crossorigin/index.html index 686989bb0c..b0b744eb5d 100644 --- a/files/ru/web/html/attributes/crossorigin/index.html +++ b/files/ru/web/html/attributes/crossorigin/index.html @@ -1,7 +1,8 @@ --- title: CORS settings attributes -slug: Web/HTML/CORS_settings_attributes +slug: Web/HTML/Attributes/crossorigin translation_of: Web/HTML/Attributes/crossorigin +original_slug: Web/HTML/CORS_settings_attributes ---

        В HTML5 некоторые теги поддерживают CORS, например {{ HTMLElement("img") }} или {{ HTMLElement("video") }}, имеют атрибут crossorigin (crossOrigin свойство), которое позволяет настроить CORS запросы для данных получаемых элементом. Эти атрибуты могут иметь следующие значения:

        diff --git a/files/ru/web/html/element/button/index.html b/files/ru/web/html/element/button/index.html index ec13035e29..813ab839f3 100644 --- a/files/ru/web/html/element/button/index.html +++ b/files/ru/web/html/element/button/index.html @@ -1,6 +1,6 @@ --- title:

Разделы документации

Введение в веб-разработку
Руководство, обучающее разработке для веб.
HTML
HyperText Markup Language — основной язык, используемый для создания веб-страниц и других документов, пригодных для просмотра в браузере.
JavaScript
JavaScript — наиболее широко используемый для разработки веб-приложений скриптовый язык; он также используется и при разработке программного обеспечения основанного на Mozilla.
CSS
Cascading Style Sheets — таблицы стилей позволяющие создать make it possible to do advanced layout and page design on the Web.
AJAX
Asynchronous JavaScript and XML — не столько технология, сколько подход к сочетанию имеющихся технологий; JavaScript и другие современные веб-технологии используются совместно при создании динамических веб-приложений.
Веб-стандарты
Learn how to make your Web site or application reach the largest number of users through compatibility with the open Web.
DOM
Document Object Model — API для HTML- и XML-документов, providing a structural representation of the document that you can modify in order to alter its visual presentation.
XHTML
Extensible HyperText Markup Language is an XML-based HTML-like language that offers a stricter syntax than HTML.
SVG
Scalable Vector Graphics — язык разметки, основанный на XML, для описания двухмерной векторной графики.
Mozilla Web developer FAQ
Наиболее часто задаваемые веб-разработчиками вопросы. С ответами!

View All...

Сообщество

Инструменты