Javascript 完全写入页面后,从cgi重定向到html

Javascript 完全写入页面后,从cgi重定向到html,javascript,html,perl,dwr,Javascript,Html,Perl,Dwr,我搜索了一个与我类似的案例,并找到了一些相关的帖子,但没有一个能回答我的问题 我正在执行的cgi脚本正在处理一些数字,最后输出一个html文件。我控制这个html文件的位置,并在成功提交html表单后显示的临时网站上提供指向它的url 输出html是在一瞬间创建的,换句话说,它不是立即创建的 有没有办法在我的临时cgi页面中检查html是否已完全编写,然后自动重定向到它?如果页面还没有准备好,我希望用户留在当前页面上 目前,在我的临时cgi页面上,我显示了“检查”和“终止”按钮,您可以在其中检查

我搜索了一个与我类似的案例,并找到了一些相关的帖子,但没有一个能回答我的问题

我正在执行的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()是唯一的解决方案吗

我很乐意接受一些JavaScript解决方案

编辑:

在提交初始表单之后,我立即开始向结果页面写入内容,并不断地动态添加内容。
检查非404响应(然后重定向)并不容易/可能,因为页面从一开始就存在(但不完整)。

由于您控制结果HTML的编写,我假设CGI生成的页面和静态结果都在同一个域上。在“等待”页面上设置一个函数,该函数使用
.setInterval
定期调用,该函数将尝试使用AJAX请求结果页面,并在收到非404响应后,将
窗口位置设置为结果页面。还为用户提供一些视觉指示/分心,这样他们就不会认为自己卡住了


生成结果页时,应首先使用一些临时文件名保存它,然后在完成后将其重命名为最终名称,这样在完成之前它不会出现在预期的地址。

由于您控制结果HTML的编写,因此我假定从CGI生成的页面和静态结果都位于同一域中。在“等待”页面上设置一个函数,该函数使用
.setInterval
定期调用,该函数将尝试使用AJAX请求结果页面,并在收到非404响应后,将
窗口位置设置为结果页面。还为用户提供一些视觉指示/分心,这样他们就不会认为自己卡住了


在生成结果页时,您应该首先使用一些临时文件名保存它,然后在完成后将其重命名为最终名称,这样在完成之前它不会出现在预期的地址。

使用类似js的框架将使这项任务变得非常简单。我想是这样的。不过,我的JavaScript不是很流利。我会尝试一下,除非你有一些简单的骨架,我可以在上面展开。@Oleg V.Volkov请看我编辑。您现在将如何处理这个问题?使用js框架(如)将使这成为一项非常简单的任务。我想是的。不过,我的JavaScript不是很流利。我会尝试一下,除非你有一些简单的骨架,我可以在上面展开。@Oleg V.Volkov请看我编辑。你现在会怎么做?