1
0

autoreload.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. ;(() => {
  2. var current = ''
  3. var response = (md) => {
  4. if (!current) {
  5. current = md
  6. }
  7. else if (current !== md) {
  8. state.reload.md = true
  9. current = md
  10. render(md)
  11. }
  12. }
  13. var xhr = new XMLHttpRequest()
  14. xhr.onreadystatechange = () => {
  15. if (xhr.readyState === 4) {
  16. response(xhr.responseText)
  17. }
  18. }
  19. var get = () => {
  20. if (location.protocol === 'file:') {
  21. chrome.runtime.sendMessage({
  22. message: 'autoreload',
  23. location: location.href
  24. }, (res) => {
  25. if (res.err) {
  26. console.error(res.err)
  27. clearInterval(state.reload.interval)
  28. }
  29. else {
  30. response(res.body)
  31. }
  32. })
  33. }
  34. else {
  35. xhr.open('GET', location.href + '?preventCache=' + Date.now(), true)
  36. try {
  37. xhr.send()
  38. }
  39. catch (err) {
  40. console.error(err)
  41. clearInterval(state.reload.interval)
  42. }
  43. }
  44. }
  45. get()
  46. state.reload.interval = setInterval(get, state.reload.ms)
  47. })()