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

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

为什么在SVG中禁用了Javascript?

来自分类Dev

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

来自分类Dev

Ionic使用什么渲染引擎?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Cordova使用什么js“引擎”?

来自分类Dev

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

来自分类Dev

jQuery内部的Volt模板引擎

来自分类Dev

Firebase在引擎盖下使用什么?

来自分类Dev

sqlhelperparametercache中使用了什么“缓存”

来自分类Dev

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

来自分类Dev

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

来自分类Dev

observablehq使用了什么HTML处理?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

jQuery内部的Volt模板引擎

来自分类Dev

必要的用户使用了什么

来自分类Dev

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

来自分类Dev

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

来自分类Dev

在 JavaScript 模板引擎中使用 Markdown

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

    为什么在SVG中禁用了Javascript?

  5. 5

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

  6. 6

    Ionic使用什么渲染引擎?

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

    Cordova使用什么js“引擎”?

  11. 11

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

  12. 12

    jQuery内部的Volt模板引擎

  13. 13

    Firebase在引擎盖下使用什么?

  14. 14

    sqlhelperparametercache中使用了什么“缓存”

  15. 15

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

  16. 16

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

  17. 17

    observablehq使用了什么HTML处理?

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

    jQuery内部的Volt模板引擎

  26. 26

    必要的用户使用了什么

  27. 27

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

  28. 28

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

  29. 29

    在 JavaScript 模板引擎中使用 Markdown

热门标签

归档