用 PHP 和 twig 创建一个等待页面

我将数据发布到页面并进行一些需要 5-6 秒的检查。我想插入一个等待页面来改善用户体验。我的代码是这样的:


....functions that take time


echo $twig->render('template.html.twig',[ variables ....]);

因为 PHP 在处理完数据后会在最后调用 twig 模板,所以我无法使用 javascript 解决方案。


我尝试先渲染一个等待模板,然后处理数据并将输出存储在会话变量中,然后将位置标头发送到结果页面,但我发现 PHP 不会回显等待模板,直到它完成整个脚本,即使我一开始就调用它。


echo $twig->render('waiting.html.twig',[ variables ....]);

....functions that take time

store output as session variable.

send location header to another page that renders the template from the session variable

如何实现等待页面?


青春有我
浏览 143回答 3
3回答

慕丝7291255

最简单的解决方案是在第一页中添加“等待页面”但将其隐藏。当用户按下按钮浏览器将发送请求,但仍会等待响应显示旧页面。在这里你可以使用 JS 来展示它。简而言之 - 用户按下按钮,您显示模板(已经存在但隐藏了),然后浏览器只是等待您的模板在前面的响应。但最好的方法是像爱国者建议的那样使用 AJAX。

浮云间

您总是可以临时存储数据并为用户加载一个虚拟的“加载页面”。就在虚拟页面加载时,您发送一个 ajax 请求来恢复您的数据并对其进行处理。当 ajax 调用返回时,您可以进行重定向或在该过程完成后您想做的任何事情。当我说“临时存储数据”时,我的意思是在数据库或文件等中。
打开App,查看更多内容
随时随地看视频慕课网APP