Альтернативные средства вывода с задержкой по времени для JS-HTML (Canvas) - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь создать задержку между частями отображения холста. Я знаю, что могу использовать метод "setTimeout" (среди прочего) для достижения этой цели:

    context.fillText("hello",385,300);
    setTimeout(function() {
        context.fillText("world",415,300);
    },1000);

Однако я хочу использовать более «примитивный» подход: пустой цикл for:

    context.fillText("hello",385,300);
    for (var count = 0; count < 1000000000; count++) {}
    context.fillText("world",415,300);

Этот цикл for работает только в JS, при этом «console.log» генерирует выходные данные вместо «fillText». Но приведенный выше код, встроенный в виде сценария в файл HTML, похоже, выполняет задержку цикла for до того, как появятся оба вывода "fillText". Итак, вместо «здравствуй» ... задержка ... «мир», я вижу: ... задержка ... «привет мир».

Согласно моему скудному (и, возможно, ошибочному) пониманию взаимодействия JS-браузера, обычно все операции / изменения скрипта кэшируются до тех пор, пока выполнение не достигнет тега end-script, после , когда обновляется холст / страница , Если это правда, это смутно объясняет проблему.

И если метод / функция / set / time / что-либо «setTimeout» временно прерывает сценарий перед отсчетом задержки, тем самым позволяя холсту / странице обновиться, тогда может быть какой-то другой метод / функция / что угодно что только временно прерывает сценарий, чтобы разрешить обновление холста / страницы, без , создающего задержку. Если так, я мог бы добавить это перед циклом for, чтобы получить то, что я хочу. Есть предложения?

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

Заранее спасибо за любую помощь.

Rob

...