Repository navigation
Expand file tree
/
Copy pathjobs.html
More file actions
58 lines (51 loc) · 2.51 KB
/
Copy pathjobs.html
File metadata and controls
58 lines (51 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>OneScript: фоновые задания</title>
<style>
body { font-family: system-ui, sans-serif; margin: 2rem; max-width: 42rem; }
output { display: block; font-family: ui-monospace, monospace; margin: 0.5rem 0; }
#счётчик { font-size: 2rem; }
</style>
</head>
<body>
<h2>Фоновые задания и <code>Приостановить</code></h2>
<p>Задание «считает» в фоне 500 мс. Нативный счётчик страницы тикает каждые 50 мс —
он продолжает расти, пока BSL ждёт задание: страница не замирает.</p>
<output id="счётчик">0</output>
<output id="журнал"></output>
<script>
// Нативный таймер: показывает, что страница жива во время ожидания задания.
let ticks = 0;
setInterval(() => {
ticks += 1;
document.getElementById('счётчик').textContent = String(ticks);
}, 50);
</script>
<script src="onescript.js"></script>
<script type="text/osjs">
Процедура Написать(Знач Текст) Экспорт
Документ.ПолучитьЭлемент("журнал").Текст = Текст;
КонецПроцедуры
Функция Посчитать(Знач Начало, Знач Конец) Экспорт
Приостановить(500);
Сумма = 0;
Для Сч = Начало По Конец Цикл
Сумма = Сумма + Сч;
КонецЦикла;
Возврат Сумма;
КонецФункции
Сообщить("страница готова");
Параметры = Новый Массив;
Параметры.Добавить(1);
Параметры.Добавить(100);
Задание = ФоновыеЗадания.Выполнить(ЭтотОбъект, "Посчитать", Параметры);
Сообщить("задание запущено: " + Строка(Задание.Состояние));
Задание.ОжидатьЗавершения();
Сообщить("задание завершено: " + Строка(Задание.Состояние));
Сообщить("результат: " + Строка(Задание.Результат));
Написать("результат = " + Строка(Задание.Результат));
</script>
</body>
</html>