获得Ajax回调的最快方式


Fastest way to get the Ajax callbacks

我有一个名为" items "的表,它有10行。这个items表包含2列(id, item_name)。item_name是我存储图像名称的地方,比如item_fdsj43.jpg、item_bdf34.jpg等等……

如果我想显示所有这些图像,我可以这样做:

fetching.php:
$query = "SELECT item_name FROM items";
$mysql_query = mysql_query($query);
while($mysql_fetch_assoc = mysql_fetch_assoc($mysql_query)){
  $mysql_fetch_assoc_item_name = $mysql_fetch_assoc['item_name'];
  echo 'img/'.$mysql_fetch_assoc_item_name;
}

JAVASCRIPT
$('fetching.php', function(data)){
  $('#inner_container').append(data);
});

这将同时显示所有数据,并在获取完成后将其附加在'#inner_container'上。但是,与本网站(http://www.bedbathstore.com/)的搜索引擎相比,此回调需要一段时间并且速度较慢。有办法提高它的速度吗?

这里我可以建议您使用JSON代替echo的输出数据,下面是示例代码

你可以根据需要修改

PHP代码

ob_start();
imagepng($my_img);
$imageData = ob_get_contents();
ob_clean(); 
$results = array(
  'price' => $_GET['priceX'],
  'image' => base64_encode($imageData)
);
$json = json_encode($results);
echo $json;

Javascript代码:

$.getJSON("/ajax-script.php", function(data) {
  $("#element").append($("<img />").attr('src', 'data:image/png;charset=utf8;base64,' + data.image));
});

你可以使用json从服务器异步检索图像路径然后你可以像这样将这些图像附加到图像容器中,

//fetching.php:
$query = "SELECT item_name FROM items";
$mysql_query = mysql_query($query);
$file_names = array();
while($mysql_fetch_assoc = mysql_fetch_assoc($mysql_query)){
    $mysql_fetch_assoc_item_name = $mysql_fetch_assoc['item_name'];
    array_push($file_names, 'img/'.$mysql_fetch_assoc_item_name);
}
echo json_encode($file_names);

//JAVASCRIPT
$.getJSON("fetching.php", function(data) {
    $.each(data, function() {
    $('#inner_container').append($("<img />").attr('src', this);
    });
});