移动端到服务端通信往往会发生很多莫名的异常情况,如何有效的监控proxy异常,给用户友好的用户体验呢?
Proxy给我提供了异常exception的监听事件,只需要监控该项目即可。
Sencha Touch Store的基类如下:
Ext.define('HzyApp.store.Base', { extend: 'Ext.data.Store', config: { proxy: { scope: this, listeners: { exception: function (proxy, response) { var rst = Ext.decode(response.responseText); //如果失效请重新登陆 if (rst.msg == "relogin") { Cookies.clear("hzyapp.username"); Ext.Msg.alert("异常", "用户登陆状态失效,请重新登陆!"); window.location.reload(); } else Ext.Msg.alert("异常",rst.msg); } } } } });
服务端有异常监控机制,发生任何异常,会发送相应的异常信息给客户端,例如获取数据的时候,当用户登录超时,会直接提示用户登录状态失效,proxy监控到该异常会发起重新登陆的动作。
后台返回格式:
{result:1,msg:'reload',success:false}
success是必不可少的,msg和result可根据具体情况自定义