请耐心等待,我会尝试解释我确信其他人面临的问题,但在网络上找不到任何指向解决方案的问题。
第1页(使用Ajax的PHP页面) 目的是收集数据并重定向到下一页以显示更新页面,即
window.location.replace("Updating.php"); <-- This is Page 2
第2页(包含用于更新服务器数据库的次要html和PHP脚本的PHP页面) 问题是,在PHP脚本完成之后,此页面才会完全呈现。因为这个过程可能需要10秒左右,所以用户不知道发生了什么,基本上更新页面(页面2)在脚本完成之前不会呈现,这当然会失败。
问题
是否有与javascript onload <body onload="myFunction()">
类似的功能,可以在脚本开始运行之前呈现页面。我认为没有,但我会欣赏和洞察我如何克服这个问题。
由于
编辑添加已请求的AJAX代码
function handleDataCallback(result) {
var json = eval('(' + result + ')');
if (json['msg'] != "") {
// alert(json['dirID']);
processUpload(json['dirID']);
}
};
/*
* This is called when uploadFile.js is finished.
* We many need to add an AJAX WaitforID here in case the processUpload takes too long.
*/
function processUpload(data){
var dir_name = data;
$.ajax({
url: 'processUpload.php',
type: 'POST',
data: {'folderKey' : dir_name },
success: function(data) {
'<%Session["dir_id"] = "'+ dir_name + '"; %>';
//Takes us back to the index file with the directory
// window.location.replace("../../index.php?dir_id="+dir_name);
window.location.replace("Updating.php");
}
});
};
/*
* Obtains the dirID
*/
function waitForDataID (handleDataCallback) {
$.ajax({
type: "GET",
url: "extractArchives.php",
async: true,
cache : false,
timeout: 10000, // sets timeout to 30 seconds
success : handleDataCallback,
erorr : function (XMLHttpRequest,textStatus, erorrThrown) {
alert("erorr :" + textStatus + "(" + erorrThrown + ")");
}
});
};
答案 0 :(得分:1)
您可以使用window.onload
javascript功能。将所有功能放入其中。这样,只有在页面完全加载完毕后才会执行代码。
window.onload = function () {
// Your code here ...
}
答案 1 :(得分:1)
在PHP脚本完成之后,此页面才会完全呈现
您的选择是:
请注意,除了实际修复性能问题之外,上述所有选项都会在您的服务器上暴露出DOS漏洞。