Skip to content

Commit de03ddb

Browse files
committed
add inline styles
1 parent 470c0c9 commit de03ddb

File tree

2 files changed

+66
-14
lines changed

2 files changed

+66
-14
lines changed

1-js/2-first-steps/2-external-script/article.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,13 @@
9393
</html>
9494
```
9595

96-
Такое поведение называют "синхронным". Как правило, оно вполне нормально, но бывает беда.
96+
Такое поведение называют "синхронным". Как правило, оно вполне нормально, но есть один нюанс.
9797

98-
Внешние скрипты `<script src="...">` блокируют отображение страницы не только на время выполнения, которое обычно небольшое, но и на время загрузки тоже!
98+
**Пока браузер не загрузит и не выполнит внешний скрипт, он не покажет часть страницы под ним.**
9999

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

102-
А представим на минуту, что сервер, с которого загружается внешний скрипт, перегружен и долго не отвечает? Тогда вся страница "подвиснет", пока он не загрузится.
102+
А что, если сервер, с которого загружается внешний скрипт, перегружен? Посетитель в этом случае может ждать очень долго.
103103

104104
Вот пример, с подобным скриптом (стоит искусственная задержка загрузки):
105105

@@ -114,9 +114,11 @@
114114

115115
В примере выше важная информация не покажется, пока не загрузится внешний скрипт. Но действительно ли он так важен, что мы хотим заставить посетителя ждать? Если это реклама или счётчик посещаемости, то вряд ли.
116116

117-
Можно поставить все подобные скрипты в конец страницы -- это уменьшит проблему, но не избавит от неё полностью, поскольку если какой-то один скрипт тормозит или завис, то последующие будут его ждать.
117+
Можно поставить все подобные скрипты в конец страницы -- это уменьшит проблему, но не избавит от неё полностью, поскольку скриптов может быть несколько, и если какой-то один скрипт тормозит или завис, то последующие будут его ждать.
118118

119-
Чтобы это обойти, можно использовать для скриптов атрибуты `async` или `defer`:
119+
Кроме того, когда скрипты в конце страницы -- то они начнут грузиться только тогда, когда вся страница загрузится. А это не всегда правильно, например счётчик посещений наиболее точно сработает, если загрузить его пораньше.
120+
121+
Кардинально решить эту проблему помогут атрибуты `async` или `defer`:
120122
<dl>
121123
<dt>Атрибут `async`</dt>
122124
<dd>Поддерживается всеми браузерами, кроме IE9-. Скрипт выполняется полностью асинхронно. То есть, при обнаружении `<script async src="...">` браузер не останавливает обработку страницы, а спокойно работает дальше. Когда скрипт будет загружен -- он выполнится.</dd>

2-ui/1-document/11-modifying-document/article.md

Lines changed: 58 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,25 @@
1010

1111
В качестве примера рассмотрим добавление сообщения на страницу, чтобы оно было оформленно красивее чем обычный `alert`.
1212

13-
HTML-код для сообщения (с подключённой библиотекой стилей [bootstrap](http://getbootstrap.com/)):
13+
HTML-код для сообщения:
1414

1515
```html
1616
<!--+ autorun height="100" -->
17-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.1/css/bootstrap.css">
17+
<style>
18+
.alert {
19+
padding: 15px;
20+
border: 1px solid #d6e9c6;
21+
border-radius: 4px;
22+
color: #3c763d;
23+
background-color: #dff0d8;
24+
}
25+
</style>
1826

19-
<div class="alert alert-success">
27+
*!*
28+
<div class="alert">
2029
<strong>Ура!</strong> Вы прочитали это важное сообщение.
2130
</div>
31+
*/!*
2232
```
2333

2434
## Создание элемента
@@ -143,7 +153,15 @@ parentElem.appendChild(elem)
143153

144154
```html
145155
<!--+ height=150 run autorun -->
146-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.1/css/bootstrap.css">
156+
<style>
157+
.alert {
158+
padding: 15px;
159+
border: 1px solid #d6e9c6;
160+
border-radius: 4px;
161+
color: #3c763d;
162+
background-color: #dff0d8;
163+
}
164+
</style>
147165

148166
<body>
149167
<h3>Моя страница</h3>
@@ -164,7 +182,15 @@ parentElem.appendChild(elem)
164182

165183
```html
166184
<!--+ height=150 run autorun -->
167-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.1/css/bootstrap.css">
185+
<style>
186+
.alert {
187+
padding: 15px;
188+
border: 1px solid #d6e9c6;
189+
border-radius: 4px;
190+
color: #3c763d;
191+
background-color: #dff0d8;
192+
}
193+
</style>
168194

169195
<body>
170196
<h3>Моя страница</h3>
@@ -195,7 +221,15 @@ parentElem.appendChild(elem)
195221

196222
```html
197223
<!--+ height=200 run autorun -->
198-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.1/css/bootstrap.css">
224+
<style>
225+
.alert {
226+
padding: 15px;
227+
border: 1px solid #d6e9c6;
228+
border-radius: 4px;
229+
color: #3c763d;
230+
background-color: #dff0d8;
231+
}
232+
</style>
199233

200234
<body>
201235
<h3>Моя страница</h3>
@@ -282,7 +316,15 @@ div.parentNode.insertBefore(div2, div.nextSibling);
282316

283317
```html
284318
<!--+ run -->
285-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.1/css/bootstrap.css">
319+
<style>
320+
.alert {
321+
padding: 15px;
322+
border: 1px solid #d6e9c6;
323+
border-radius: 4px;
324+
color: #3c763d;
325+
background-color: #dff0d8;
326+
}
327+
</style>
286328

287329
<body>
288330
<h3>Сообщение пропадёт через секунду</h3>
@@ -315,7 +357,15 @@ div.parentNode.insertBefore(div2, div.nextSibling);
315357

316358
```html
317359
<!--+ run -->
318-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.1/css/bootstrap.css">
360+
<style>
361+
.alert {
362+
padding: 15px;
363+
border: 1px solid #d6e9c6;
364+
border-radius: 4px;
365+
color: #3c763d;
366+
background-color: #dff0d8;
367+
}
368+
</style>
319369

320370
<script>
321371
var div = document.createElement('div');

0 commit comments

Comments
 (0)