Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как подключить или просто кодам написать следующий таймер? (https://javascript.ru/forum/jquery/79899-kak-podklyuchit-ili-prosto-kodam-napisat-sleduyushhijj-tajjmer.html)

рони 05.04.2020 23:01

Pavel_16,
на странице(блоке) приветствия нужно сохранить только имя,
на странице(блоке) игры только время,
на странице(блоке) рекордов запросить данные с рекордами и после получения добавить в них имя и время , потом вывести таблицу.
как - то так.

Pavel_16 05.04.2020 23:09

Цитата:

Сообщение от рони (Сообщение 522290)
Pavel_16,
на странице(блоке) приветствия нужно сохранить только имя

но оно вроди так и есть, :no:

$(document).ready(function(){

if (localStorage.getItem("users") === null) {
  $.getJSON('Storage/users.json', function(users) {
    localStorage.setItem("users", JSON.stringify(users));
  });
}

var users = localStorage.getItem("users");

var $select = $('#name');  
$select.ready(function(event){ 
    $.each(JSON.parse(users), function (key, value) {
      $('<option>').val(value.name).text(value.name).appendTo($select);
    });
});

$('#play_game').click(function() {
  var userName = $('#new_name').val();
  var newUser = {name:userName};
  users = JSON.parse(users);
  users.push(newUser);
  console.log(users);
  localStorage.setItem("users", JSON.stringify(users));
});
});

Pavel_16 05.04.2020 23:11

Цитата:

Сообщение от рони (Сообщение 522290)
Pavel_16,
на странице(блоке) игры только время,

const save = { elem: this, color: this.getAttribute("fill") };
    stateStack.push(save);
    this.setAttribute("fill", currentColor.dataset.color);
    if ([...elements].every(ep => ep.getAttribute('fill') != '#ffffff')) {
      tick();
      let time = document.getElementById('play_timer').innerHTML;
      newUser.time = time;
      localStorage.setItem("users", JSON.stringify(users));
      setTimeout(() => alert('Вы всё закрасили!'));
      *location.href = "/rekord.html";
    }

рони 05.04.2020 23:34

Pavel_16,
приветствие
let userName = document.getElementById('new_name').value;
 localStorage.setItem("userName", userName)

игра
let time = document.getElementById('play_timer').innerHTML;
;
 localStorage.setItem("time ", time)

рекорды
if (localStorage.getItem("users") === null) {
  $.getJSON('Storage/users.json', function(users) {
    localStorage.setItem("users", JSON.stringify(users));
  });
}

let users = localStorage.getItem("users");
let userName  = localStorage.getItem("userName");
let time = localStorage.getItem("userName");
users.push({userName, time});

Pavel_16 05.04.2020 23:51

Цитата:

Сообщение от рони (Сообщение 522294)
Pavel_16,
приветствие
let userName = document.getElementById('new_name').value;
 localStorage.setItem("userName", userName)

игра
let time = document.getElementById('play_timer').innerHTML;
;
 localStorage.setItem("time ", time)

рекорды
if (localStorage.getItem("users") === null) {
  $.getJSON('Storage/users.json', function(users) {
    localStorage.setItem("users", JSON.stringify(users));
  });
}

let users = localStorage.getItem("users");
let userName  = localStorage.getItem("userName");
let time = localStorage.getItem("userName");
users.push({userName, time});

Поступило предложение (localStorage.getItem("users") === null)
===null - не совсем, на пустую строку еще

И мне нужно хранить массив имен
нужно добавить еще наверное:
Каррент-юзер тогда для нового юзера, и ещё раз - объект имя+время
{name:name, time:time}
?????
как думаешь?

рони 06.04.2020 00:02

Pavel_16,
для начала можно так
рекорды
if (localStorage.getItem("users") === null) {
    localStorage.setItem("users", JSON.stringify([]));
}

let users = JSON.parse(localStorage.getItem("users"));
let userName  = localStorage.getItem("userName");
let time = localStorage.getItem("time")
users.push({userName, time});
localStorage.setItem("users", JSON.stringify(users));
for (const item of users) console.log(item);

Pavel_16 06.04.2020 00:06

[quote=рони;522296]Pavel_16,
для начала можно так



а чего для начала???:)

рони 06.04.2020 00:10

Pavel_16,
для отработки игры без сервера, к вашему получению данных с сервера есть вопросы, вы не учитываите время ответа сервера.

Pavel_16 06.04.2020 00:12

Цитата:

Сообщение от рони (Сообщение 522298)
Pavel_16,
для отработки игры без сервера, к вашему получению данных с сервера есть вопросы, вы не учитываите время ответа сервера.

это да, не учитываю:yes:
:agree:
а сервер, то.....:blink:

Pavel_16 06.04.2020 00:17

Цитата:

Сообщение от рони (Сообщение 522298)
Pavel_16,
для отработки игры без сервера, к вашему получению данных с сервера есть вопросы, вы не учитываите время ответа сервера.

ПО ИТОГУ
ПОЛУЧАЕТСЯ ТАК:
$(document).ready(function () {

  if (localStorage.getItem("users") === null) {
    localStorage.setItem("users", JSON.stringify([]));
  }

  let users = JSON.parse(localStorage.getItem("users"));
  let userName = localStorage.getItem("userName");
  let time = localStorage.getItem("time")
  users.push({ userName, time });
  localStorage.setItem("users", JSON.stringify(users));
  for (const item of users) console.log(item);

  var $select = $('#name');
  $select.ready(function (event) {
    $.each(JSON.parse(users), function (key, value) {
      $('<option>').val(value.name).text(value.name).appendTo($select);
    });
  });

  $('#play_game').click(function () {
    var userName = $('#new_name').val();
    var newUser = { name: userName };
    users = JSON.parse(users);
    users.push(newUser);
    console.log(users);
    localStorage.setItem("users", JSON.stringify(users));
  });
});

:write:

Только куда прикрутить вот это не понял:?!
let userName = document.getElementById('new_name').value;
 localStorage.setItem("userName", userName)


а наверное с 22-


Часовой пояс GMT +3, время: 23:58.