我有一个模板,需要花费大量时间来计算和渲染。如果我在浏览器中按下escape,它应该停止执行控制器方法并渲染模板。但现在控制器方法执行直到完成。这不应该发生。我怎么能控制它呢。
答案 0 :(得分:3)
您不应该将长时间运行的代码作为控制器的一部分,因为这将阻止http线程。你的控制器应该非常快。按escape将关闭浏览器端的http连接,但不会停止控制器执行。
实现此目的的最佳方法是使用缓存和asynchronous programming的组合。 我使用作业来执行繁重的计算,控制器从缓存中获取信息,或者如果我有缓存未命中,则异步调用作业。这非常有效并且非常容易实现。