gpt4 book ai didi

php - 为什么这个 AJAX 请求在应该进行多次调用时会花费这么长时间?

转载 作者:行者123 更新时间:2023-11-30 13:43:23 25 4
gpt4 key购买 nike

我向 PHP 脚本发出 AJAX 请求,该脚本从发生变化的文本文件中返回一个数字。此 AJAX 请求应每 3 秒发生一次。但是,发出一次 AJAX 请求后,它不会返回任何内容,并且 Firebug 显示仍在发出 AJAX GET 请求。几分钟后它返回并产生一个数字。它本应该打多个电话,但只打了一个电话,而且只是给出了最终答复。我正在努力弄清楚这是怎么发生的!? :(

//this is called first which calls getStatus which should get the progres of the
//conversion. This AJAX request takes a long time to come back which may hinder the
//getStatus coming back quickly maybe?
function convertNow(validURL){

startTime = setTimeout('getStatus();', 6000);
$.ajax({
type: "GET",
url: "main.php",
data: 'url=' + validURL + '&filename=' + fileNameTxt,
success: function(msg){
}//function
});//ajax

}//function convertNow

function getStatus(){

$.ajax({
type: "POST",
url: "fileReader.php",
data: 'textFile=' + fileNameTxt,
success: function(respomse){
textFileResponse = respomse.split(" ");
$("#done").html("Downloading" + textFileResponse[0]);

if(textFileResponse[0]=='100.0%'){
$("#loading").hide("slow");
$("#done").html("Complete");
return;
}
continueTime = setTimeout('getStatus();', 3000);
}
});//ajax
}

第二个 JavaScript 函数调用的 PHP 脚本是这样的:

$fileName = $_POST['textFile'];
//calls an external script to get the text file output
$result = file_get_contents($_SESSION['serverURL']."fileReader.php?textFile=$fileName");
echo $result;

以上是否正确,是否符合我的逻辑?或者以上是否意味着只会发出一个 AJAX 请求?

这个问题与another question有关.我以前认为很慢的 PHP 脚本。我希望现在问题与 JavaScript 相关。

谢谢大家的帮助。

最佳答案

我想知道这段代码何时可以正常工作。可以说在 Javascript 中实现类似的东西的整个想法是值得怀疑的。首先,因为你在 JavaScript 中根本没有任何同步技术,但在你的代码中,你依赖于代码的特定执行顺序,而 99% 的情况并非如此。通过设置:

setTimeout( "getStatus", 6000); 

你创建了一种并发,因此你可以让第二个脚本先执行,虽然你延迟了它,但是两个请求可以同时到达服务器,所以第二个脚本可能不会返回任何东西,所以成功功能将不再执行。
我强烈建议您考虑重新设计您的应用程序,因为问题根本不在 Javascript 部分。

顺便说一句,我认为 $.ajax 调用的使用必须如下所示:

$.ajax({
type: "POST",
url: "fileReader.php",
data: { param1: value1, param2:value2...etc},
success: function(respomse){ ...}});

附言。响应需要很长时间才能返回,这一事实指向服务器端的问题,而不是 Javascript 代码中的问题。如果我们开始讨论日志记录并且您提到了 firebug,您可以使用 console.log( "msg") 将您的消息登录到 firebug 控制台。

关于php - 为什么这个 AJAX 请求在应该进行多次调用时会花费这么长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/966219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com