如前述所述,通过lua的io.popen/os.execute即可执行系统中的程序,而io.popen和io.open分别可用于读取程序输出以及读取文件,使用line()方法可按行遍历输出或文件,这样一来通过Web来实现Linux程序的启动以及读取程序输出、判断执行结果就可以实现了,本例中我将各个功能都放入do.lua文件中,而index.lua则只做基本页面渲染,该首页中设置了多个DIV分别供存放备份列表、程序输出、磁盘信息、按钮以及备注。接着就是在index.lua中采用XHR的方式来调用do.lua中的对应功能即可,具体的操作由action参数来定义,如: do.lua?action=doBackup。
整个流程可参考下图
XHR的编写可参照W3School上的教程:https://www.w3school.com.cn/ajax/ajax_xmlhttprequest_create.asp
上面这段JS代码供index.lua页面中的button按钮元素调用,被调用后执行XHR请求do.lua页面,并将action和file参数传递过去
而do.lua中定义了一个数组: switch,在该数组中定义了各个功能,包括上面晒出来的这段JS中调用的doSync方法(在下图的最下方,未完整截出)
在do.lua文件的底端,根据请求时给出的action参数,调用switch数组中对应的方法
我的页面最终显示效果如下:
当然,我们编程的时候一定要注意细节,诸如载入页面的时候要判断是否有备份或还原任务正在进行中,如果有,应给出提示并禁用备份、还原等按钮。对于具有危险性的操作应弹出多次确认等。
请注意,本站的所有文章均要求阁下在转载时注明出处和原作者,阁下转载本站文章即表示阁下同意并遵守此规程,除非特别注明转载出处,否则文章即为其发布者所著。本站及文章作者保留文章的著作权并有权在阁下违反上述规程时予以追究。
本文链接地址: 用OpenResty来编写页面(2)如何实现