Как смоделировать onreadystatechange и изменение состояния динамического элемента - PullRequest
0 голосов
/ 28 февраля 2019

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

function loadAsync(src, callback) {
        var script = document.createElement('script');

        script.src = src;
        if (callback !== null) {
            if (script.readyState) { // IE, incl. IE9
                script.onreadystatechange = function() {
                    if (script.readyState === 'loaded' || script.readyState === 'complete') {
                        script.onreadystatechange = null;
                        callback();
                    }
                };
            } else {
                script.onload = function() { // Other browsers
                    callback();
                };
            }
        }
        document.getElementsByTagName('head')[0].appendChild(script);
    }

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

вызов функции

loadAsync('https://example.com/some.js', callback)'
...