Опубликован: 19.10.2006 | Уровень: для всех | Доступ: платный
Лекция 7:

Объект документа и объект окна

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >

Сookie

Последняя тема этой лекции, переменная cookie, отличается от всего остального в JavaScript. cookie является строкой текста, которую можно сохранить с одной страницы на другой, если вы находитесь на одном и том же сервере. В отличие от других переменных в JavaScript, cookie не стирается при перезагрузке страницы. cookie стираются только через определенный период времени или когда все cookie удаляются в браузере.

cookie читают и записывают через document.cookie. В отличие от других свойств изменение document.cookie в действительности не перезаписывает, а добавляет к cookie. Поэтому, если требуется задать 5 cookie, то каждое из них задается с помощью document.cookie= "...";. Формат cookie имеет свои особенности, поэтому мы рассмотрим несколько функций для выполнения этой задачи:

function writeCookie(name, value, days){
  if(days){
    (time = new Date()).setTime(new Date().getTime()+days*24*60*60*1000);
    var exp = '; expires='+time.toGMTString();
  }else{
    var exp='';
  }
  document.cookie=name+"="+value+exp+"; path=/";
}

function readCookie(name){
  var cookies = document.cookie.split(';');
  for(var i=0; i<cookies.length; i++){
    var cookie=cookies[i].replace(/^\s+/, '');
    if (cookie.indexOf(name+'=')==0) return cookie.substring(name.length+1);
  }
  return null;
}

function eraseCookie(name){
  writeCookie(name, "", -1);
}

Три эти функции выполняют запись, чтение и стирание cookie на текущей странице. Их можно протестировать с помощью следующего кода:

function addToCounter(){
  var counter = readCookie('myCounter');
  if(counter){
    counter = parseInt(counter);
  } else {
    counter = 0;
  }

  writeCookie('myCounter', counter+1, 1);
}

function showCounter(){
  alert(readCookie('myCounter'));
}

Если увеличить счетчик cookie несколько раз, обновить страницу, а затем проверить счетчик, то можно увидеть, что он остался таким же, как был до обновления страницы. Эти cookie будут сохранятся до тех пор, пока они не будут удалены из браузера или пока не пройдет 24 часа - cookie заданы на период одни сутки.

Это почти все об объектах окна и документа. В "следующей лекции" речь пойдет об объектно-ориентированном коде.

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >
Елена Сапегова
Елена Сапегова

После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть?

Рустам Рахимов
Рустам Рахимов

Пол часа искал в интеренете, как что работает. Такое чувство что автор пишет для людей которые уже знают js, или просто хвастается своими знаниями. Конструкция формы непонятна. И можно было бы в кратце написать, что такое событие которое используют. Сорершенно не понятно как работает форма, и как брать из нее значение. 

function Complete() {

    var x = "Имя: " + document.tutform.firstname.value;

alert(x);

} - Так брать значение из формы tutform, firstname-получаем значение из имени. 

<INPUT TYPE="button" VALUE="Готово" onClick="Complete();"> - Нужно к кнопке прописать событие, при нажатие на кнопку готово, чтобы возвращалось значение с помощью функции. А так ничего не работает, и смысла учить нету, если не знать почему не работает.