update.js 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. function check (timestamp) {
  2. setTimeout (function () {
  3. var request = new XMLHttpRequest;
  4. request.onreadystatechange = function () {
  5. if (request.readyState === 4 && request.status === 200)
  6. if (request.responseText !== timestamp) location.reload (); else check (timestamp);
  7. };
  8. request.open ("GET", "date");
  9. request.send ();
  10. }, 2500);
  11. }
  12. function load (page) {
  13. if ("replaceState" in history) history.replaceState (null, "", page.href); else return true;
  14. var request = new XMLHttpRequest;
  15. request.onreadystatechange = function () {
  16. if (request.readyState === 4 && request.status === 200)
  17. page.parentNode.parentNode.parentNode.parentNode.innerHTML = request.responseText;
  18. };
  19. request.open ("GET", page.href + ".log");
  20. request.send ();
  21. return false;
  22. }
  23. function update (timers) {
  24. for (var i = 0; i !== timers.length; i++) {
  25. var timer = timers[i]; if (timer === null) break; text = timer.innerHTML;
  26. var duration = parseInt (text, 10) * 3600 + parseInt (text.substr (3), 10) * 60 + parseInt (text.substr (6), 10) + 1;
  27. timer.innerHTML = [("0" + Math.floor (duration / 3600)).slice (-2), ("0" + Math.floor (duration / 60) % 60).slice (-2), ("0" + duration % 60).slice (-2)].join (":");
  28. }
  29. }
  30. if ("getElementsByClassName" in document) setInterval (update, 1000, document.getElementsByClassName ("timer"));