To teraz wywal to, bo korzystanie tutaj z AJAXa to głupota. Niepotrzebnie katujesz serwer dziesiątkami, a wręcz tysiącami bezsensownych zapytań, które również obciążają bazę.
Pobierz odrazu ok. 50 rekordów (nie ma potrzeby większej ilości. Nic się nie stanie jak po 150 sekundach ogłoszenia zaczną się powtarzać. No chyba, że z założenia użytkownik będzie miał się gapić w "dodatkowy bajer" przez 2:30 minuty i tak przeglądać treść serwisu - ale wtedy to trzeba zmienić założenie :])
1) Pobierasz 50 rekordów i wyświetlasz je w formie JSowej tablicy dwuwymiarowej:
Kod
var data = new Array(
new Array(12, "Treść", "http://link", "data"),
new Array(12, "Treść", "http://link", "data"),
new Array(12, "Treść", "http://link", "data"),
new Array(12, "Treść", "http://link", "data"),
itd.
);
W kodzie XHTML pamiętaj o tym by wyświetlić statycznie pierwszy rekord (tak by użytkownicy bez JS również widzieli jakąś treść (statyczną)).
<p id="abc"><a href="http://link"><span>data
</span> Treść
</a></p>
I po stronie PHP to tyle. Teraz wystarczy napisać prosty skrypt JS, który:
1) Najpierw przy pomocy window.setInterval() będzie wykonywał co 3 sekundy jakąś funkcję
2) Funkcja ta przy pomocy element.removeChild(child) usunie całą treść elementu (element to referencja do p#abc, a child to referencja do p#abc > a)
3) Następnie przy pomocy document.createElement(), element.setAttribute() oraz element.appendChild() utworzy nowy link i wrzuci go w miejsce starego.
Roziwązanie dużo łatwiejsze oraz mniej pamięcio/czasożerne.