Skip to content

Commit 6bf5977

Browse files
committed
fixes
1 parent 204d965 commit 6bf5977

File tree

7 files changed

+17
-11
lines changed

7 files changed

+17
-11
lines changed

1-js/6-objects-more/4-descriptors-getters-setters/1-replace-property-getter/task.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@ vasya.lastName = 'Сидоров';
2929
alert( vasya.fullName ); // Василий Сидоров
3030
```
3131

32-
Важно: не рекомендуется дублировать одни и те же данные в различных свойствах. Поэтому в этой задаче `fullName` должно остаться свойством, а `firstName/lastName` -- реализованы через `get/set`.
32+
Важно: в этой задаче `fullName` должно остаться свойством, а `firstName/lastName` -- реализованы через `get/set`. Лишнее дублирование здесь ни к чему.

1-js/6-objects-more/4-descriptors-getters-setters/article.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
Основной метод для управления свойствами -- [Object.defineProperty](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty).
1111

12-
Он позволяет как просто объявить свойство объекта, так и тонко настроить его особые аспекты, которые никак иначе не изменить.
12+
Он позволяет объявить свойство объекта и, что самое главное, тонко настроить его особые аспекты, которые никак иначе не изменить.
1313

1414
Синтаксис:
1515

@@ -24,7 +24,9 @@ Object.defineProperty(obj, prop, descriptor)
2424
<dt>`prop`</dt>
2525
<dd>Имя свойства, которое нужно объявить или модифицировать.</dd>
2626
<dt>`descriptor`</dt>
27-
<dd>Дескриптор -- объект, который описывает поведение свойства. В нём могут быть следующие поля:
27+
<dd>Дескриптор -- объект, который описывает поведение свойства.
28+
29+
В нём могут быть следующие поля:
2830

2931
<ul>
3032
<li>`value` -- значение свойства, по умолчанию `undefined`</li>

2-ui/4-forms-controls/3-events-change/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@
208208
</tr>
209209
<tr>
210210
<td>`cut/copy/paste`</td>
211-
<td>Срабатывают при вставке/копировании/удалении текста. В них можно отменить действие браузера, и тогда вставке/копирования/удаления не произойдёт.</td>
211+
<td>Срабатывают при вставке/копировании/удалении текста. Если в их обработчиках отменить действие браузера, то вставки/копирования/удаления не произойдёт.</td>
212212
<td>Вставляемое значение получить нельзя: на момент срабатывания события в элементе всё ещё *старое* значение, а новое недоступно.</td>
213213
</tr>
214214
</tbody>

4-ajax/12-ajax-iframe/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ function postToIframe(url, data, target) {
211211
<li>В любых, даже самых старых IE, можно обмениваться данными через `window.name`. Эта переменная хранит "имя" окна или фрейма, которое не меняется при перезагрузке страницы.
212212

213213
Поэтому если мы сделали `POST` в `<iframe>` на другой домен и он поставил `window.name = "Вася"`, а затем сделал редирект на основной домен, то эти данные станут доступны внешней странице.</li>
214-
<li>Также в совсем старых IE можно обмениваться данными через хеш, то есть фрагмент URL после `#`. Его изменение доступно между ифреймами с разных доменов и не переводит к перезагрузке страницы. Таким образом они могут передавать данные друг другу. Есть готовые библиотеки, которые реализуют этот подход, например [Porthole](http://ternarylabs.github.io/porthole/).</li>
214+
<li>Также в совсем старых IE можно обмениваться данными через хеш, то есть фрагмент URL после `#`. Его изменение доступно между ифреймами с разных доменов и не приводит к перезагрузке страницы. Таким образом они могут передавать данные друг другу. Есть готовые библиотеки, которые реализуют этот подход, например [Porthole](http://ternarylabs.github.io/porthole/).</li>
215215
</ul>
216216

217217

4-ajax/4-xhr-forms/article.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ Content-Disposition: form-data; name="*!*surname*/!*"
172172

173173
Достаточно указать в заголовке `Content-Type` кодировку и границу, и далее сформировать тело запроса, удовлетворяющее требованиям кодировки.
174174

175-
Пример кода для пересылке того же запроса, что и раньше, в кодировке `multipart/form-data`:
175+
Пример кода для того же запроса, что и раньше, теперь в кодировке `multipart/form-data`:
176176

177177
```js
178178
var data = {
@@ -268,7 +268,7 @@ Content-Type: image/jpeg
268268

269269
XMLHttpRequest сам по себе не ограничивает кодировку и формат пересылаемых данных.
270270

271-
Поэтому просто для обмена данными JS <-> сервер, без всяких форма, часто используется POST с JSON:
271+
Поэтому для обмена данными часто используется формат JSON:
272272

273273
```js
274274
var xhr = new XMLHttpRequest();
@@ -283,6 +283,10 @@ xhr.setRequestHeader('Content-type', 'application/json; charset=utf-8');
283283

284284
xhr.onreadystatechange = ...;
285285

286+
*!*
287+
// Отсылаем объект в формате JSON и с Content-Type application/json
288+
// Сервер должен уметь такой Content-Type принимать и раскодировать
289+
*/!*
286290
xhr.send(json);
287291
```
288292

4-ajax/5-xhr-crossdomain/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ xhr.send();
7474
</li>
7575
</ol>
7676

77-
"Непростыми" считаются все остальные, например, запрос с методом `PUT` или с заголовком `Authorization` будет не подходит под ограничения выше.
77+
"Непростыми" считаются все остальные, например, запрос с методом `PUT` или с заголовком `Authorization` не подходит под ограничения выше.
7878

7979
Принципиальная разница между ними заключается в том, что "простой" запрос можно сформировать и отправить на сервер и без XMLHttpRequest, например при помощи HTML-формы.
8080

@@ -84,7 +84,7 @@ xhr.send();
8484

8585
А вот запросы с нестандартными заголовками или с методом `DELETE` таким образом не создать. Поэтому старый сервер может быть к ним не готов. Или, к примеру, он может полагать, что такие запросы веб-страница в принципе не умеет присылать, значит они пришли из привелигированного приложения, и дать им слишком много прав.
8686

87-
Поэтому при посылкой "непростых" запросов нужно специальным образом спросить у сервера, согласен ли он в принципе на подобные кросс-доменные запросы или нет? И, если сервер не ответит, что согласен -- значит, нет.
87+
Поэтому при посылке "непростых" запросов нужно специальным образом спросить у сервера, согласен ли он в принципе на подобные кросс-доменные запросы или нет? И, если сервер не ответит, что согласен -- значит, нет.
8888

8989
[summary]
9090
В спецификации CORS, как мы увидим далее, есть много деталей, но все они объединены единым принципом: новые возможности доступны только с явного согласия сервера (по умолчанию -- нет).

4-ajax/6-xhr-onprogress/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,9 @@ function upload(file) {
173173

174174
## Файлы и формы
175175

176-
Выше мы использовали `xhr.send(file)` для посылки файл пересылается в теле запроса.
176+
Выше мы использовали `xhr.send(file)` для передачи файла непосредственно в теле запроса.
177177

178-
При этом посылается только содержимое файла.
178+
При этом посылается только *содержимое* файла.
179179

180180
Если нужно дополнительно передать имя файла или что-то ещё -- это можно удобно сделать через форму, при помощи объекта [FormData](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects):
181181

0 commit comments

Comments
 (0)