मेरे पास एक एकल फ़ाइल AJAX परीक्षक है। का आनंद लें!!! सिर्फ इसलिए कि मुझे अपने होस्टिंग प्रदाता के साथ समस्याएं हुई हैं
<?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>
संपादित करें:
r का अर्थ है पंक्ति और w प्रतीक्षा समय।
जब आप प्रारंभ में प्रेस बटन 80 (या किसी भी अन्य नंबर) समवर्ती ajax अनुरोध के जावास्क्रिप्ट द्वारा लॉन्च किए जाते हैं, लेकिन जैसा कि ज्ञात है कि वे ब्राउज़र द्वारा स्पूल किए गए हैं। इसके अलावा वे सर्वर से समानांतर में अनुरोध किया जाता है (कुछ संख्या तक सीमित है, यह इस सवाल का तथ्य है)। यहां अनुरोधों को एक यादृच्छिक विलंब (w द्वारा स्थापित) के साथ सर्वर साइड हल किया जाता है। प्रारंभ समय पर सभी अजाक्स कॉल को हल करने के लिए आवश्यक समय की गणना की जाती है। जब परीक्षण समाप्त हो जाता है, तो आप यह देख सकते हैं कि क्या यह आधा लिया, तीसरा लिया, कुल समय का एक चौथाई, आदि लिया, जो कि सर्वर पर कॉल पर समानता थी घटाया। यह सख्त नहीं है, और न ही सटीक है, लेकिन वास्तविक समय में देखने के लिए अच्छा है कि कैसे अजाक्स कॉल को पूरा किया जाता है (आने वाले क्रॉस को देखकर)। और अजाक्स मूल बातें दिखाने के लिए एक बहुत ही सरल आत्म निहित स्क्रिप्ट है।
बेशक, यह मानता है, कि सर्वर साइड किसी भी अतिरिक्त सीमा का परिचय नहीं दे रहा है।
अधिमानतः फायरबग नेट पैनल (या आपके ब्राउज़र के समकक्ष) के साथ संयोजन में उपयोग करें