2011-02-02 48 views
1

我使用ajax +彗星来构建迭代表单。当它被submited时,输出文件被下载。如何避免电梯上的ajax超时?

def render = ajaxForm(bind("form",/*...*/ 
    "submit" -> ajaxSubmit("Calculate",result _)))++hidden(result _) 

private def result : JsCmd = { 
    /* Some really time-consuming calculations */ 
    JsCmds.RedirectTo("/result/"+uniqueId) 
} 

它适用于大多数情况。虽然有一些真正持久的计算,但我得到了“服务器无法响应”的消息(有时它只是不重定向而没有错误消息)。

我试图重新配置AJAX超时:

LiftRules.ajaxPostTimeout = Int.MaxValue 

但比它仍然不是重定向。

我也可以去耦重定向部分离了算了,做类似:

{val func = ajaxInvoke({() => JsCmds.RedirectTo("/result/"+uniqueId)})._2.cmd 
Script(OnLoad(func))} 

但我需要更换的OnLoad的东西,这对重新呈现的作品,而不是只在重新加载整个页面。或者,也许强迫我的页面重新加载,而无需客户端迭代。

回答

2

LiftRules 变种ajaxPostTimeout = 5000 //米

+0

对不起, 'm' 是毫秒或分钟? – falcon 2014-08-06 16:29:04