【发布时间】:2013-01-05 19:39:26
【问题描述】:
我有以下代码:
$(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 会话变量。有趣的是,一旦数据库的处理完成,我确实得到了响应。也就是说,我得到了文本“你好”。
【问题讨论】:
-
出现超时错误是什么原因?这与beeing同步无关,如果同步的调用,一个接一个的会被调用,在没有完成的时候,其他的都会被阻塞。
-
你能解释一下你认为异步是什么意思吗?
-
status.php 的每个间隔调用,在计算过程中都会出现超时错误。
-
为什么 AJAX 是异步的这一事实会让你相信你的调用不应该超时?
-
嗯,你能给我推荐一个更好的标题吗
标签: php jquery ajax heroku concurrency