Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.09.2017, 12:37
Интересующийся
Отправить личное сообщение для Aleksandr Chirkov Посмотреть профиль Найти все сообщения от Aleksandr Chirkov
 
Регистрация: 24.06.2017
Сообщений: 14

Проблемы с WebStorage
Доброго дня всем, уважаемые Гуру! Подскажите советом. Начал делать себе планировщик задач. Хочу чтобы задачи сохранялись у меня на web странице. Изучаю функцию WebStorage и она у меня странно не отрабатывает, хотя ошибки вроде как быть не должно.

<div>
		<p>Добавь новую задачу!</p>
		<form>
		<input type="text" size="20" id="quiz2">
		<input type="button" id="newTask" size="40" placeholder="Новая задача" value="Добавить задачу">
		</form>
</div>


window.onload = init;

function init() {
var act2 = document.getElementById("newTask").onclick = addNewTask;

//alert("step1");
loadMyTasks();

digitalWatch();
}
	
function addNewTask() {
	var task1 = document.getElementById("quiz2");
	task = task1.value ;
		if (task == ""){
			alert("Сань, ну ты че кнопки то тычешь просто так? ;) ");
		} else {
			alert("Саня новая задача!: " + task);
		}
	var li = document.createElement("li");
	li.innerHTML = task;
	var ol = document.getElementById("taskList");
	ol.appendChild(li); 
	save(task);
}

function save(part){
	alert("Сохраняю!");
	var taskListArray = getStoreArray("taskList");
	taskListArray.push(part); //Я точно знаю что, вот тут не пашет почему то, но почему?!
	localStorage.setItem("taskList", JSON.stringify(taskListArray));
	alert("Готово");
}

function loadMyTasks(){
	var taskListArray = getTasksArray(); 
	var ol = document.getElementById("taskList");
		if(taskListArray != null) {
			for (var i = 0; i < taskListArray.length; i++){
				var li = document.createElement("li");
				li.innerHTML = taskListArray[i];
				ol.appendChild(li);
			}
		}
}

function getTasksArray(){
	return getStoreArray("taskList");
}

function getStoreArray(key){
	var taskListArray = localStorage.getItem(key);
	if (taskListArray == "" || taskListArray == null){
		taskListArray = new Array();
		alert("создали");
	} else {
		taskListArray = JSON.parse(taskListArray); 
	}
	return taskListArray;
}


Подскажите почему функция не идёт дальше taskListArray.push(part); ??
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2017, 13:00
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,527

Aleksandr Chirkov, много лишнего кода, по-моему.
Перед строкой 30 добавь эту строку и смотри что в консоль запишется:
return console.log(taskListArray);

Если запишется не массив, то у этого объекта метода push не будет.
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2017, 13:35
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,548

Aleksandr Chirkov,
нет такой функции digitalWatch
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2017, 16:10
Интересующийся
Отправить личное сообщение для Aleksandr Chirkov Посмотреть профиль Найти все сообщения от Aleksandr Chirkov
 
Регистрация: 24.06.2017
Сообщений: 14

Действительно нет такой функции, лишний код.
Но смысл в том, что в консоли, я действительно увидел, что создавался не массив, поэтому push не отрабатывала, очистил Историю и кэш и все заработало как надо. СПАСИБО!
А можно в таком случае ещё вопрос, допустим у меня есть сайт и я его выложил на хостинг, но обновляю в процессе работы, как мне сделать так, что б у пользователей он не сохранялся в кэш и при смене CSS или HTML, пользователь видел новый вариант сайта?
Ответить с цитированием
  #5 (permalink)  
Старый 14.09.2017, 16:37
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,548

Сообщение от Aleksandr Chirkov
как мне сделать так, что б у пользователей он не сохранялся в кэш и при смене CSS или HTML, пользователь видел новый вариант сайта?
почитай, только обычно номер версии не в имени пишут как там показано style.x234dff.css, а в конце имени после знака вопроса style.css?x234dff, ну а без всего этого новый вариант сайта в своем браузере можно получить так Ctrl+F5.

Последний раз редактировалось Rise, 14.09.2017 в 16:42.
Ответить с цитированием
  #6 (permalink)  
Старый 14.09.2017, 16:42
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,527

Aleksandr Chirkov, html всегда загружается с сервера, а чтобы css всегда "свежий" загружался в конец пути подключаемого файла добавь строку «?123», где "123" - метка времени последней модификации этого файла.
<!-- Example: -->
<link rel="stylesheet" href="/path/to/file.css?123123">
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы со слайдером. Shupamen Работа 1 14.12.2013 22:12
Проблемы при установке модулей node.js tadjik1 AJAX и COMET 1 18.03.2012 00:20
Решение проблемы с отображением элементов на странице mozyr Javascript под браузер 17 13.01.2012 00:34
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 13:37
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 16:47