javascript - 使用电子( Atom shell ) 时的客户/服务器模型是什么?

  显示原文与译文双语对照的内容
0 0

我想用我的头包裹方式 Electron ( 以前Atom Shell ) 的工作原理。

我来自一个传统mvc样式Web应用其中Browser正调用 Controller Action 通过 Routing System,Controller然后获取结果数据存储( 文件系统,数据Base,- - ) 并呈现 View,即发送回Browser 。 一些Actions可能正在发送时候同时也JSON相反,称为通过JavaScript/AJAX代替Browser实际上导航到它们。

我想创建的,但作为跨平台桌面应用程序。 我知道Atom Shell合并同时Chromium Browser和Node .js/v8运行库,但我不确定他们会如何进行通信。

我猜我也上运行完全Web服务器( 基本上,一些Node jsblocks HTTP中间件像 Express ),但创建的网络可到达服务器( 还可能绊倒的防火墙) 的原因之一我想制作一个桌面软件,正是为了避免运行一个真正的服务器。 基本上像MVP/MVVM模式处于" 正常" 的桌面应用程序。

谁能不能给我添加观点我想怎么做? 怎么在浏览器跟节点运行库( " client " 同样的测试- 1 ) 告诉它" 嘿,获取我的记录和ID 12345 " 并将Client返回HTML或应当呈现在浏览器上了一滴JSON坐,并渲染它通过Javascript模板引擎?

时间:原作者:3个回答

0 0

electron似乎不使用Node jsblocks作为Web服务器只不过是作为一个运行环境背景Javascript代码,此代码可以使用Node模块访问系统。 同时Chromium提供用户界面的应用程序,它显示普通网页通常运行的沙盒Javascript 。 同时正在嵌入式由Electron可执行文件,前者直接( Node jsblocks可以被编译为静态库),后者通过 libchromiumcontent 。 在某种程度上,节点jsblocks是控制器应用程序的一部分而Chromium是视图。

通常,这个概念用在网页中的一点就在于单页程序 : 网页表示一个应用程序窗口,因此只要周围却保留此窗口是可见的( 通常为整个应用程序的生存期) 。 在任何需要显示一些不同的it需求数据从后台代码中运行Node jsblocks就像AJAX应用程序从服务器请求数据。 本身不会重新加载该页面,通常Javascript模板将用于更新内容。

实际上这里没有真的server/client关系但是,通信可以两用。 双方可以使用ipc模块互相发送消息且容易混淆( 注意,文档其他调用Node jsblocks端" 浏览器" 和Chromium方面" 渲染器" ) 。 这些消息可以具有任何连接参数进行编码,这些不需要被显式实现( 通常这是通过使用JSON内部对参数进行编码,我没有验证是否与Electron是这样) 。 在内部,通过平台来实现消息传递特定 IPC 机制,使用 libuv 确切的说是

原作者:
...