我正在编写一个Electron应用程序,一些页面旨在通过从我的web API获取Json字符串来实时更新表。重要的是,首先必须在启动新的JavaScript线程之前或之后(无所谓),将我的表加载到文档(HTML)中。我已经需要使用主进程来处理按钮和表事件。
该线程用于连续获取数据,如果它检测到与当前加载的文档存在差异,它会将这些更改放回服务器。现在,我在启动一个新线程时遇到了问题,该线程无法完全访问Node、Electron和JQuery中使用的预加载JS函数。
下面列出了我尝试的内容以及出错的原因,因此您可以帮助我找到解决这些问题的方法或建议一个新的方向(可能是另一个NPM模块?):
-
Vanilla WebWorkers无法使用Node、Electron和JQuery中的任何预定义函数,因为它启动了一个全新的过程。
-
Node child\u process |此内置函数派生一个新线程。然而,它在一个完全不同的环境中工作,这意味着我无法看到它对控制台/文档的输出。
-
Electron WebWorkers |我在文档中找到了这些,并启用了NodeIntegrationInWorker。然而,它有一个错误,它无法从workers/api等中找到文件,我也找不到这些文件。重要的是要注意,这不是我必须安装的模块,所以在搜索了30分钟后,IDK甚至可以在我的系统上找到这些文件。
-
我安装了几个不同的NPM模块,但都没有用,主要是因为它们被隔离(像扩展的WebWorkers,类似于Electron WebWorkers),或者它们被隔离(扩展child\u进程()。fork函数也不起作用,来自节点)。
-
节点进程
-
workerjs公司
-
螺纹
-
网络工作者ng
-
webworker线程
最后,为了修复我提到的第三个选项,我尝试将重点放在ASAR路径上
here
。修复了此错误:
Uncaught Error: ENOENT, worker\api\exports\electron.js not found
但现在,我的线程可能会在加载页面后启动,但甚至不会向控制台记录一个简单的“Hello”,这可能是由于出色的线程隔离。
太长,读不下去了我需要一种方法来运行Electron中的第二个线程,该线程可以完全访问预定义的对象。该选项应该在主进程之后运行,而不是在页面进入无限while(True)循环后停止加载。