繁体   English   中英

有什么方法可以在网页上获取和显示正在运行的服务器进程的状态?

[英]Is there any way to get and show status of a running server process at a web page?

我所拥有的是服务器上运行的过程,该过程花费大量时间。 它实质上是构建一些数据表,这些数据表在回发时显示在页面上。

我想要的是一种在服务器进程运行时在某处记录进度并在刷新完成的数据之前在我正在查看的页面上报告该进度的方法。

这有可能吗? 我能想到的最好的方法是将进度记录到服务器上的文件中,并通过Ajax / Javascript定期读取文件内容,但这似乎有点麻烦。

也许可以使用多个页面或线程。 我不确定。

有什么建议么?

编辑:
主要目的是在网页上显示某种进度条,以显示上述进度。

这有可能吗?

是的,但这并不容易,也不是很漂亮。

我能想到的最好的方法是将进度记录到服务器上的文件中,并通过Ajax / Javascript定期读取文件内容,但这似乎有点麻烦。

是的,差不多。 其他选项是使用数据库存储信息或会话,但是可以通过Ajax请求以某种方式访问​​的任何存储位置都可以使用。 毫无疑问,您想制作一个Web服务或类似服务以抽象化您使用的任何存储方法。

是Microsoft示例中该常规方法的实现。 它使用Session存储当前的进度,并严重依赖基于ASP的构造。

完全可以采用的另一种方法是在客户端和服务器之间建立一个Websocket,这将允许您将信息从服务器推送到客户端。 尽管设置起来可能并不容易,但它可能会表现更好(减少了网络IO)。 我没有任何示例(或尝试尝试)这样的解决方案。

ajax,ajax,xhr,jsonp以及进程中的里程碑,以便您可以指定状态

如果您正在运行的进程独立于您的页面(例如,服务器内部的Shell脚本),则可以将此脚本的中间结果写入可通过javascript访问的文本文件中(例如,在http://contosoweb.com中) /web/log.txt ),并使用计时器和一些jquery从页面定期对其进行更新。

在jQuery Docs中,您具有.Ajax的信息: http ://api.jquery.com/jQuery.ajax/

还有如何使用计时器: 如何在javascript中设置计时器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM