Kann Javascript Desktop-Programme schreiben?

青灯夜游
Freigeben: 2022-03-28 17:08:27
Original
4789 Leute haben es durchsucht

Javascript kann Desktop-Programme schreiben. In JavaScript kann das Electron-Software-Framework zum Entwickeln von Desktop-Programmen verwendet werden. Electron ist eine Open-Source-Bibliothek zum Erstellen plattformübergreifender Desktop-Anwendungen. Sie bietet eine umfangreiche lokale API, die es Entwicklern ermöglicht, reines JS zum Erstellen von Desktop-Anwendungen zu verwenden.

Kann Javascript Desktop-Programme schreiben?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Was ist eine Desktop-Anwendung?

Kann Javascript Desktop-Programme schreiben?

Desktop-Anwendung, auch bekannt als GUI-Programm (Graphical User Interface), aber es gibt einige Unterschiede zum GUI-Programm. Desktop-Anwendungen verwandeln GUI-Programme von GUI in „Desktop“ und machen das kalte Konzept eines Computers wie ein Stück Holz menschlicher, lebendiger und dynamischer.

Kann Javascript also zum Schreiben von Desktop-Programmen verwendet werden?

Javascript kann Desktop-Programme schreiben. Die Welt von JavaScript wird immer leistungsfähiger und Sie können Frameworks wie Eletron verwenden, um problemlos Desktop-Anwendungen zu entwickeln.

Electron ist eine plattformübergreifende Javascript-Desktop-Entwicklungsbibliothek.

Electron ist eine von Github entwickelte Open-Source-Bibliothek, die HTML, CSS und JavaScript verwendet, um plattformübergreifende Desktop-Anwendungen zu erstellen. Electron erreicht dies, indem es Chromium und Node.js in derselben Laufzeitumgebung zusammenführt und sie als Apps für Mac-, Windows- und Linux-Systeme verpackt.

Electron bietet eine umfangreiche native (Betriebssystem-)API, mit der Sie Desktop-Anwendungen mit reinem JavaScript erstellen können. Im Gegensatz zu anderen Node.js-Laufzeiten konzentriert sich Electron eher auf Desktop-Anwendungen als auf Webservern.

Electron ermöglicht Ihnen die Verwendung von reinem JavaScript zum Aufrufen umfangreicher nativer APIs zum Erstellen von Desktop-Anwendungen. Man kann es sich als eine Variante von io.js vorstellen, die sich eher auf Desktop-Anwendungen als auf Webserver konzentriert.

Grund für die Verwendung von Electron für die Entwicklung:

  • Webtechnologie mit einer starken Ökologie für die Entwicklung, niedrigen Entwicklungskosten, starker Skalierbarkeit und coolerer Benutzeroberfläche verwenden

  • Plattformübergreifend, ein Satz Code Das ist möglich kann in drei Softwaresätze für Windows, Linux und Mac gepackt werden, und die Kompilierung erfolgt schnell

  • Natürlich müssen wir auch seine Mängel erkennen: Die Leistung ist geringer als bei nativen Desktop-Anwendungen und die endgültige gepackte Anwendung ist viel größer als native Anwendungen.

  • Entwicklungserfahrung

Kompatibilität

Obwohl Sie weiterhin WEB-Technologie für die Entwicklung verwenden, müssen Sie sich nur noch um die Version von Chrome kümmern, die Sie derzeit verwenden. Im Allgemeinen ist es so neu, dass Sie die neueste API und Syntax verwenden können. Sie können die Chrome-Version auch manuell aktualisieren. Ebenso müssen Sie sich keine Gedanken über Stil- und Codekompatibilitätsprobleme mit verschiedenen Browsern machen.

Knotenumgebung

Dies ist möglicherweise eine Funktion, von der viele Front-End-Entwickler geträumt haben. Die Verwendung der leistungsstarken API von Node.js in der WEB-Schnittstelle bedeutet, dass Sie Dateien direkt im WEB bedienen und System-APIs aufrufen können Seite. Sogar Datenbanken betreiben. Natürlich können Sie neben der vollständigen Node-API auch Hunderttausende weitere npm-Module nutzen.

Domänenübergreifend

Sie können das von Node bereitgestellte Anforderungsmodul direkt verwenden, um Netzwerkanfragen zu stellen, sodass Sie sich nicht mehr mit domänenübergreifenden Problemen befassen müssen.

Leistungsstarke Skalierbarkeit

