我遇到了一个常见问题,即在处理长时间运行的任务时,在HTML中实现“请等待,处理您的请求”页面以向用户显示。具体来说,我正在创建订单并为信用卡付款。
目前我首先加载PleaseWait.html,显示一条消息和一个微调器,它会立即重定向到Process.html,它会进行处理。 Process.html完成后,会重定向到Complete.html。
我试图完全跨浏览器并遵循所有建议。这意味着应该避免以下技术:
所以我的问题是......我到底该怎么做到这一点?
如果解决方案使我的动画GIF能够在整个处理阶段继续制作动画,那么
奖励积分(至少是荣誉)。我提到这一点是因为在IE中,当PleaseWait.html重定向Process.html时,所有动画都停止了,这意味着我的微调器当前只旋转半秒左右,然后在Process.html加载页面时停止它的东西。
答案 0 :(得分:1)
我会使用元刷新 - 我不确定为什么它被认为已被弃用 - 这是HTML5工作草案的一部分 - 它看起来像是留在这里:
当然,您可以提供一个链接供用户点击重新加载页面,以防META REFRESH无法触发。为了安全起见,请发送一封电子邮件,其中包含在交易失败时重新输入付款信息的链接。
答案 1 :(得分:0)
这是一套非常苛刻的约束!没有JS,我相当肯定你回到了需要用户执行操作的世界:(在那个世界......你可能只是'检查一下,看看你的订单是否完成'链接用户点击。
我认为大多数人会认为在大多数情况下假设'基本'javascript应该被'允许'是安全的。基本上我指的是setTimeout()
和window.location
之类的内容。如果您可以使用这些基本命令,则可以每隔5s左右重新加载页面。让页面点击“isUserDone.php”,如果它应该返回“处理”页面或“完整”页面,它将重定向浏览器。您可以使用PHP header('Location: complete.html')
中的标头功能让脚本告诉用户的浏览器转到另一个(或相同的)页面。