javafx内部使用了什么JavaScript引擎?

Ayvango

WebView具有内置的javascript引擎。它使用什么引擎?openjdk和oracle jdk是否相同?可以像JSR 223引擎那样与WebView分开使用吗?

宝石海

Oracle JRE中的JavaScript运行时

完整的Oracle Java Runtime 8附带两个JavaScript引擎:

  1. Nashorn:“ Nashorn的目标是使用本机JVM在Java中实现轻量级高性能JavaScript运行时。该项目旨在使Java开发人员能够通过JSR-223将JavaScript嵌入Java应用程序中,并使用jrunscript命令开发独立的JavaScript应用程序线工具。”
  2. JavaScriptCore:内置到WebKit实现中的JavaScript引擎,由JavaFX系统的WebView组件包装

WebView和JavaFX应用程序使用的JavaScript运行时

JavaFX Webkit不使用Nashorn,它使用JavaScriptCore。

您可以使用Nashorn来编程JavaFX应用程序和API(作为Java编程的替代方法),并且可以将Nashorn用作JavaFX FXML文档的JavaFX脚本引擎,但是不能在WebView中将Nashorn用作JavaScript引擎。

背景源信息

有一些在WebView中的JavaScript实现信息通过JavaFX的邮件列表上的JavaFX的开发商提供。引用Oracle JavaFX开发人员Richard Bair(后者引用WebKit开发人员Olivier Hunt):

出色地…。它是这样的。WebKit默认情况下带有JavaScriptCore,这是我们使用的JS引擎。很好 我的理解是JavaScriptCore(aka SquirrelFish aka Nitro)与Safari使用的JS引擎相同当Chrome和Apple都是WebKit的一部分时,Google放入WebKit的抽象层之一就是交换JavaScript引擎的能力。当Google将WebKit分支到Bl​​ink中时,对WebKit项目具有对另一个JS VM的抽象的需求就消失了。结果,WebKit的家伙一直在讨论删除那些抽象,这样您就不能换掉JS引擎,[更多信息]。如果/当发生这种情况时,将很难(或不可能)切换到Nashorn for WebView。我们不会派发WebKit,因此我们必须遵循WebKit的功能。

“支持V8给webkit带来了相当大的负担,支持多个JS引擎需要大量,繁琐和昂贵的抽象(请参阅许多年前对该主题的原始讨论)。

另外,我们将仅在WebKit2中支持JSC,因此,我认为没有任何理由至少可以说服我,保持对多个JS引擎的支持对该项目是有利的。”-Oliver Hunt

免责声明

这个答案仅与Oracle Java 8版本有关;备用和将来的JavaFX和Java实现可能具有不同的内部实现。


可以像JSR 223引擎那样与WebView分开使用吗?

WebView中的JavaScriptCore不能作为JSR 223引擎与WebView分开使用(据我所知)。

我认为最好将支持WebView的JavaScriptCore实现视为WebView组件的内部实现细节,而不是将JavaScript实现视为要在其他地方使用的通用JavaScript运行时。它不是WebView特定用途之外的官方支持组件,并且在其中使用时,公共WebView API使您无法使用它所使用的JavaScript运行时的实现细节:这样,对于用户来说,它是故意不透明的实际上用于在WebView组件内执行JavaScript。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在Jon Skeet的书中的示例中使用了内部关键字?

来自分类Dev

如何知道mongodb中使用了哪个存储引擎?

来自分类Dev

Ionic使用什么渲染引擎?

来自分类Dev

Cordova使用什么js“引擎”?

来自分类Dev

必要的用户使用了什么

来自分类Dev

Windows 10中的HTML5 / Javascript Universal Apps使用的浏览器引擎是什么?

来自分类Dev

为什么在SVG中禁用了Javascript?

来自分类Dev

为什么在Javascript中,在.shift()之后使用了额外的括号集?

来自分类Dev

Firebase在引擎盖下使用什么?

来自分类Dev

为什么在下面的scala代码中使用了内部函数,没有内部函数我们不能编写它

来自分类Dev

sqlhelperparametercache中使用了什么“缓存”

来自分类Dev

observablehq使用了什么HTML处理?

来自分类Dev

在 JavaScript 模板引擎中使用 Markdown

来自分类Dev

用户在使用“生成”命令之前做了什么或使用了什么?

来自分类Dev

内部插槽和内部方法实际上是由JavaScript引擎实现的吗?

来自分类Dev

为什么将JavaScript V8引擎称为引擎?

来自分类Dev

为什么将JavaScript V8引擎称为引擎?

来自分类Dev

为什么没有JavaScript引擎支持尾部调用优化?

来自分类Dev

当javascript引擎解释对象文字时会发生什么?

来自分类Dev

尽管我使用XMLHttpRequest在JavaScript中调用了一次,但为什么api响应两次?

来自分类Dev

我对足球引擎/ EA Sport Fifa Manager的界面使用什么游戏引擎感到好奇?

来自分类Dev

为什么要在自己的脚本引擎中使用整个DLR

来自分类Dev

jQuery内部的Volt模板引擎

来自分类Dev

jQuery内部的Volt模板引擎

来自分类Dev

为什么在PySide / PyQt中超级使用了很多?

来自分类Dev

是什么让我的代码使用了如此多的内存?

来自分类Dev

Codeception的目的是什么,正确使用了WantTo()?

来自分类Dev

如何确定Windows XP中使用了什么MTU

来自分类Dev

查看在SQL查询中使用了什么通配符

Related 相关文章

  1. 1

    为什么在Jon Skeet的书中的示例中使用了内部关键字?

  2. 2

    如何知道mongodb中使用了哪个存储引擎?

  3. 3

    Ionic使用什么渲染引擎?

  4. 4

    Cordova使用什么js“引擎”?

  5. 5

    必要的用户使用了什么

  6. 6

    Windows 10中的HTML5 / Javascript Universal Apps使用的浏览器引擎是什么?

  7. 7

    为什么在SVG中禁用了Javascript?

  8. 8

    为什么在Javascript中,在.shift()之后使用了额外的括号集?

  9. 9

    Firebase在引擎盖下使用什么?

  10. 10

    为什么在下面的scala代码中使用了内部函数,没有内部函数我们不能编写它

  11. 11

    sqlhelperparametercache中使用了什么“缓存”

  12. 12

    observablehq使用了什么HTML处理?

  13. 13

    在 JavaScript 模板引擎中使用 Markdown

  14. 14

    用户在使用“生成”命令之前做了什么或使用了什么?

  15. 15

    内部插槽和内部方法实际上是由JavaScript引擎实现的吗?

  16. 16

    为什么将JavaScript V8引擎称为引擎?

  17. 17

    为什么将JavaScript V8引擎称为引擎?

  18. 18

    为什么没有JavaScript引擎支持尾部调用优化?

  19. 19

    当javascript引擎解释对象文字时会发生什么?

  20. 20

    尽管我使用XMLHttpRequest在JavaScript中调用了一次,但为什么api响应两次?

  21. 21

    我对足球引擎/ EA Sport Fifa Manager的界面使用什么游戏引擎感到好奇?

  22. 22

    为什么要在自己的脚本引擎中使用整个DLR

  23. 23

    jQuery内部的Volt模板引擎

  24. 24

    jQuery内部的Volt模板引擎

  25. 25

    为什么在PySide / PyQt中超级使用了很多?

  26. 26

    是什么让我的代码使用了如此多的内存?

  27. 27

    Codeception的目的是什么,正确使用了WantTo()?

  28. 28

    如何确定Windows XP中使用了什么MTU

  29. 29

    查看在SQL查询中使用了什么通配符

热门标签

归档