Как быстрее загрузить встроенный источник в индекс - PullRequest
1 голос
/ 04 ноября 2019

HTML-файл с веб-пакетом и pahser. Весь игровой код и внешние библиотеки встроены в index.html.

Кто-нибудь знает способ достижения встроенного источника, но с более быстрой загрузкой страницы? Каким-то образом загрузить страницу со встроенным изображением, а затем загрузить внешние сценарии?

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

В настоящее время моя страница индекса экспортируется с внутренним источником javascript в 1 блок кода. Я заметил, что в некоторых других играх рекламодателей весь код разделен на несколько тегов, это позволило бы ускорить загрузку?

Я пытался использовать чанки, но все это делит код на части, но сохраняет все в одном блоке скрипта.

module.exports = env => {
    return {
        entry: {
            index: entryString.replace('{entryClass}', env.platform).replace('{game}', env.game ? env.game : ''),
            another: env.production ? spinePluginProd : spinePlugin,
            another: env.production ? phaserProd : phaser,
        },
        watch: env.watch == 'true',
        optimization: {
            minimizer: env.production ? [terserPlugin] : [],
        },
        output: {
            pathinfo: true,
            path: path.resolve(localDirectory, 'dist'),
            publicPath: './',
            filename: '[name].bundle.js',
        },
        optimization: {
            splitChunks: {
                chunks: 'all',
            },
        },
        plugins: getPlugins(env.platform, env.watch),
        module: {
            rules: getLoaders(env.platform, env.game),
        },
        node: {
            fs: 'empty',
            net: 'empty',
            tls: 'empty'
        },
        resolve: {
            extensions: ['.ts', '.js'],
            alias: {
                'phaser': env.production ? phaserProd : phaser,
                'spinePlugin': env.production ? spinePluginProd : spinePlugin,
                // 'spine': spine
            }
        }
    }
}

Если кто-нибудь знает способ загрузить это как можно быстрее, помощь будет принята. Не похоже, что Unity Ads жалуется только на скорость загрузки приложений более 2 Мб. Рекламные объявления размером менее 2 МБ загружаются достаточно быстро, поэтому я предполагаю, что это всего лишь загрузка страницы, а не инициализация Phaser

1 Ответ

2 голосов
/ 05 ноября 2019

Ответ может сводиться к тому, как они определяют «медленную загрузку». Вы не сможете заставить этот файл загружаться быстрее, разделив исходный код на несколько тегов сценария, это будет то же самое количество байтов (фактически несколько дополнительных, если у вас есть несколько тегов <script>).

Но как они измеряют «медленную загрузку»? Если они просто видят, сколько времени требуется для загрузки файла по сети, тогда да, вам придется искать способы сделать этот файл меньше: убедитесь, что вы увеличиваете / эффективно трясете дерево, чтобы минимизировать коднасколько это возможно, примените это к библиотечному коду также, если необходимо (и возможно), и определенно сожмите ваши изображения с помощью специальных инструментов сжатия изображений (это, вероятно, низко висящий фрукт с точки зрения размера файла; изображения большие).

Если они измеряют, сколько времени требуется, чтобы событие загрузки документа сработало, с другой стороны, вы можете изменить настройки. По умолчанию браузер загружает весь ваш код по порядку и блокирует теги скрипта, поэтому страница не будет загружаться, пока все ваши теги скрипта не будут интерпретированы. Если вы можете поместить большую часть выполнения вашего кода в обработчик событий, который срабатывает при загрузке страницы, браузер увидит, что вы определили обработчик событий для события load, и продолжит движение с загрузкой страницы, запуститесобытие загрузки, а затем выполните ваш код. Этого может быть достаточно, чтобы получить нужный вам быстрый показатель.

...