Javascript 创建在web浏览器上运行的桌面应用程序

Javascript 创建在web浏览器上运行的桌面应用程序,javascript,node.js,node-webkit,Javascript,Node.js,Node Webkit,去年,我了解到许多开发人员开始开发在web浏览器上运行的桌面应用程序 我也试着进入这个领域,我试着理解我应该如何开始这样的发展 首先,我认为我应该创建一个常规的客户机-服务器应用程序,即使用ApacheTomcat或PHP,对于每次启动应用程序,在localhost上启动一个新服务器,并打开一个浏览器来加载应用程序 我最近了解到,有一些包可以为您完成服务器客户端的工作,比如NodeWebKit 我不知道从哪里开始,我很困惑 当开发人员说他们用Javascript或类似的语言开发桌面应用程序并在w

去年,我了解到许多开发人员开始开发在web浏览器上运行的桌面应用程序

我也试着进入这个领域,我试着理解我应该如何开始这样的发展

首先,我认为我应该创建一个常规的客户机-服务器应用程序,即使用ApacheTomcat或PHP,对于每次启动应用程序,在localhost上启动一个新服务器,并打开一个浏览器来加载应用程序

我最近了解到,有一些包可以为您完成服务器客户端的工作,比如NodeWebKit

我不知道从哪里开始,我很困惑


当开发人员说他们用Javascript或类似的语言开发桌面应用程序并在web浏览器上运行时,他们的意思可能是使用节点webkit吗?或者他们是否执行了我上面描述的复杂结构(本地主机上的JSP/PHP服务器)?

存在许多使用web技术的开发模型,但它们有不同的用途,这完全取决于您想要做什么

你似乎混合了3种型号

经典网站

服务器(使用PHP、Java或其他工具)生成HTML

用户使用浏览器访问它

当用户单击某个位置时,会再次调用服务器并生成另一个HTML文件

单页应用程序

当编写需要大量交互的网站时,通常会使用此模型。例如,Gmail或谷歌文档都是SPA(或多或少)

SPA是所有模板都在客户端完成的网站(您可以通过URL访问它们),而Web服务器只公开HTTP API

大多数情况下,人们使用框架来实现以下目标:

  • 安格拉斯
  • 反应
  • 骨干
使用web技术的桌面应用程序

这只是编写一个应用程序,您可以使用web技术(javascript、css、html)将其安装在计算机或手机上

没有服务器

使程序员能够做到这一点的工具有

  • 节点webkit(用于台式机)
  • Cordova(用于电话)
  • 许多其他

大多数情况下,程序员还将SPA工具与开发过程中帮助他们的工具结合使用

构建应用程序的技术选择取决于应用程序的用途和希望其运行的平台

与桌面应用程序不同,Web应用程序由服务器(如Tomcat)托管和服务,然后由浏览器请求并呈现给您

桌面应用程序正在本地计算机上运行,它们独立于浏览器。然而,node webkit允许您使用HTML设计应用程序,并使用node使它们成为动态的。最终的结果是一个独立的应用程序,作为浏览器仿真运行,能够呈现和运行基于HTML和javascript的软件。(在这种情况下,nodejs在本地为应用程序提供服务,而独立web应用程序是客户端)

长话短说节点webkit模拟用于经典web应用程序的客户机-服务器模型,以构建桌面应用程序

对于IMHO来说,这是一种非正统的方式,但它可能是进入应用程序开发的一个良好开端。

试试这个-


使用JavaScript、HTML和CSS构建跨平台桌面应用程序。使用Electron,为您的公司或想法创建桌面应用程序很容易。Electron最初是为GitHub的Atom编辑器开发的,后来被Microsoft、Facebook、Slack和Docker等公司用于创建应用程序。

不幸的是,这个问题不适合在这里提出。Stackoverflow是关于编程问题和调试代码的;不是图书馆推荐。如果我不知道如何开始工作,我就不能问关于它的问题:)这是一个“如何开始”的问题。我没有要求别人推荐我language@NickDugger我认为这是一个相当初级的问题,但我不认为stackoverflow是一个错误的地方。很多线程都不适合调试代码,包括框架建议和系统架构决策。我猜提问者想知道如何构建能够实现该功能的web应用程序&模仿桌面应用程序(例如:MS Office Online、能够在服务器端构建项目的Visual Studio Online等)…这与我的意思相似,但不完全相同。AFAIK、Office Online和类似的应用程序都有服务器端,存在于提供商的服务器上,而我指的是服务器位于
localhost
上的应用程序,因此它可以访问您机器上的文件,与任何其他桌面应用程序一样,您实际上是说,应该与中央服务器(如Gmail)联系的客户端应用程序的开发与在本地运行并具有与C或其他桌面语言中的常规本地应用程序相同的权限的桌面应用程序的开发是完全不同的。你说我为本地桌面应用程序的每个实例启动一个PHP服务器的想法不是一个好主意,甚至是一个奇怪的想法:)对吗?如果你想创建一个桌面应用程序,用户会像其他任何应用程序一样安装它。此应用程序可以用C、Python或javascript和HTML(如果您使用NodeWebKit)编写。如果您需要,您的桌面应用程序可以与web上的API通信,但这与您选择的开发技术无关。python或C本地应用程序也可以调用API PHP是另一回事,它是一种只在Web服务器上工作的语言(或多或少,有一个cli,但我不推荐),因此您不能在用户的计算机上本地使用它,因为您不想在那里安装Apache/MySQL堆栈!我有几年的Java、Python、C开发经验,甚至有JSP和HTML4的web开发经验。我只是不明白如何用Java开发桌面