如何从HTML5脚本/文件/页面调用Lua脚本

Bil*_*rim 6 html browser lua

非常基本的问题(我认为),但我是这个网络/脚本世界的新手.

我想用动态内容创建网页...

如果我有一个HTML页面(HTML5)并想从中调用lua脚本,我该怎么做:

a)调用它? <script type=text/application>? <script type=text/lua>?等等?这一定是基本的,我找不到答案.

b)从中检索数据?或者我可以吗?我可以这样做:int xx = 0; <script type=text/lua> xx = 123; </script> 当脚本退出时,是否希望xx为123?

c)用lua脚本生成的内容替换当前网页.

很抱歉有这些补救问题,但非常感谢所有帮助.

:BP:

Jan*_*sen 13

在客户端,您可以使用:

  • WebAssembly(首选解决方案,但与使用Emscripten和JavaScript不兼容)
  • 使用JavaScript输出的Emscripten将C Lua解释器编译为JavaScript并允许您使用它.编译为JavaScript时,Lua解释器大约为1.5 MB.
  • lua.js将Lua直接编译为JavaScript.兼容性较低但占用空间较小.
  • moonshine执行编译的Lua字节码.它比lua.js更兼容,但仍然比Emscripten更低的占用空间.可能是最慢的方法,因为它没有将asm.js与优化的测试Lua运行时一起使用,并且它不会生成随后可以进行JIT的JavaScript.

我首先尝试使用moonshine,如果它不起作用,你可以尝试使用Emscripten.


Que*_*tin 8

在WWW脚本上可以运行两个地方.

  1. 在Web浏览器中
  2. 在Web服务器上

如果您希望它在浏览器中运行,那么您需要支持浏览器内置的语言(或由扩展程序提供).出于所有实际目的,如果您正在为WWW编写网页,那么您可以在HTML中使用的唯一语言<script>是JavaScript.

如果要在Web服务器上运行它,则需要让HTTPD运行脚本以响应从其请求的URL.实现这一目标的最简单方法是通过CGI.

使用CGI,HTTPD将运行程序(作为单独的进程)以响应正在进行的请求.它将通过STDIN和环境变量传递有关请求的各种信息(如CGI规范中所述).然后脚本打印HTTP响应(标题(至少是Content-Type)和正文(例如HTML文档))并将其发送到STDOUT,HTTPD将其拾取并将其发送回浏览器.

如何配置服务器以使用CGI运行程序取决于服务器.Apache有他们服务器的指南.

Lua可能有CGI库,但我不懂语言所以不能提出任何建议.

CGI是一种缓慢且低效的协议(因为它需要为每个请求生成新的进程).还有其他选择,例如FastCGI和各种语言特定选项.再说一遍,我不知道在Lua土地上被认为是最佳的.

  • 您可以查看[Kepler Project](http://www.keplerproject.org/),它是Lua中Web开发的框架(包括Lua Web服务器等) (3认同)