Verwenden Sie Node-FI, um leistungsstarke Skalierbarkeit für Anwendungen bereitzustellen (wird in den folgenden Kapiteln ausführlich vorgestellt).

Wer nutzt Electron?

Es gibt bereits viele Anwendungen auf dem Markt, die mit Electron entwickelt werden, darunter der bekannte VS CodeClient, GitHub-Client, Atom-Client usw. Ich war sehr beeindruckt von Xunleis Texten, als Xunlei X10.1 letztes Jahr veröffentlicht wurde: Beginnend mit Xunlei Thunder Aus technischer Sicht ist das neue Framework hinsichtlich der Schnittstellenzeichnung und Ereignisverarbeitung flexibler und effizienter als das alte Framework, sodass auch die Glätte der Schnittstelle deutlich besser ist als die des alten Frameworks Thunder. Was die konkrete Verbesserung betrifft? Du wirst es wissen, wenn du es einmal probiert hast.

Kann Javascript Desktop-Programme schreiben?Sie können VS Code öffnen und auf [Hilfe] [Entwicklertools wechseln] klicken, um die VS Code-Clientschnittstelle zu debuggen.

Electron进行开发了,包括我们熟悉的VS Code客户端、GitHub客户端、Atom客户端等等。印象很深的,去年迅雷在发布迅雷X10.1时的文案:

从迅雷X 10.1版本开始,我们采用Electron软件框架完全重写了迅雷主界面。使用新框架的迅雷X可以完美支持2K、4K等高清显示屏,界面中的文字渲染也更加清晰锐利。从技术层面来说,新框架的界面绘制、事件处理等方面比老框架更加灵活高效,因此界面的流畅度也显著优于老框架的迅雷。至于具体提升有多大?您一试便知。

你可以打开VS Code,点击【帮助】【切换开发人员工具】来调试VS Code

Electron-Funktionsprinzip

Kann Javascript Desktop-Programme schreiben?

Electron kombiniert Chromium, Node.js und zum Aufrufen lokaler Funktionen der Betriebssystem-API . Electron 结合了 ChromiumNode.js 和用于调用操作系统本地功能的API

1、Chromium

ChromiumGoogle为发展Chrome浏览器而启动的开源项目,Chromium相当于Chrome的工程版或称实验版,新功能会率先在Chromium上实现,待验证后才会应用在Chrome上,故Chrome的功能会相对落后但较稳定。

ChromiumElectron提供强大的UI能力,可以在不考虑兼容性的情况下开发界面。

2、Node.js

Node.js是一个让JavaScript运行在服务端的开发平台,Node使用事件驱动,非阻塞I/O模型而得以轻量和高效。

单单靠Chromium是不能具备直接操作原生GUI能力的,Electron内集成了Nodejs,这让其在开发界面的同时也有了操作系统底层API的能力,Nodejs 中常用的 Path、fs、Crypto 等模块在 Electron 可以直接使用。

3、系统API

为了提供原生系统的GUI支持,Electron内置了原生应用程序接口,对调用一些系统功能,如调用系统通知、打开系统文件夹提供支持。

在开发模式上,Electron在调用系统API和绘制界面上是分离开发的,下面我们来看看Electron关于进程如何划分。

4、主进程

Electron区分了两种进程:主进程和渲染进程,两者各自负责自己的职能。

Kann Javascript Desktop-Programme schreiben?

Electron 运行package.jsonmain 脚本的进程被称为主进程。一个 Electron 应用总是有且只有一个主进程。

职责:

  • 创建渲染进程(可多个)
  • 控制了应用生命周期(启动、退出APP以及对APP做一些事件监听)
  • 调用系统底层功能、调用原生资源

可调用的API:

  • Node.js API
  • Electron提供的主进程API(包括一些系统功能和Electron附加功能)

5、渲染进程

由于 Electron 使用了 Chromium 来展示 web 页面,所以 Chromium 的多进程架构也被使用到。 每个Electron 中的 web页面运行在它自己的渲染进程中。

主进程使用 BrowserWindow 实例创建页面。 每个 BrowserWindow 实例都在自己的渲染进程里运行页面。 当一个 BrowserWindow 实例被销毁后,相应的渲染进程也会被终止。

你可以把渲染进程想像成一个浏览器窗口,它能存在多个并且相互独立,不过和浏览器不同的是,它能调用Node API

职责:

  • HTMLCSS渲染界面
  • JavaScript做一些界面交互

