日期:2014-05-17  浏览次数:20832 次

高分求助~~ 当服务器端发生例外时,怎么让客户端填出窗口,而不改变之前的页面。
客户有个新需求~ 哎。
当服务器端发生例外时,
怎么让浏览器里的页面不动,而是填出popup窗口。

例如我在A页面点了一个button。
这个button的服务器端处理发生了exception时,
用户看到的是A页面没有变化,新开出个窗口把例外的出错信息给显示出来。
这样用户点击新窗口的关闭,然后可以继续使用A页面。

这个能实现吗?

------解决方案--------------------
有许多JS的遮罩插件,可以找一个…点击button时用ajax异步提交,根据返回结果判断服务器是否正常,出错则调用插件弹出遮罩…用户关闭遮罩时可以继续浏览本页面
------解决方案--------------------
如果原来点击button不是ajax实现的话,就适合在原来的框架下修改实现

首先服务器端肯定要屏蔽exception产生对返回造成的影响
其次是服务端要通知到客户端,可以考虑在返回流中加一些额外信息

具体怎么实现还要具体研究
------解决方案--------------------
典型的属于被客户带进沟里去!
服务器端异常应该找服务器端的问题,或者由服务器端返回友好的错误信息提示界面,这种情况应该多跟客户沟通,因为实际上客户更希望这个页面不会异常,只不过可能由于之前的种种表现使得他不得不提出他的最低底线:即使异常了也不能丢给他一个白页然后什么业务也无法继续开展!
------解决方案--------------------
400 NOT Found  或者提示升级中。这种个人认为楼上的还是可以的,用ajax,在用div做个遮照层
------解决方案--------------------
$.ajax异步提交,在error那里加上个全局,然后设置为弹窗提示就好了
------解决方案--------------------
button同步提交服务器的? 在响应后出现原来界面的同时,把错误信息以弹出框的形式出现?
------解决方案--------------------
最好用异步交互, ajax实现,

如果对ajax不了解 , 也可以跳转到原来页面 把信息写入页面的一个隐藏标签  用js alert出来!
------解决方案--------------------
如果不想改成ajax,可以用iframe模拟ajax

1、定义iframe:<iframe id="importTarget" name="importTarget" style='display:none;'></iframe>
2、在form中添加target="importTarget"属性,这样当表单提交跳转的页面不会覆盖当前页面,而是加载到了iframe中,比如跳转的是result.jsp页面
3、在result.jsp页面中判断是否成功(用js即可判断),成功则刷新页面,不成功则弹出错误框

$j(function(){
// 判断是否成功
if('${attachFlag}' == '1'){
window.parent.location.href="跳转的页面地址";
} else {
window.parent.alert('提示框','提交失败!','error');
}
});


我之前写上传文件的时候为了模拟ajax不跳转页面,找到的方法,应该能看明白吧
------解决方案--------------------
楼主这回可下了血本了,帮顶!
------解决方案--------------------
引用:
典型的属于被客户带进沟里去!
服务器端异常应该找服务器端的问题,或者由服务器端返回友好的错误信息提示界面,这种情况应该多跟客户沟通,因为实际上客户更希望这个页面不会异常,只不过可能由于之前的种种表现使得他不得不提出他的最低底线:即使异常了也不能丢给他一个白页然后什么业务也无法继续开展!

+1
ps.如果websocket能普及就能解决这个问题。
------解决方案--------------------
感觉9楼的方法可以。因为系统现在基本完工了,这种方法最简单且有效。