Это хороший подход для вызова IPC связи в сценарии предварительной загрузки? - PullRequest
0 голосов
/ 28 октября 2019

Я только начал изучать electron. Мне было интересно, если это хорошая идея использовать ipcRenderer вызовы внутри сценария предварительной загрузки, то есть:

const sc = require('./StaticContent');
const dc = require('./DynamicContent');
const { ipcRenderer } = require('electron');

window.addEventListener('DOMContentLoaded', () => {
    document.getElementById('view').innerHTML = sc.getInfoPage();
    document.getElementById('menu-info').addEventListener('click', (evt) => {
        ipcRenderer.send('load-info');
    });


    ipcRenderer.on('get-view', (event, arg) => {
        document.getElementById('view').innerHTML = arg;
    });
});

Каждый учебник, который я прочитал, использует внешний файл js для управления ipcRenderer вызовами и даже невозиться с preload сценарием. Но это работает.

Я также могу достичь того, что хочу, без ipc звонков:

window.addEventListener('DOMContentLoaded', () => {
    document.getElementById('view').innerHTML = sc.getInfoPage();
    document.getElementById('menu-info').addEventListener('click', (evt) => {
        document.getElementById('view').innerHTML = sc.getInfoPage();
    });
});

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

1 Ответ

1 голос
/ 30 октября 2019

Да, вы можете абсолютно точно использовать ipcRenderer внутри скрипта предварительной загрузки, и вы можете увидеть пример этого здесь .

В зависимости от того, хотите вы или нет, зависит от вашей цели.

Если вам нужно, чтобы основной процесс что-то сделал, вы должны использовать ipc для отправки сообщения из сценария предварительной загрузки в основной процесс. Если вам не нужен основной процесс для чего-либо и все в порядке с простым выполнением кода в контексте средства визуализации, запускающего сценарий предварительной загрузки, тогда вы можете свободно запускать свой код там.

В вашемВ этом случае, вероятно, имеет смысл просто выполнить все манипуляции с DOM в сценарии предварительной загрузки. Отправка сообщения в основной процесс только для того, чтобы он отправил сообщение обратно в средство визуализации для выполнения вашего обработчика get-view, это просто дополнительная работа без причины.

...