Серверный JavaScript 1.4. Руководство по использованию
9123a142

Свойства Объекта client как Куки


Если приложение использует технику клиентских кук для работы с объектом client, машина выполнения на сервере сохраняет имена и значения свойств объекта client как куки на клиенте. Об использовании кук для работы с объектом client см. раздел .

Для свойства объекта client propName машина выполнения автоматически создаёт куку с именем NETSCAPE_LIVEWIRE.propName, принимая, что приложение использует технику работы с клиентскими куками. Машина выполнения кодирует значения свойств так, как это требуется по протоколу кук Netscape cookie protocol.

Для доступа к этим кукам в клиентском JavaScript Вы можете извлечь эту информацию путём использования свойства document.cookie и такой функции как getSSCookie, как показано здесь:

function getSSCookie(name) {

   var search = "NETSCAPE_LIVEWIRE." + name + "=";
   var retstr = "";

   var offset = 0;
   var end = 0;

   if (document.cookie.length > 0) {

      offset = document.cookie.indexOf(search);

      if (offset != -1) {

         offset += search.length;

         end = document.cookie.indexOf(";", offset);

         if (end == -1)

            end = document.cookie.length;



         retstr = unescape(document.cookie.substring(offset, end));

      }
   }
   return(retstr)
}

Функция getSSCookie не является предопределённой функцией JavaScript. Если Вам нужна похожая функциональность, Вы обязаны определить её (функцию) в Вашем приложении.

Чтобы отправленная на сервер информация стала свойством объекта client, добавьте куку с именем, имеющим форму NETSCAPE_LIVEWIRE.propName. Предположим, Ваше приложение использует технику работы с клиентскими куками, а машина выполнения на сервере создаёт свойство объекта client под названием propName  для данной куки.


Тогда Вы можете использовать функцию типа следующей:
function setSSCookie (name, value, expire) {

   document.cookie =

      "NETSCAPE_LIVEWIRE." + name + "="

      + escape(value)

      + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()));
}
Здесь функция setSSCookie также не является предопределённой функцией JavaScript. Если Вам необходима аналогичная функциональность, Вы обязаны определить функцию в Вашем приложении.
Вы можете вызывать эти функции в клиентском JavaScript для получения набора значений свойств объекта client, как в следующем примере:
var value = getSSCookie ("answer");
if (value == "") {

   var expires = new Date();
   expires.setDate(expires.getDate() + 7);

   setSSCookie ("answer", "42", Expires);
}
else

   document.write ("The answer is ", value);
Эта группа операторов проверяет, имеется ли свойство объекта client с названием answer. Если нет, код создаёт его и устанавливает значение 42; если найдено, выводится его значение.

Содержание раздела