2013-06-02 75 views
0

我有一個名爲'items'的表,它有10行。這個'項目'表包含2列(id,item_name)。 ITEM_NAME是我存儲圖像的名字,如item_fdsj43.jpg,item_bdf34.jpg,等等...獲得Ajax回調的最快方法

如果我要顯示所有這些圖像,我做這樣的事情:

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/)。有什麼方法可以提高速度嗎?

+3

得到更好的網絡連接。 – Michelle

+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再保留[並正式棄用(https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://www.brightmeup.info/article.php?a_id=2)。 –

+0

「$('fetching.php',.....」。你確定沒有東西丟失嗎?可能是'.get()'?否則,ajax調用的地方是什麼? –

回答

0

在這裏,我可以使用下面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建議您JSON,而不是輸出數據代碼:

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

就是這麼快本網站的搜索引擎(http://www.bedbathstore.com/) – user2310422

+0

是的,如果你想利用搜索引擎,我想你應該定義你的圖片名稱與你的關鍵詞搜索或項目相關。 – liyakat

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); 
    }); 
});