我有一个网页,我正在嵌入一个脚本,可能需要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;
}
答案 0 :(得分:1)
要每5秒加载一个文件,您可以使用setInterval函数每隔xy秒调用一次该函数。
您是否考虑使用jquery等javascript框架?它们提供了一些非常容易使用的ajax方法来简化整个过程。 “手动”处理ajax请求对我来说总是“痛苦的屁股”。