0

我有一个名为“项目”的表,它有 10 行。此“项目”表包含 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/ )相比,此回调需要一段时间且较慢。有什么办法可以提高它的速度吗?

4

2 回答 2

0

您可以使用 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);
    });
});
于 2013-06-02T07:20:42.797 回答
0

在这里,我可以向您建议,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));
});
于 2013-06-02T06:39:56.583 回答