grzegorz_g
30.11.2007, 23:59:02
poznałem juz trochę advAjax ale nigdzie jeszcze nie znalazłem rzeczy którą muszę zrobić.
Chcę by advAjax pobierał dane z mysql nie co jakiś czas (setInterval) tylko zaraz po zaktualizowaniu bazy. Robił juz ktoś coś takiego jest to do zrealizowania przy pomocy advAjax.
oto mój kod:
<script language="JavaScript"> advAJAX.setDefaultParameters({
onSuccess : function(obj) {
document.getElementById(obj.tag).innerHTML = obj.responseText;
}
});
function advAJAXGet(){advAJAX.get({ tag: "layer1", url: "f1live_ajax.php" });}
advAJAXGet();
window.setInterval(advAJAXGet,10000);
Cysiaczek
1.12.2007, 00:09:36
W advAjax nie robiłem, ale generalnie sprowadza się to do 3 kroków
1. Wysłanie requesta aktualizującego dane
2. Odebranie informacji (w js) o tym, że została baza zaktualizaowana (chyba onSuccess, albo onFinalization)
3. Wysłanie requesta pobierającego zaktualizowane dane
Musisz więc napisać kd wywołujący pkt.3 tam w funckji onSuccess
Jeśli jednak chodziło Ci o to, aby dane były pobierane niezależni od aktualnej sesji, to właściwie zostaje Ci tylko request pomocniczy.
Wysyłasz przy setInterval request z zapytaniem "Czy od mojego ostatniego sprawdzenia baza została zaktualizowana?"
Jeśli tak, to wywołujesz funkcję pobierzZaktualizowaneDane() (albo jako odzielny request, albo od razu w tym, który sprawdzał stan bazy danych - zależy jak chcesz)
Pozdrawiam.
grzegorz_g
30.12.2007, 09:12:03
mam teraz pytanie w jaki sposbób wyslac requesta:
Cytat
Wysyłasz przy setInterval request z zapytaniem "Czy od mojego ostatniego sprawdzenia baza została zaktualizowana?"