Javascript.Scripting Local API

Материал из Hivext Wiki

Перейти к: навигация, поиск

Javascript - Основы серверной разработки

Примеры разработки на серверном Javascript - от простого к сложному.

Посмотреть результаты нижеприведенных примеров с возможностью установки под своим аккаунтом.

Стандартный вывод данных

/*
  Название: Hello world
  Описание: Стандартный вывод результата скрипта.
*/

var sOut = "Hello world";

// Выход из скрипта с результатом.
return sOut;​

/*
response : "Hello world",
result : 0,
debug : {
      time : 5,
      cpu : {
             usage : 40,
             time : 2
      }
}
*/

Пользовательский вывод данных

/*
 Название: Hello world 2
 Описание: Пользовательский вывод результата скрипта.
*/

// Укажем веб серверу и клиенту что данные в html формате.
hivext.local.SetHeader("Content-Type", "text/html");

var aHtml = [];

aHtml.push("<html><body>");
aHtml.push("<h1>Hello world</h1>");
aHtml.push("</body><html>");

// Выход из скрипта с результатом.
return aHtml.join("");​​​​​​​
 
/*
 <html><body>
 <h1>Hello world</h1>
 </body></html>
*/

Пользовательский вывод данных через буфер

/*
 Название: Output Buffer
 Описание: Вывод данных через буфер.
*/

// Укажем веб серверу и клиенту что данные в html формате.
hivext.local.SetHeader("Content-Type", "text/html");

// Запишем данные в буфер вывода.
// Данные отправляются частями, автоматически по мере заполнения буфера.
hivext.local.out.Write("<html><body>");
hivext.local.out.Write("<h1>Hello world</h1>");
hivext.local.out.Write("</body><html>");

// Принудительная отправка данных из буфера вывода.
hivext.local.out.Flush();

return;​
 
/*
 <html><body>
 <h1>Hello world</h1>
 </body></html>
*/

Передаваемые параметры

/*
     Название: GetParam
     Описание: Получение параметров передаваемых в скрипт.
     Данный скрипт может принимать необязательные параметры
     param1=значение1&param2=значение2
*/

var aHtml = [];

var sParam = hivext.local.GetParam("param1") + ""; // Преобразуем в тип string.
var bParam = hivext.local.GetParam("param2") + "";

// Если param1 не указан значение по умолчанию "Hello world".
sParam = sParam || "Hello world";

aHtml.push("<html><body>");

if(!bParam) {
    aHtml.push("<h1>" + sParam + "</h1>");
} else {
    aHtml.push("<h3><u>" + sParam + "</u></h3>");
}

aHtml.push("</body><html>");

// Выход из скрипта с результатом.
return aHtml.join("");

/*
response : "<html><body><h1>Hello world</h1></body><html>",
result : 0,
debug : {
      time : 7,
      cpu : {
             usage : 87,
             time : 6
      }
}
*/

HTTP Headers

/*
    Название: Http Header
    Описание: Чтение HTTP заголовков.
    http://en.wikipedia.org/wiki/List_of_HTTP_headers
*/

var sRequestInfo = "\n-------------- HTTP Headers Request --------------\n";

sRequestInfo += "User-Agent = " + hivext.local.GetHeader("User-Agent") + "\n";
sRequestInfo += "Accept-Encoding = " + hivext.local.GetHeader("Accept-Encoding") + "\n";
sRequestInfo += "Accept-Language = " + hivext.local.GetHeader("Accept-Language") + "\n";
sRequestInfo += "Accept-Charset = " + hivext.local.GetHeader("Accept-Charset") + "\n";
sRequestInfo += "Host = " + hivext.local.GetHeader("Host") + "\n";

sRequestInfo += "--------------------------------------------------------------\n";

return sRequestInfo;

/*
response : "
-------------- HTTP Headers Request --------------
User-Agent = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0
Accept-Encoding = gzip,deflate,sdch
Accept-Language = ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset = windows-1251,utf-8;q=0.7,*;q=0.3
Host = api.hivext.ru
--------------------------------------------------------------
",
result : 0,
debug : {
      time : 5,
      cpu : {
             usage : 40,
             time : 2
      }
}
*/

Сессионные переменные

/*
    Название: Session Variables
    Описание: Чтение/запись сессионных переменных.
    Сессионные переменные - это переменные сохраняющие свои значения
    в течении времени жизни пользовательской сессии.
*/

var sSessionVar = hivext.local.GetSessionVar("Hivext");
if(!sSessionVar) hivext.local.SetSessionVar("Hivext", "Technologies");

return "Hivext = " + sSessionVar;

/*
response : "Hivext = Technologies",
result : 0,
debug : {
      time : 3,
      cpu : {
             usage : 67,
             time : 2
      }
}
*/

JSON кодирование

/*
    Название: JSON Encoding
    Описание: Кодирование объектов c помощью метода toJSON в JSON формат.
    Метод toJSON возвращает ответ в строковом типе.
*/

// Создадим объект.
var oMyObject = {
 sText : "This is my message to the world!",
 nDate : (new Date()).getTime() // Запишем текущую дату в миллисекундах.
}

// Преобразовываем объект в JSON формат.
var jsonMyObject = hivext.local.utils.toJSON(oMyObject);

// Результат отобразится в виде строки.
return jsonMyObject;

/*
response : "{\"sText\":\"This is my message to the world!\",\"nDate\":1256321432186}",
result : 0,
debug : {
      time : 5,
      cpu : {
             usage : 40,
             time : 2
      }
}
*/

Локальная подпись

/*
    Название: Local Signature
    Описание: Локальная подпись позволяет вызывать любые сессионные методы из скриптов
    размещенных в сервисе Скриптинга.
*/

var sLocalSignature = hivext.local.GetDeviceSignature(); // Получаем подпись локального устройства.

/*
    В скриптах, используя локальную подпись можно вызывать любые сессионные методы
    и получать доступ к любым данным вашего приложения, например:

    var oResponse = hivext.data.base.DefineType(appid, sLocalSignature, "MyType");
    if(oResponse.result == 0) {
     hivext.data.base.CreateObject(appid, sLocalSignature, "MyType");
    }
*/

return sLocalSignature;​​​​​​​​​​​​

/*
response : "85dca5385874e17d09fd63cbfdb4beca",
result : 0,
debug : {
      time : 3,
      cpu : {
             usage : 67,
             time : 2
      }
}
*/

Импорт скриптов

/*
    Название: ImportSample
    Описание: Импорт javascript кода.
*/

import com.hivext.scripting.ImportScript;

return MyFunction("Hello");​


/*
    Название: ImportScript
    Описание: Импортируемый скрипт.
*/

function MyFunction(vData) { return "*** " + vData + " ***"; }​

Следующие примеры

Личные инструменты