【问题标题】:How to avoid ajax timeouts on lift?如何避免提升时的ajax超时?
【发布时间】:2011-02-02 18:43:05
【问题描述】:

我正在使用 ajax+comet 来构建一个迭代表单。提交后,会下载一个输出文件。

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 替换为适用于 reRender 的东西,而不仅仅是在整页重新加载时。或者可能以某种方式强制我的页面在没有客户端迭代的情况下重新加载。

【问题讨论】:

    标签: timeout lift ajaxform


    【解决方案1】:

    电梯规则 var ajaxPostTimeout = 5000 //m

    【讨论】:

    • 抱歉,'m' 是毫秒还是分钟?
    • 编程中是否有过以分钟计的事情,5000 分钟有意义吗?毫秒
    猜你喜欢
    • 2012-01-26
    • 2015-12-11
    • 2011-02-16
    • 1970-01-01
    • 2021-02-05
    • 2020-12-15
    • 2017-08-21
    • 2018-09-09
    • 1970-01-01
    相关资源
    最近更新 更多