ත්රෙඩ් එකේ බොහෝ අය සටහන් කර ඇති පරිදි, ඉල්ලීම සේවාදායකයාගේ පැත්තෙන් ගබ්සා කර ඇති නිසා, සේවාදායකයා තවමත් ඉල්ලීම ක්රියාවට නංවනු ඇත. මෙය සේවාදායකයේ අනවශ්ය බරක් ඇති කරයි, මන්දයත් එය ඉදිරිපස කෙළවරේ සවන් දීම අප විසින් අත්හැර දමා ඇති නිසාය.
මම විසඳීමට උත්සාහ කළ ගැටළුව (අනෙක් අයද ක්රියාත්මක විය හැකිය) පරිශීලකයා ආදාන ක්ෂේත්රයක් තුළ තොරතුරු ඇතුළත් කළ විට, ගූගල් ක්ෂණික ආකාරයේ හැඟීමක් සඳහා වූ ඉල්ලීමක් ඉවත් කිරීමට මට අවශ්ය විය.
අනවශ්ය ඉල්ලීම් ඉදිරිපත් නොකිරීමට සහ ඉදිරිපස කෙළවරේ ඇති සුලු බව පවත්වා ගැනීමට මම පහත සඳහන් දේ කළෙමි.
var xhrQueue = [];
var xhrCount = 0;
$('#search_q').keyup(function(){
xhrQueue.push(xhrCount);
setTimeout(function(){
xhrCount = ++xhrCount;
if (xhrCount === xhrQueue.length) {
// Fire Your XHR //
}
}, 150);
});
මෙය සෑම තත්පර 150 කට වරක් එක් ඉල්ලීමක් යවනු ඇත (ඔබේ අවශ්යතාවයන් සඳහා ඔබට අභිමතකරණය කළ හැකි විචල්යයක්). මෙහි හරියටම සිදුවන්නේ කුමක්ද යන්න තේරුම් ගැනීමට ඔබට ගැටලුවක් තිබේ නම්, ලොග් වන්නxhrCount
සහ xhrQueue
පමණක් නම් වාරණ පෙර කොන්සෝලය වෙත.
$.ajaxStop
නොහැකිද?