gpt4 book ai didi

php - 两个 Ajax 调用不能同时工作 (heroku)

转载 作者:行者123 更新时间:2023-12-01 03:45:17 24 4
gpt4 key购买 nike

我有以下代码:

$(window).load(function()
{
$('#content1').load('database.php');
setInterval (function()
{
$.post('status.php', { id: '1'}, function(responseText, responseStatus)
{
$('#content2').html(responseText);
});
}, 5000);
});

基本上,我调用database.php来执行一些数据库插入,并使用定期间隔来获取其进度状态。问题是在插入过程中,间隔帖子给我带来了请求超时错误。仅当database.php完成处理后,才会写入content2中的文本。

现在我在 status.php 文件中使用非常简单的代码,只是为了看看在处理 database.php 时是否可以获得响应。这是代码(非常简单):

<?php
echo "hello";
?>

我不知道为什么会收到超时错误并且没有得到响应。正如您所看到的,在 statuse.php 文件中,我没有使用任何可能阻止调用的 php session 变量。有趣的是,一旦数据库处理完成,我确实得到了响应。也就是说,我收到文本“hello”。

最佳答案

您可能正在使用 session 。 PHP 默认的基于文件的 session 处理程序在脚本处于事件状态时锁定 session ,因此从调用 session_start() 的那一刻起,就无法运行使用同一 session 的其他脚本并行,因为其他脚本将阻塞并挂起 session_start() 调用,直到第一个脚本完成。

如果您希望“进度”检查调用成功,则必须在数据库脚本中执行 session_write_close(),以便放弃 session 锁定,并且该 session 上的其他请求可以继续。

关于php - 两个 Ajax 调用不能同时工作 (heroku),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14175609/

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