Jak odświeżyć po stronie użytkownika zawartośc strony ale nie za pomocą tagu <meta> ani skryptu window.reload() tylko tak, żeby mu się u góry w przeglądarce kółeczko nie kręciło??
Napisać do producentów przeglądarek żeby dodali taką funkcjonalność
Możesz przeładować stronę dynamicznie np przez fetch().
A jak to robi np. FB, że u góry zawsze widać facebook.com a przechodzi się na różne strony?
np. AJAX
zerknij np. tutaj:
https://stackoverflow.com/questions/22577457/update-data-on-a-page-without-refreshing
Dzięki gino. Zrobiłem zgodnie z Twoim tutorialem ale updatuje w kółko w pętli bez czekania.
window.addEventListener('load', function() { var xhr = null; getXmlHttpRequestObject = function() { if(!xhr) { // Create a new XMLHttpRequest object xhr = new XMLHttpRequest(); } return xhr; }; updateLiveData = function() { var now = new Date(); // Date string is appended as a query with live data // for not to use the cached version var url = 'livefeed.txt?' + now.getTime(); xhr = getXmlHttpRequestObject(); xhr.onreadystatechange = evenHandler; // asynchronous requests xhr.open("GET", url, true); // Send the request over the network xhr.send(null); }; updateLiveData(); function evenHandler() { // Check response is ready or not if(xhr.readyState == 4 && xhr.status == 200) { dataDiv = document.getElementById('liveData'); // Set current data text dataDiv.innerHTML = xhr.responseText; // Update the live data every 1 sec setTimeout(updateLiveData(), 1000); } } });
nie
setTimeout(updateLiveData(), 1000);
a:
setTimeout(updateLiveData, 1000);
Działa elegancko, również na mobilnych
I pomyśleć że zamiast 3 linijek nowoczesnego fetch API łatwiej było użyć 40 przestarzałego XMLHttpRequest
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)