İş parçacığındaki birçok kişinin belirttiği gibi, istek istemci tarafında iptal edildiğinden, sunucu yine de isteği işleyecektir. Bu, sunucuda gereksiz yük oluşturur çünkü ön uçta dinlemeyi bıraktığımız işleri yapıyor.
Çözmeye çalıştığım sorun (diğerlerinin de çalışabileceği), kullanıcı bir girdi alanına bilgi girdiğinde, Google Anında Arama hissi için bir istek göndermek istediğimdir.
Gereksiz istekleri yerine getirmekten kaçınmak ve kullanıcı arabiriminin gizliliğini korumak için aşağıdakileri yaptım:
var xhrQueue = [];
var xhrCount = 0;
$('#search_q').keyup(function(){
xhrQueue.push(xhrCount);
setTimeout(function(){
xhrCount = ++xhrCount;
if (xhrCount === xhrQueue.length) {
// Fire Your XHR //
}
}, 150);
});
Bu aslında her 150 ms'de bir istek gönderir (kendi ihtiyaçlarınıza göre özelleştirebileceğiniz bir değişken). Burada tam olarak ne olduğunu anlamakta güçlük çekiyorsanız , if bloğundan hemen önce oturum açın xhrCount
ve xhrQueue
konsola gidin.
$.ajaxStop
mısın?