可调用的API:

  • DOM API
  • Node.js API
  • Electron提供的渲染进程API

    1. Chromium

  • Chromium ist ein von Google für die Entwicklung von Chrome entwickelter Browser Was das gestartete Open-Source-Projekt betrifft, entspricht Chromium der technischen Version oder experimentellen Version von Chrome. Neue Funktionen werden zuerst auf Chromium implementiert und muss später auf Chrome angewendet werden, sodass die Funktion von Chrome relativ rückständig, aber stabiler ist.

Chromium bietet leistungsstarke UI-Funktionen für Electron, sodass Sie Schnittstellen entwickeln können, ohne die Kompatibilität zu berücksichtigen.

2. Node.js

Node.js ist eine Entwicklungsplattform, auf der JavaScript ausgeführt werden kann Der Server Node verwendet ein ereignisgesteuertes, nicht blockierendes I/O-Modell, um leichtgewichtig und effizient zu sein. Chromium allein kann die native GUI nicht direkt bedienen und Nodejs integrieren Es ermöglicht die Entwicklung der Schnittstelle und verfügt gleichzeitig über die Fähigkeit der zugrunde liegenden API des Betriebssystems. Der häufig verwendete Pfad, fs, Crypto und andere Module in Nodejs sind in Electron direkt einsetzbar.

3. System-API

🎜Um GUI-Unterstützung für das native System bereitzustellen, hat Electron entwickelt -in nativen Anwendungen Die Schnittstelle bietet Unterstützung für den Aufruf einiger Systemfunktionen, z. B. das Aufrufen von Systembenachrichtigungen und das Öffnen von Systemordnern. 🎜🎜Im Entwicklungsmodus wird Electron separat in der Aufrufsystem-API und der Zeichenschnittstelle entwickelt. Werfen wir einen Blick auf den Prozess von Electron teilen. 🎜

4. Hauptprozess

🎜Electron unterscheidet zwei Prozesse: den Hauptprozess und den Rendering-Prozess, von denen jeder für sich verantwortlich ist Funktionen. 🎜🎜Kann Javascript Desktop-Programme schreiben?🎜🎜Electron Der Prozess, der das main-Skript von package.json ausführt, wird als Hauptprozess bezeichnet. Eine Electron-Anwendung hat immer einen und nur einen Hauptprozess. 🎜🎜Aufgaben:🎜
  • Erstellung von Rendering-Prozessen (kann mehrere sein) 🎜
  • Kontrolle des Anwendungslebenszyklus (Starten, Beenden von APP und APP führt eine Ereignisüberwachung durch)🎜
  • Rufen Sie die zugrunde liegenden Funktionen des Systems auf und rufen Sie native Ressourcen auf🎜🎜🎜Aufrufbare API:🎜
    • Node .js API🎜
    • Die Hauptprozess-API, die von Electron bereitgestellt wird (einschließlich einiger Systemfunktionen und Electron-Zusatzfunktionen)🎜 🎜

      5. Rendering-Prozess

      🎜Da Electron Chromium verwendet, um web anzuzeigen Seite, daher wird auch die Multiprozessarchitektur von Chromium verwendet. Jede web-Seite in Electron wird in einem eigenen Rendering-Prozess ausgeführt. 🎜
      🎜Der Hauptprozess verwendet eine BrowserWindow-Instanz, um die Seite zu erstellen. Jede BrowserWindow-Instanz führt die Seite in ihrem eigenen Renderprozess aus. Wenn eine BrowserWindow-Instanz zerstört wird, wird auch der entsprechende Rendervorgang beendet. 🎜
      🎜Sie können sich den Rendering-Prozess wie ein Browserfenster vorstellen. Es kann mehrfach und unabhängig voneinander existieren, aber im Gegensatz zu einem Browser kann es Node API aufrufen. 🎜🎜Aufgaben:🎜
      • Rendern Sie die Schnittstelle mit HTML und CSS 🎜
      • Verwenden Sie JavaScript code >Führen Sie eine Schnittstelleninteraktion aus🎜🎜🎜<strong>Aufrufbare API:</strong>🎜<ul> <li> <code>DOM API🎜
      • Node.js API 🎜
      • Rendering-Prozess API bereitgestellt von Electron🎜🎜🎜[Verwandte Empfehlungen: 🎜Javascript-Video-Tutorial🎜, 🎜Web-Frontend🎜]🎜

Das obige ist der detaillierte Inhalt vonKann Javascript Desktop-Programme schreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage