2011-02-02 2 views
1

저는 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) 
} 

대부분의 경우 작동합니다. 실제로는 오래 지속되는 계산이 있기 때문에 "서버가 응답 할 수 없습니다"라는 메시지가 나타납니다 (오류 메시지없이 리디렉션되지 않는 경우도 있음).

LiftRules.ajaxPostTimeout = Int.MaxValue 

그러나 심지어 그것은 여전히 ​​리디렉션 아니에요 이상 :

나는 아약스 시간 제한을 다시 구성했습니다.

는 또한 계산에서 리디렉션 부분을 분리하고 같은 것을 할 수있는 :

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

을하지만 다시 쓰게에서 작동하며뿐만 아니라 전체 페이지를 다시로드에 뭔가의 OnLoad를 교체해야합니다. 또는 어쩌면 내 페이지가 클라이언트 iteraction없이 다시로드되도록 강제 할 수 있습니다.

답변

2

LiftRules var에 ajaxPostTimeout = 5000 // m

+0

죄송합니다, 'm'은 밀리 초 또는 몇 분입니까? – falcon

+0

프로그래밍에 수분 만에 뭔가가 있었습니까? 5000 분이 어떤 의미가 있습니까 ??? ??? 밀리 초 – Erik255