2010-08-10

Ajax jak optymalizować requesty.

Używając Ajax i zaciągając coś po jakiś danych np po wartościach z inputu wiele razy a wartości te się nie zmieniły obciążamy niepotrzebnie serwer.

Przykład mamy forma z inputem nazwa i chcemy sprawdzić czy taka nazwa nie istnieje już w bazie robimy reuqest na stronkę sprawdza baza i odpowiada nam tak lub nie teraz user wpisał taką samą nazwę 10 razy i my 10 razy robimy request... ja się pytam po co ?

Jak temu zaradzić

robimy sobie globala vat oldData = null; przed

function Sprawdzam()
{
var name = $("input[name='nazwa']").val();

// przed wywołaniem ajaxa sprawdzamy czy ta wartość jest pusta lub różni się o poprzedniej
if (oldData == null || oldData != name)
{
$.ajax({
type: 'POST',
url: 'nasz_sprawdzacz.php',
data: name ,
success: function(msg)
{
$('#info').text(msg);
// przypisujemy do naszego globala nowa wartość
oldData = name;
}
});
}
}



Oczywiście można sobie podpiąć do tego nawet tablice łącząc elementy .join('-'); i przypisywać do oldData. (Obiekty możemy przepisać na tablice pętlą).


Jeżeli używamy forma możemy też użyć metody z jQuery .serialize() która nam ładnie zamieni inputy z forma na stringa.


Jest to przykład który może mieć zastosowanie w wielu miejscach naszego kodu by odciążyć serwer i zredukować ruch.

Brak komentarzy:

Top 5 List