我有一个页面,它依赖于许多部分刷新以进行交互。我不打算使用保持会话活动机制,但我想捕获错误响应到我的部分刷新,提醒用户他们的会话已过期/他们需要刷新,执行一个窗口。 location.reload一旦他们确认了警报。具体来说,由用户尝试部分刷新(并且,本质上,纯粹通过CSJS)来事件驱动。
我知道使用Chrome DevTools时,部分刷新显示为Post请求,它返回html的部分(刷新区域)加上任何必需的CSJS。我也知道,正如Dojo 1.6中针对dojo.xhr(Post和Get)所记录的那样,我支持一个错误处理参数,通过它我可以传递我想要创建的函数。我目前不确定如何将此函数添加到我的dojo.xhrPost请求中。
看过this XSnippet, "Cache Prevention for Dojo xhr requests",它允许将preventCache选项添加到dojo.xhr请求中,我觉得这是正确的方法。再一次,这是我不确定的实现。我很失望地发现它引用的链接http://www.juliusbuss.de/web/youatnotes/blog-jb.nsf/dx/a-big-issue-for-mobile-web-apps-with-xpages-for-iphone-and-ipad-and-how-to-solve-it..htm对我不起作用。
会喜欢更有经验的观点。
答案 0 :(得分:5)
以下是如何为每个 partialRefresh 覆盖错误函数的示例:
// hijack the dojo function if required
if( !dojo._xhr )
dojo._xhr = dojo.xhr;
var _error;
dojo.xhr = function(){
try{
var args = arguments[1];
_error = args["error"]; // save the original error function
// add your own method
args["error"] = function(arg1, arg2){
alert( "Hello World!" );
_error(arg1, arg2);
}
arguments[1] = args;
}catch(e){}
dojo._xhr( arguments[0], arguments[1], arguments[2] );
}