2012-12-10 51 views
0

我的要求是在任何问题时,在浏览器端,只要用户有浏览器页面打开执行后端脚本并杀死用户会话的后端脚本 - 比如用户点击关闭浏览器页面/浏览器崩溃等等,以及其他我们可以想到或可能的想法。定期执行

我的要求是,以用户的需求和使用的详细信息更新用户页面启动一个后台脚本。同时,由于任何原因我们需要在用户存在时停止脚本。我明白在页面上有按钮来启动/停止会有帮助 - 但是如果用户关闭了页面 - 我的后端脚本将无限运行。

请咨询哪种方式,我可以实现相同的。

+1

我不知道你的目标是什么,但我敢打赌好钱就是_not_实现这一目标的最佳途径。你想做什么? –

+0

服务器应该如何知道该页面已关闭?您需要在页面关闭时处理断开连接。 –

+0

几种方式,包括ajax pulls,websockets,close events –

回答

0

这是很容易与长轮询技术来实现。您可以使用:

setInterval(function(){ 
    /*some code to execute ajax request to backend*/ 
}, timeIntervalInMS); 

或者更好的为长轮询的插件搜索谷歌在JavaScript中,你是好去。

通过这种技术的浏览器会用户有它的浏览器中打开,只要发出每一个时间间隔到后端的请求以毫秒为单位。

+0

那么实际上,然后在第一个请求我会开始捕捉/渲染应用程序日志到用户的用户界面页面。现在我需要继续这样做直到用户丢弃页面为止 - 我要求一个万无一失的机制的原因是为了避免后端脚本无限期地运行,即使没有用户向其提交数据。 – Prakash

+0

然后我不明白这个问题,因为我告诉它只要客户端打开页面就会执行。你只需要在后端清理用户会话。 –

+0

@Butkus - 感谢您的发布。我们有后端服务器生成日志,我需要在他/她的浏览器中呈现给UI用户网页。因此,当用户启动它时,我会启动一个无限循环来捕获/呈现服务器添加的所有应用程序日志(类似于保持添加到日志中的数据)。问题是我的后端服务器如何知道何时停止执行脚本 - 一种逃避无限期运行而无目标运行的简单方法,如孤儿子进程。 – Prakash