我想了解在这个网页上运行的 Ruby 和 Javascript 的交互,它暴露了 HotRuby.js
我清楚地理解 HotRuby 只是虚拟机。
但是编译成 YARV 的 Ruby 代码在哪里呢?
扩展这样一个站点以在浏览器中编写我们自己的代码并在 HotRuby 上运行它会很简单吗?(有点像不可思议的Amber Smalltalk)
我想了解在这个网页上运行的 Ruby 和 Javascript 的交互,它暴露了 HotRuby.js
我清楚地理解 HotRuby 只是虚拟机。
但是编译成 YARV 的 Ruby 代码在哪里呢?
扩展这样一个站点以在浏览器中编写我们自己的代码并在 HotRuby 上运行它会很简单吗?(有点像不可思议的Amber Smalltalk)
我在John Resig 的博客上得到了答案(上次访问时间为 2013 年 10 月 1 日)
这是作者注释的副本,它提供了技巧的实质:
脚本查找标签并从中提取内联 Ruby 代码。Ruby 代码通过 XMLHttpRequest 发送到服务器。服务器端 CGI 脚本(在 Ruby 中,使用 Ruby 1.9)将传入的 Ruby 编译为其相关的操作码,并将其序列化为 JSON 数据结构。浏览器使用操作码,将其翻译成 JavaScript,然后执行。