Mam podstawowy plik html, który jest dołączony do programu java. Ten program java aktualizuje zawartość części pliku HTML za każdym razem, gdy strona jest odświeżana. Chcę odświeżyć tylko tę część strony po każdym interwale czasu. Mogę umieścić część, którą chciałbym odświeżyć w div, ale nie jestem pewien, jak odświeżyć tylko zawartość div. Każda pomoc będzie doceniona. Dziękuję Ci.Odśwież Część strony (div)
Odpowiedz
Użyj Ajax do tego.
Zbuduj funkcję, która pobierze bieżącą stronę przez ajax, ale nie całą stronę, tylko div z serwera. Dane zostaną następnie (ponownie za pośrednictwem jQuery) umieszczone wewnątrz tego samego elementu div i zastąpią starą zawartość nową.
odpowiedniej funkcji:
np
$('#thisdiv').load(document.URL + ' #thisdiv');
Uwaga, ładowanie automatycznie zastępuje zawartość. Pamiętaj, aby wstawić spację przed selektorem identyfikatora.
Musisz to zrobić po stronie klienta, na przykład z jQuery.
Powiedzmy chcesz pobrać HTML do div o identyfikatorze mydiv
:
<h1>My page</h1>
<div id="mydiv">
<h2>This div is updated</h2>
</div>
można zaktualizować tę część strony z jQuery w następujący sposób:
$.get('/api/mydiv', function(data) {
$('#mydiv').html(data);
});
na serwerze-stroną trzeba zaimplementować moduł obsługi zgłoszeń przychodzących pod numer /api/mydiv
i zwrócić fragment kodu HTML, który przechodzi do mydiv.
Zobacz ten Fiddle zrobiłem dla ciebie na przykład zabawy przy użyciu jQuery uzyskać z danych odpowiedzi JSON: http://jsfiddle.net/t35F9/1/
Fajny przykład i ułatwiłem. Czy możemy znaleźć jakieś wady? –
Załóżmy, że masz 2 elementy div wewnątrz pliku html.
<div id="div1">some text</div>
<div id="div2">some other text</div>
Program Java sama nie może zaktualizować zawartość pliku html html, ponieważ wiąże się z klientem, w międzyczasie java jest związane z back-end.
Można jednak komunikować się między serwerem (back-end) a klientem.
To, o czym mówimy, to AJAX, który osiągasz przy pomocy JavaScript, polecam używanie jQuery, która jest zwykłą biblioteką JavaScript.
Załóżmy, że chcesz odświeżyć stronę w każdym stałym przedziale, a następnie możesz użyć funkcji interwału, aby powtórzyć tę samą akcję co x czas.
setInterval(function()
{
alert("hi");
}, 30000);
Można również zrobić to w ten sposób:
setTimeout(foo, 30000);
Whereea foo jest funkcją.
Zamiast alertu ("cześć") można wykonać żądanie AJAX, które wysyła żądanie do serwera i otrzymuje pewne informacje (na przykład nowy tekst), które można wykorzystać do załadowania do elementu div.
Klasycznym AJAX wygląda następująco:
var fetch = true;
var url = 'someurl.java';
$.ajax(
{
// Post the variable fetch to url.
type : 'post',
url : url,
dataType : 'json', // expected returned data format.
data :
{
'fetch' : fetch // You might want to indicate what you're requesting.
},
success : function(data)
{
// This happens AFTER the backend has returned an JSON array (or other object type)
var res1, res2;
for(var i = 0; i < data.length; i++)
{
// Parse through the JSON array which was returned.
// A proper error handling should be added here (check if
// everything went successful or not)
res1 = data[i].res1;
res2 = data[i].res2;
// Do something with the returned data
$('#div1').html(res1);
}
},
complete : function(data)
{
// do something, not critical.
}
});
Wherea backend jest w stanie odbierać dane POST'ed i jest w stanie powrócić do obiektu danych informacji, na przykład (i bardzo preferrable) JSON, istnieje jest wiele samouczków z tym, jak to zrobić, GSON z Google jest czymś, czego użyłem jakiś czas temu, możesz go obejrzeć.
Nie jestem profesjonalistą z Java POST Receiving i zwrotem JSON tego typu, więc nie dam ci z tym przykładu, ale mam nadzieję, że to przyzwoity początek.
Twój przykład Ajax, jak to zrobić? zaktualizować na żywo? – TheCrazyProfessor
Delegacja wydarzeń. http://api.jquery.com/on/ – Jonast92
$.ajax(), $.get(), $.post(), $.load()
funkcje jQuery wewnętrznie wysyłają żądanie XML HTTP
. wśród tych load()
jest przeznaczona tylko dla określonego DOM Element
. Zobacz jQuery Ajax Doc. Szczegóły Q.A. na tych są Here.
- 1. odśwież div z jquery
- 2. Wydrukuj określoną część strony internetowej
- 3. Odśwież/przeładuj zawartość Div używając jquery/ajax
- 4. Jak stale aktualizować część strony
- 5. Załaduj tylko część strony z jquery
- 6. Jak wydrukować określoną część strony za pomocą window.print()
- 7. Odśwież EHCache
- 8. BeautifulSoup nie wyodrębnia wszystkich html (automatycznie usuwa znaczną część strony)
- 9. Odśwież Prosty Captcha
- 10. Odśwież treść php na <select>
- 11. PHP Odśwież Strona
- 12. polimerowy szablon "odśwież"
- 13. Nagłówek Odśwież
- 14. Jak wywołać makro po naciśnięciu przycisku Odśwież lub Odśwież wszystko?
- 15. jQuery, jeśli div zawiera ten tekst, należy zastąpić część tekstu
- 16. Bootstrap div stretch na dole strony
- 17. Jak zakotwiczyć DIV na dole strony?
- 18. Zachowaj pozycję div po przewinięciu strony użytkownika
- 19. zanik w div na ładowanie strony
- 20. Dołączanie strony internetowej do elementu div
- 21. przewijanie nakładki div bez przewijania całej strony
- 22. przycisk Trzymać się prawej strony div
- 23. Jak ustawić opcję div za innym elementem div, aby część granicy rozwijanej została pokryta?
- 24. Sharepoint: jak mogę znaleźć wszystkie strony hostujące daną część internetową?
- 25. Usuń część obramowania
- 26. jQuery UI autouzupełnianie odśwież dane
- 27. Odśwież tylko częściowy widok w MVC4
- 28. JWT odśwież przepływ tokena
- 29. Odśwież MKAnnotationView na MKMapView
- 30. Android ViewPager Odśwież fragment
Hej człowieku, właśnie się dowiedziałeś, że brakuje ci spacji po '(dwukropek w prawo?), Ten przykład nie działał po wyjęciu z pudełka :-) $ (' # thisdiv '). Load (document.URL + "#thisdiv"); –
Ta metoda ma dużą wadę. Jeśli użyjesz tej części strony i załadujesz ją ponownie, nie możesz ponownie wykonać tej samej akcji JQuery/Ajax bez ponownego ładowania całej strony w przeglądarce. Po ponownym załadowaniu tą metodą JQuery nie jest initalized/nie będzie działać ponownie. –
czy jesteś pewien, że potrzebujemy spacji przed # tagiem? Pracowałem dla mnie, jeśli usunę # tag. – Kurkula