LiesAuer's Blog - node-main
type: channel
link: https://www.liesauer.net/blog/tag/node-main/
items: NW.js中node-main如何阻塞index.html加载

NW.js中node-main如何阻塞index.html加载
type: item
date: 2023-09-13T09:58:00+08:00
description: 在实际的[NW.js](https://github.com/nwjs/nw.js "NW.js")程序开发中，我们可能在程序启动时做一些加载前逻辑，比如更新等等，那如何实现等待这些逻辑完成后才开始加载`index.html`呢？ ### bootstrap.html 准备一个App启动页`bootstrap.html`，并在`package.json`中的`main`入口指向`bootstrap.html`，不再指向`index.html` ```html 启动中 启动中... ``` ### bootstrap.js `package.json`中的`node-main`入口指向`bootstrap.js`，这是在Node上下文中执行的启动逻辑，等待逻辑完成后我们就可以主动跳转到`index.html`。 ```js // 启动逻辑 const main = nw.Window.get(); // 注意 // 此时可能启动页都还没有加载，此时的网址为“about:blank”，需要定时器判断是否已经加载了启动页才能开始跳转 // 否则可能会出现这种情况：about:blank -> /index.html -> /bootstrap.html main.window.location.href='/index.html'; ``` 这样子我们就能实现“阻塞”`index.html`的加载了。