我认为我正在做一个经典的ajax脚本,对于使用它的人来说应该相当容易。
好的想法是从jquery ajax调用一个页面来计算和循环一些数据。我希望页面在计算出1行时回复javascript。然后jquery应该为行填充div行。这意味着它不应该等待所有行完成,而是一次只占一行。
有意义吗?这个问题应该是众所周知的,但对于我的不好解释感到抱歉。到目前为止我的代码:
Jquery页面:
$(document).ready(function() {
loadCityFriends();
});
function loadCityFriends() {
$.ajax({
url: 'cityfriends.php',
success: function(data) {
$("#cityfriends").append(data);
}
});
}
和cityfriends.php(页面计算):
foreach bla bla bla
print '{"fbid": "'.$friend["id"].'", "img": "'.$friend["picture"].'"}';
我的代码等到cityfriends.php完成循环,然后填充div。
答案 0 :(得分:1)
执行此操作的唯一方法是对PHP脚本进行多次独立调用,可能首先请求行数,然后依次请求每行。 PHP在完成执行之前不会返回,所以通过一个ajax调用,您将查看计算后返回的所有行或仅查看第一行。
这样的事情会起作用:
PHP
function getRows()
{
$query = mysql_query("SELECT * FROM `foo`");
echo json_encode(array ("num_rows" => mysql_num_rows()) );
}
function returnRow()
{
$row_id = $_POST["row_id"];
$query = mysql_query("SELECT * FROM `foo` WHERE `id`=".$row_id);
$row = mysql_fetch_array($query);
echo json_encode(array ("row" => $row));
}
然后使用ajax首先轮询getRows(),然后轮询returnRow getRows()返回的相应行数;
显然,您需要清理输入并优化代码,但这应该是一般的想法。