আমি একটি একক ফাইল এজেএক্স পরীক্ষক লিখেছি। উপভোগ কর!!! কেবলমাত্র আমার হোস্টিং সরবরাহকারীর সাথে আমার সমস্যা হয়েছে
<?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 এর অর্থ সারি এবং ডাব্লু ওয়েটিং টাইম।
যখন আপনি প্রাথমিকভাবে প্রারম্ভিক বোতামটি 80 টি (বা অন্য কোনও সংখ্যা) চাপুন সাম্প্রতিক এজাক্স অনুরোধটি জাভাস্ক্রিপ্ট দ্বারা চালু করা হয়, তবে যেমনটি জানা যায় সেগুলি ব্রাউজার দ্বারা ছড়িয়ে দেওয়া হয়। এছাড়াও তাদের সমান্তরালে সার্ভারের কাছে অনুরোধ করা হয়েছে (নির্দিষ্ট সংখ্যায় সীমাবদ্ধ, এটি এই প্রশ্নের সত্য)। এখানে অনুরোধগুলি এলোমেলো বিলম্বের সাথে সার্ভারের পাশে সমাধান করা হবে (ডাব্লু দ্বারা প্রতিষ্ঠিত)। শুরুর সময়ে সমস্ত অজ্যাক্স কলগুলি সমাধান করার জন্য প্রয়োজনীয় সমস্ত সময় গণনা করা হয়। পরীক্ষা শেষ হয়ে গেলে, আপনি দেখতে পাচ্ছেন যে এটি অর্ধেক সময় নিয়েছে, তৃতীয় হয়েছে, মোট সময়ের এক-চতুর্থাংশ, ইত্যাদি নিয়েছে, সার্ভারের কলগুলিতে সমান্তরালতাটি কেটেছিল। এটি কঠোর বা সুনির্দিষ্ট নয়, তবে কীভাবে আজাক্স কলগুলি সম্পন্ন হয় (আসন্ন ক্রসটি দেখে) রিয়েল টাইমে দেখতে সুন্দর। এবং এজাক্স বেসিকগুলি দেখানোর জন্য একটি খুব সাধারণ স্ব-রচিত স্ক্রিপ্ট।
অবশ্যই, এটি ধরে নিয়েছে, সেই সার্ভার পক্ষটি কোনও অতিরিক্ত সীমা প্রবর্তন করছে না।
ফায়ারব্যাগ নেট প্যানেল (বা আপনার ব্রাউজারের সমতুল্য) এর সাথে একযোগে ব্যবহার করুন