index.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Захостить на гитхабе приложение, которое:
  2. // читает куки на клиенте, и если там есть дата последнего посещения, выводит ее на страницу
  3. // пишет в куки на клиенте текущую дату посещения
  4. let p = document.body.appendChild(document.createElement('p'));
  5. var res = document.cookie
  6. .split ( "; " )
  7. .map ( x => {
  8. var tmp = x.split ( "=" );
  9. tmp[0] === 'Your last visit' ? p.innerText = tmp[0] + ' : '+ tmp[1].split( 'GMT' )[0]: p.innerText ='Hello! Your first visit!';
  10. })
  11. document.cookie =`Your last visit = ${new Date}`
  12. // localStorage
  13. // Объявить функцию, которая будет вызываться в момент изменения хэш-части адреса страницы
  14. // и сохранять в localStorage клиента hash-часть адреса страницы как pageId
  15. // и время входа ( в секундах ) как startTime
  16. // Назначить эту функцию обработчиком события hashchange объекта window
  17. // Желательно, чтобы при изменении хеш-части адреса происходило обновление контента страницы без перезагрузки
  18. // ( например, изменялся заголовок и картинка, чтобы создать иллюзию перехода на новую страницу )
  19. // Отслеживать в панели разработчика изменения в localStorage
  20. let text =document.body.appendChild(document.createElement('p'));
  21. document.body.style.backgroundImage=`url(https://picsum.photos/900/900/?random)`;
  22. document.body.style.backgroundSize= 'cover';
  23. document.body.style.fontSize = '40px';
  24. const historyArr = [];
  25. change = function() {
  26. historyArr.push( { 'pageId': location.hash, 'startTime': Math.round(new Date().getTime()/1000)});
  27. localStorage.setItem ( 'history', JSON.stringify(historyArr));
  28. document.body.style.backgroundImage=`url(https://picsum.photos/900/900/?random/${Math.round((Math.random())*1000)})`;
  29. text.innerHTML = 'This is page number :' + location.hash.substring(1);
  30. };
  31. window.addEventListener('hashchange', change);