Wenn ich eine asynchrone Anfrage mit jQuery Ajax ausführen, manchmal die Antwort schnell in 800 ms zurückgegeben wird, manchmal ist es langsam und die Antwort wird in 2.50s (avg) zurückgegeben, und manchmal hängt es und zeigt nur die Ladebilder. Ich bin nicht sicher, ob es wegen meines PHP-Codes oder jQuery Ajax-Codes ist. Ich schicke einige Werte jQuery Ajax:Variable Geschwindigkeit der Antwort mit jQuery Ajax Anfragen
function get_detail_product(obj)
{
var id = obj.id ;
var $this = jQuery('#'+id);
var Thumb = jQuery('#Scroller div.Container') ;
jQuery.each(Thumb , function(){
jQuery(this).css('border' , '#ccc 2px solid');
});
$this.parent().css('border' , '#ff8500 2px solid') ;
var load_area = jQuery('.detail') ;
//ajax request
load_area.html("");
load_area.html('<div id="loading" style="margin-top:60px;margin-left:350px;"><img src="../images/loading.gif"><br>Loding ... </div>');
jQuery.ajax({
url: 'index.php?module=product&popup=on ',
type: 'POST',
data: 'pid=' + id ,
success: function(result) {
jQuery('#response').remove();
load_area.html(result);
jQuery('#loading').fadeOut(500, function() {
jQuery(this).remove();
});
}
});
}
und in der PHP-Datei Ich habe den folgenden Code, um die angeforderten Daten abzurufen:
//ajax requests
if(isset($_POST['subcatid']) && is_numeric($_POST['subcatid']))
{
$subcatid = $_POST['subcatid'] ;
$products = $dbc->getAll("select * from xxproduct where xsubcatid='$subcatid'") ;
//send result
echo '<table cellpadding="0" cellspacing="0" border="0" id="ScrollerTable"><tr>';
foreach ($products as $p) : echo '<td><div style="border:#ccc 2px solid ; padding:0px;margin-top:20px ; margin-bottom:20px ; margin-left:8px ; margin-right:8px;" class="Container"><a href="javascript:void(0)" id="'.$p['xproductid'].'" onclick="get_detail_product(this)" ><img src="imgsize.phpw=100&h=100&img=../uploads/product/'.$p['xproductid'].'/'.$p['xproductid'].'__1.jpg" border="0"/></a><div style="background-color:#ccc ;text-align:center ; padding:5px; ">'.$p['xproductname'].'</div></div></td>';
endforeach ;
echo ' </tr></table>';
}
Ich frage mich, wenn Sie irgendwelche Fehler in meinem Code finden können, die Verzögerung verursachen; zusätzlich verwende ich ein PEAR DB-Objekt, um mit der Datenbank zu interagieren.
Wenn ich den Titel meiner Frage auf dieser Seite eintippe, werden Vorschläge in etwa 500 ms zurückgegeben. Warum ist diese Ajax-Interaktion so schnell, aber meine ist es nicht?
Ja, danke, ich werde an Ihrer Lösung arbeiten. gute Empfehlung;) ich seprate Ajax ruft PHP-Dateien und jetzt bekomme ich bessere Ergebnisse. – mehdi