2

我有一个网页,我在其中嵌入了一个脚本,运行后端可能需要 10 分钟。

我已经尝试了许多不同版本的带有计时器的 ajax 脚本加载器。

我需要什么:在页面加载时,我需要触发主工作脚本运行。该脚本的最后一行将在文件夹中创建一个唯一的文本文件,其中包含用户的文件名,以便在脚本完成后显示该文件。

并且,然后从页面加载触发,将是一个 AJAX 函数,每 10 秒加载第二个脚本,这个秒脚本非常小,并检查用户文件(来自上面的脚本)是否在指定的目录中。

如果文件还没有(脚本仍在工作),那么它会回显

<img src"../loading.gif">

如果文件现在在那里(脚本已经完成),那么它会回显一个链接(或者可能是另一个页面的标题,我还没有决定)......

这意味着在页面加载时,主处理脚本启动,并触发 ajax 脚本(将立即显示加载图像),一旦主脚本完成执行,加载图像将变为链接(或者可能只是将您重定向到另一个页面)

抱歉漫无边际,只是想提供尽可能多的信息.​​.....

ps,我想我需要一个简单的加载一次 ajax 函数来调用主处理脚本,以便它在后台工作,否则主页将需要很长时间才能加载

我最近的尝试:

function MakeRequest()
{
  var xmlHttp = getXMLHttp();

  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
      HandleResponse(xmlHttp.responseText);
    }
  }

  xmlHttp.open("GET", "processing_script.php?user=<?php echo $_SESSION['user']; ?>", true);
  xmlHttp.send(null);
}

function HandleResponse(response)
{
  document.getElementById('ResponseDiv').innerHTML = response;
}
4

1 回答 1

1

要每 5 秒加载一次文件,您可以使用setInterval函数每隔 xy 秒调用一次函数。

您是否考虑过使用诸如 jquery 之类的 javascript 框架?它们提供了一些非常易于使用的 ajax 方法来简化整个过程。“手动”处理 ajax 请求对我来说始终是“痛苦的”。

于 2012-10-02T06:02:50.013 回答