我有一个HTML页面。在页面上我有一个链接。当用户单击链接时,我正在调用一个在新页面中打开的servlet。在这个servlet上,我试图更新我的数据库。完成更新后,我可以关闭从servlet启动的页面。现在我想在原始HTML页面上运行一个脚本,但是我无法这样做,因为没有触发/事件来调用该方法。
我该怎么做 提前谢谢!
答案 0 :(得分:1)
您可以使用ajax轮询servlet执行的后端进程的状态。完成后,执行您想要的任何内容。类似的东西:
var checkStatusTimeout;
function checkStatus(){
$.ajax({
type: "GET",
url: "./getstatus",
dataType: "text",
contentType: "application/json; charset=utf-8",
success: function(status){
if (status == 'FINISHED'){
clearTimeout(checkStatusTimeout);
// execute whatever you want here
}
}
});
checkStatusTimeout = window.setTimeout("checkStatus()", 5000);
}
当用户点击链接时,您应该调用函数checkStatus()。
或者您可以将servlet使用的子窗口分配给变量并不时检查它以验证窗口是否已关闭。请查看Mark Coleman在javascript: How Can a parent window know that its child window closed?上的回答以获取相关说明。