У меня есть контроллер Pylons, который вызывается через jQuery $ .ajaxSubmit (). Он выполняет длительную операцию, и я хочу, чтобы он возвращал сообщения о ходе выполнения до того, как будет доступен весь вывод. В качестве простого доказательства концепции я попробовал это:
response.body_file.write('<script>OnExecutionProgress("Starting");</script>\n')
time.sleep(2)
response.body_file.write('<script>OnExecutionProgress("Finished");</script>\n')
Однако, это не возвращает первое сообщение клиенту немедленно - весь вывод возвращается только в конце.
Я уже делал что-то подобное в ASP.NET, используя Response.Write()
и Response.Flush()
, и это работало хорошо. Тем не менее, звонок response.body_file.flush()
в Pylons не имеет значения.