Zastanawiałem się, czy ktoś może mi pomóc. Mam stronę php, która wyszukuje wiersze z bazy danych. Chcę wywołać to za pomocą jquery/ajax co 30 sekund. Ale chcę też móc wywołać stronę w dowolnym momencie, więc jeśli dodam rekord za pomocą formularza, po przesłaniu formularza chcę, aby strona wywołana przez ajax wywołała natychmiastowe wyniki. Czy każdy może wskazać mi właściwy kierunek lub podać kod bazowy, abym mógł spróbować to zrozumieć? Nadal bardzo nowe jquery/ajax.Połączenie Jquery/Ajax z timerem
37
A
Odpowiedz
67
Jeśli chcesz ustawić coś na zegar, można użyć setTimeout
lub setInterval
metody JavaScript w:
setTimeout (expression, timeout);
setInterval (expression, interval);
Gdzie expression
jest funkcją i timeout
i interval
są liczbami całkowitymi w milisekundach. setTimeout
uruchamia licznik raz i uruchamia expression
jeden raz, podczas gdy setInterval uruchomi expression
za każdym razem, gdy przejdzie interval
.
Więc w twoim przypadku to działa tak:
setInterval(function() {
//call $.ajax here
}, 5000); //5 seconds
ile idzie Ajax, jQuery zobaczyć na ajax()
method. Jeśli uruchomisz interwał, nic nie powstrzyma Cię przed wywołaniem tego samego numeru ajax()
z innych miejsc w kodzie.
Powiązane problemy
- 1. Wywołanie jQuery/AJAX z timerem
- 2. . Maksymalna liczba równoczesnych wątków z timerem
- 3. Dlaczego add_EventName nie działa z Timerem?
- 4. Wywołanie WebMethod przy użyciu jQueryAjax „GET”
- 5. timerem nie zatrzymuje się w android
- 6. W jaki sposób metoda KeepAlive Garbage Collector działa z timerem?
- 7. Lewe połączenie z klauzulą
- 8. Połączenie z pamięcią (R)
- 9. Połączenie Ajax z Bookmarklet
- 10. Połączenie Bluetooth z samochodem
- 11. Trwałe połączenie z klientem
- 12. Połączenie ADB z AndroidTV
- 13. Połączenie łańcuchowe z named_scope
- 14. Niejednoznaczne połączenie z abs
- 15. połączenie mongodb połączenie
- 16. Usuń połączenie lub Zamknij połączenie
- 17. io.on ("połączenie", ...) kontra io.sockets.on ("połączenie", ...)
- 18. angularjs: wybierz połączenie z listy
- 19. sprawdź połączenie internetowe z phonegap
- 20. Połączenie Android z gniazdem tetheringu
- 21. Węzeł Połączenie serwera z serwerem
- 22. Wymuś połączenie z Nginx natychmiast
- 23. Połączenie dwóch QStrings z całkowitą
- 24. Przetestuj połączenie FTP z PHP
- 25. Połączenie z wieloma użytkownikami webRTC
- 26. Xdebug: połączenie z dowolnego hosta
- 27. MongoDB: sprawdź połączenie z DB
- 28. połączenie RMI odmówił z localhost
- 29. Przerwij połączenie z niezarządzanym DLL
- 30. Android: ustanów połączenie z Internetem
Dzięki za odpowiedź! Więc jeśli powiesz, że jeśli użyję powyższego kodu, aby odświeżyć wywołanie ajax co 5 sekund, to na tej samej stronie mam formularz wypełniony przez kogoś, który zostanie przesłany, po zakończeniu dodawania rekordu mogę wywołać tę samą funkcję setInterval powyżej, a to nie będzie mieć 2 wystąpienia tej funkcji działającej jednocześnie? – John
A więc chcesz, aby interwał był uruchamiany co 30 sekund *, dopóki * użytkownik nie zainicjuje przesyłania formularza ... i po tym czasie utworzy nowy odstęp czasu? Jest to również możliwe. 'setInterval()' zwraca liczbę całkowitą, która jest identyfikatorem przedziału. Jeśli przechowujesz ten identyfikator w zmiennej, możesz wywołać 'clearInterval (id)', które zatrzyma postęp. Następnie można przywrócić połączenie 'setInterval()' po zakończeniu przesyłania formularza ajax. – treeface