我搜索了一个与我类似的案例,发现很少有相关的帖子,但没有一个可以回答我的问题。
我正在执行的 cgi 脚本正在处理一些数字,最后吐出一个 html 文件。我正在控制此 html 文件的位置,并在成功提交 html 表单后显示的临时网站上为其提供 url。
输出 html 是在瞬间创建的,或者说它不是立即创建的。
有没有办法在我的临时 cgi 页面中检查 html 是否已完全编写,然后自动重定向到它?如果页面尚未准备好,我希望用户留在当前页面上。
目前在我的临时 cgi 页面上,我显示“检查”和“终止”按钮,您可以在其中检查状态/终止它。当单击“检查”并且网站准备就绪时,我会重定向到它。我还显示了一个指向 html 文件的 url,您可以访问该文件,但如果立即执行,则只会显示页面的一个片段。
我希望刷新/重定向是自动的,所以用户不必点击任何东西。
我在其他地方看到了“尝试加载已知的小图像并检测加载是否完成”的想法:
<img src="http://www.example.com/image.jpg"
onload="window.location='http://www.example.com';"
onerror="window.location='#';">
我喜欢这样,但它并不完美。我的临时 cgi 页面不会在不提交表单的情况下将 URL 进一步传递给结果 html(这里没有 GET,没有 POST,因为没有使用表单)。再一次,我希望重定向尽可能自动。
总结一下:如何从使用 CGI.pm 生成的页面中检查外部 html 页面是否已准备好被重定向到?DWR ( http://directwebremoting.org ) 是唯一的解决方案吗?
我很乐意接受一些 JavaScript 解决方案。
编辑:
我在提交初始表单后立即开始写入结果页面,并不断添加。正如已经建议的那样,检查非 404 响应(然后重定向)相当不容易/不可能,因为该页面从一开始就存在(但不完整)。