Я искал случай, похожий на мой, и нашел несколько связанных сообщений, но ни один из них не смог ответить на мой вопрос.
Cgi-скрипт, который я выполняю, обрабатывает некоторые числа и в конце выдает html-файл. Я контролирую расположение этого html-файла и предоставляю ему URL-адрес на временном веб-сайте, который отображается после успешной отправки html-формы.
Выходной html создается за мгновение или, другими словами, не создается мгновенно.
Есть ли способ проверить на моей временной странице cgi, полностью ли написан html, а затем автоматически перенаправить на него? Если страница не готова, я бы хотел, чтобы пользователь оставался на текущей странице.
На данный момент на моей временной странице cgi я отображаю кнопки «проверить» и «завершить», где вы можете проверить статус / завершить его. Когда нажимается «проверить» и сайт готов, я перенаправляюсь на него. Также я отображаю URL-адрес html-файла, к которому вы можете перейти, но будет представлен только фрагмент страницы, если следовать сразу.
Я хотел бы, чтобы обновление/перенаправление было автоматическим, поэтому пользователю не нужно ничего нажимать.
В другом месте я видел идею «попытаться загрузить известное маленькое изображение, и вы обнаружите, выполнена ли загрузка или нет»:
<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 (и затем перенаправить), как уже предлагалось, поскольку страница существует с самого начала (но не завершена).