gpt4 book ai didi

javascript - 如何在浏览器控制台中记录使用 jQuery AJAX 运行的 PHP 文件?

转载 作者:搜寻专家 更新时间:2023-10-31 21:50:07 24 4
gpt4 key购买 nike

我有一个执行数据处理的 PHP 文件。它由 $.ajax() 运行,有时处理需要很长时间处理的大文件。我需要在 移动中 显示的浏览器控制台中记录有关正在进行的进程的一些信息,而不仅仅是在 PHP 文件完成运行时。

根据我所做的研究,我发现有两个难点:

  1. 让 PHP 在完成之前吐出一些东西
  2. 让 jQuery/JS 随时随地显示它

为了解决#1,我试过:

echo "started"."<br>";

foreach (array("done this", "done that","had a coffee","burp") as $msg) {
sleep(3);
echo $msg."<br>";
flush();
ob_flush();
}

冲洗(); ob_flush(); 应该可以完成这项工作,尽管您可以测试 here它并没有像预期的那样严格显示 3s。有什么建议可以让它按预期显示吗?

至于如何解决 #2,我探索了一个涉及 XMLHttpRequest 的解决方案,但我不熟悉这个主题,所以不确定要寻找什么,也不确定它是否是正确的方向。 ..

这是我要运行的测试代码:

$("#run").click(function(e) {
$.ajax({
url: "http://constances-web-dev.vjf.inserm.fr/constances-web/ajax-test.php",
xhr: function() {
// get the native XmlHttpRequest object
var xhr = $.ajaxSettings.xhr();
xhr.addEventListener('readystatechange', function(e) {
console.log(e)
});
// set the onprogress event handler
//xhr.onprogress = function(evt){ console.log(evt.target.response) } ;
// set the onload event handler
return xhr;
},
success: function(msg) {
console.log(msg);
},
error: function(msg) {
console.log("Erreur: " + msg);
}
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="run">go</button>

附属问题:是否有一种(简单的)方法来绕过跨源限制,以便让 AJAX 示例在 SO 代码段中工作?

最佳答案

作为解决方法,我在我的 write2log 函数中添加了一个日志文件

static function log2File($string, $logFileName) {
if (substr($string,0,1 ) == "\n")
exec("echo '".date('Y-m-d_H:i:s')." ".addslashes(substr($string,1))."' >> ".$logFileName,$output,$status);
else
exec("echo -n ".addslashes($string)."' >> ".$logFileName,$output,$status);
}

然后我可以tail -f 日志来观察事情的进展情况

但这需要通过 ssh 访问服务器,所以我仍然有兴趣弄清楚如何登录到控制台

关于javascript - 如何在浏览器控制台中记录使用 jQuery AJAX 运行的 PHP 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45863567/

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