java web页面,关闭浏览器,让一个操作继续执行?
比如我要提取报表,需要好几个小时,我点击“提取”之后,让程序自己执行,然后我关闭浏览器,程序仍旧能正常提取数据...
比如我要提取报表,需要好几个小时,我点击“提取”之后,让程序自己执行,然后我关闭浏览器,程序仍旧能正常提取数据
展开
6个回答
展开全部
这要看你的程序是客户端还是服务器端
如果是客户端执行,也就是说是浏览器去执行,那关闭之后是不能继续执行了。
比如一个客户端的分页,这里假设分页的效率比较低,分页执行可能需要5秒,如果在这5秒内你关闭浏览器,这个分页就没有执行成功了,这种是显而易见的情况
如果是服务器端,还要看执行完成后是不是要有返回结果
服务器端的程序执行起来是没有问题,只要开始运行,跟你的浏览器直接是没有关系了,直到结果返回。我们知道,服务器端和客户端是用sessionID来关联的,发送一个请求的时候带上了这个参数,返回结果的时候根据这个ID返回到相应的客户端去。一般的,浏览器每打开一次,就会有一个sessionID,如果你的操作在服务器端运行,如题目例子中,此刻你关闭浏览器,对这个程序运行是没有影响的,它还会继续执行。但是如果运行完要返回一些结果的时候,还是会按之前的sessionID去返回,但是此时无论你怎么打开网页,都不可能找到跟之前一样的sessionID,换句话说,再也拿不到服务器端的返回结果
总结来说,服务器端的程序在浏览器关闭后能继续运行,但是得不到返回结果。
不需要返回结果的应用例子举一个:页面上有个按钮,点击之后发送请求至服务端,服务端执行数据备份操作。数据备份要数小时,点完按钮可以关闭浏览器
如果是客户端执行,也就是说是浏览器去执行,那关闭之后是不能继续执行了。
比如一个客户端的分页,这里假设分页的效率比较低,分页执行可能需要5秒,如果在这5秒内你关闭浏览器,这个分页就没有执行成功了,这种是显而易见的情况
如果是服务器端,还要看执行完成后是不是要有返回结果
服务器端的程序执行起来是没有问题,只要开始运行,跟你的浏览器直接是没有关系了,直到结果返回。我们知道,服务器端和客户端是用sessionID来关联的,发送一个请求的时候带上了这个参数,返回结果的时候根据这个ID返回到相应的客户端去。一般的,浏览器每打开一次,就会有一个sessionID,如果你的操作在服务器端运行,如题目例子中,此刻你关闭浏览器,对这个程序运行是没有影响的,它还会继续执行。但是如果运行完要返回一些结果的时候,还是会按之前的sessionID去返回,但是此时无论你怎么打开网页,都不可能找到跟之前一样的sessionID,换句话说,再也拿不到服务器端的返回结果
总结来说,服务器端的程序在浏览器关闭后能继续运行,但是得不到返回结果。
不需要返回结果的应用例子举一个:页面上有个按钮,点击之后发送请求至服务端,服务端执行数据备份操作。数据备份要数小时,点完按钮可以关闭浏览器
展开全部
可以用js做,在<body onunload="function()">function函数可以使一个ajax在后台运行操作数据库
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个只能靠服务器端缓存来完成了把
用Hibernate实现
用Hibernate实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是这样的话,可以单开出来一个线程试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个应该是有的,希望楼主得到后分享!期待中……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询