getJSON Synchroniczny
CEL: To, czego oczekuję, to pobranie danych z bazy danych i odświeżenie main.php (bardziej widoczne przez draw_polygon) za każdym razem, gdy coś zostanie dodane do bazy danych (po $ .ajax do submit_to_db.php).
Więc w zasadzie mam main.php, który wywoła ajax do innego php, aby otrzymać tablicę, która zostanie zapisana do bazy danych, a wywołanie json innego php, aby zwrócić tablicę, będzie używane przez main.php.
$(document).ready(function() {
get_from_db();
$('#button_cancel').click(function(){
$.ajax({
url: 'submit_to_db.php',
type: 'POST',
data: {list_item: selected_from_list},
success: function(result){
...
get_from_db();
}
});
});
function get_from_db(){
$.getJSON('get_from_db.php', function(data) {
...
draw_polygon(data);
});
}
});
W moim przypadku zrobiłem toget_from_db
wywołanie funkcji dlagetJSON
aby faktycznie uzyskać dane z bazy danych, z danymi do wykorzystaniadraw_polygon
. Ale czy tak powinno być zrobione? Jestem kompletnym nowicjuszem i to jest mój pierwszy razgetJSON
i ajax też, żeby być szczerym. Więc moje pytanie: Jak działa asynchronicznie? Czy istnieje inne obejście tego problemu zamiast wywoływania funkcjiget_from_db
zgetJSON
(nie jest synchroniczny, prawda? Czy to dlatego, że nie aktualizuje strony, gdy nie znajduje się w funkcji?) Cały czas - jak$.ajax
zasync: false
(Nawiasem mówiąc, nie mogłem go uruchomić). Moje podejście działa, ale pomyślałem, że może są inne lepsze sposoby na to. Chciałbym dowiedzieć się, jak. Z góry dziękuję. Mam nadzieję, że mam sens.
Aby to było bardziej zrozumiałe, oto co chcę osiągnąć:
@start
strony, pobierz dane z bazy danych (obecniegetJSON
)Maluj lub wciągajcanvas
używającdata
Po kliknięciu przycisku „Zakończ” zaktualizuje bazę danychChcę AUTOMATYCZNIE pobrać dane ponownie, aby odświeżyć zmiany na płótnie.