Jak zrobić, by na stornie zmieniał się content po zmianie zawartości pliku txt bez odświeżania strony
window.onload = function () { if ($('#JavaScript').hasClass('JavaScript_off')) { $('#JavaScript').removeClass("JavaScript_off"); $('#JavaScript').addClass("JavaScript"); }; $.post('/php_function/set_session_variable.php', { ajax_test: 'javascript' }); console.log('OK'); $.ajax({ url: "/test.txt", dataType: 'json', success: function(data) { $( '#testowanie' ).html(data[1]); }, error: function() { alert("error"); } }); };
Napisałem coś takiego i wiem że problem jest w tym, że odświeża to po załadowaniu dokumentu.
Ale jak to zrobić by samo się przeładowywało?
Ok już chyba znalazłem rozwiązanie. gotowiec z neta, ale działa
var previous = ""; setInterval(function() { var ajax = new XMLHttpRequest(); ajax.onreadystatechange = function() { if (ajax.readyState == 4) { if (ajax.responseText != previous) { alert("file changed!"); previous = ajax.responseText; } } }; ajax.open("POST", "/test.txt", true); ajax.send(); }, 1000);
Zrobiłem, działa dobrze
setInterval(function() { var previous = ""; var ajax = new XMLHttpRequest(); ajax.onreadystatechange = function() { if (ajax.readyState == 4) { if (ajax.responseText != previous) { var data = JSON.parse(ajax.responseText); var id = $(this); $( '#testowanie' ).html(data[1]); previous = ajax.responseText; } } }; ajax.open("post", "/test.txt", true); ajax.send(); }, 1000);
Ale teraz mam inny problem.
Już opisuję:
Na stronie pobierane są dane z sqla i dla każdego wyniku tworzony jest div o ID odpowiadającym ID z bazy plus suma kontrolna, np ID sesji, albo konkretna tekst (jeszcze nie zdecydowałem).
Jak zrobić, by powyższa funkcja działała dla każdego diva.
Dla każdego z nich jest oddzielny plik zamiast test.txt jest to indywidualna nazwa (również pobierana z bazy).