Saya telah menulis satu file tester AJAX. Bersenang senang lah!!! Hanya karena saya punya masalah dengan penyedia hosting saya
<?php /*
Author: Luis Siquot
Purpose: Check ajax performance and errors
License: GPL
site5: Please don't drop json requests (nor delay)!!!!
*/
$r = (int)$_GET['r'];
$w = (int)$_GET['w'];
if($r) {
sleep($w);
echo json_encode($_GET);
die ();
} //else
?><head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
var _settimer;
var _timer;
var _waiting;
$(function(){
clearTable();
$('#boton').bind('click', donow);
})
function donow(){
var w;
var estim = 0;
_waiting = $('#total')[0].value * 1;
clearTable();
for(var r=1;r<=_waiting;r++){
w = Math.floor(Math.random()*6)+2;
estim += w;
dodebug({r:r, w:w});
$.ajax({url: '<?php echo $_SERVER['SCRIPT_NAME']; ?>',
data: {r:r, w:w},
dataType: 'json', // 'html',
type: 'GET',
success: function(CBdata, status) {
CBdebug(CBdata);
}
});
}
doStat(estim);
timer(estim+10);
}
function doStat(what){
$('#stat').replaceWith(
'<table border="0" id="stat"><tr><td>Request Time Sum=<th>'+what+
'<td> /2=<th>'+Math.ceil(what/2)+
'<td> /3=<th>'+Math.ceil(what/3)+
'<td> /4=<th>'+Math.ceil(what/4)+
'<td> /6=<th>'+Math.ceil(what/6)+
'<td> /8=<th>'+Math.ceil(what/8)+
'<td> (seconds)</table>'
);
}
function timer(what){
if(what) {_timer = 0; _settimer = what;}
if(_waiting==0) {
$('#showTimer')[0].innerHTML = 'completed in <b>' + _timer + ' seconds</b> (aprox)';
return ;
}
if(_timer<_settimer){
$('#showTimer')[0].innerHTML = _timer;
setTimeout("timer()",1000);
_timer++;
return;
}
$('#showTimer')[0].innerHTML = '<b>don\'t wait any more!!!</b>';
}
function CBdebug(what){
_waiting--;
$('#req'+what.r)[0].innerHTML = 'x';
}
function dodebug(what){
var tt = '<tr><td>' + what.r + '<td>' + what.w + '<td id=req' + what.r + '> '
$('#debug').append(tt);
}
function clearTable(){
$('#debug').replaceWith('<table border="1" id="debug"><tr><td>Request #<td>Wait Time<td>Done</table>');
}
</script>
</head>
<body>
<center>
<input type="button" value="start" id="boton">
<input type="text" value="80" id="total" size="2"> concurrent json requests
<table id="stat"><tr><td> </table>
Elapsed Time: <span id="showTimer"></span>
<table id="debug"></table>
</center>
</body>
Edit:
r berarti baris dan waktu tunggu w.
Ketika Anda awalnya menekan tombol start 80 (atau nomor lain) dari permintaan ajax bersamaan diluncurkan oleh javascript, tetapi seperti diketahui mereka spooled oleh browser. Juga mereka diminta ke server secara paralel (terbatas pada nomor tertentu, ini adalah fakta dari pertanyaan ini). Di sini permintaan diselesaikan sisi server dengan penundaan acak (ditetapkan oleh w). Pada waktu mulai semua waktu yang dibutuhkan untuk menyelesaikan semua panggilan ajax dihitung. Ketika tes selesai, Anda dapat melihat apakah butuh setengah, butuh ketiga, butuh seperempat, dll dari total waktu, dikurangi yang merupakan paralelisme pada panggilan ke server. Ini tidak ketat, tidak tepat, tetapi menyenangkan untuk melihat secara real time bagaimana panggilan ajax selesai (melihat salib yang masuk). Dan adalah script mandiri sangat sederhana untuk menunjukkan dasar-dasar ajax.
Tentu saja, ini mengasumsikan, bahwa sisi server tidak memperkenalkan batas tambahan apa pun.
Lebih disukai digunakan bersamaan dengan panel jaring pembakar (atau yang setara dengan browser Anda)