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¶m2=значение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 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 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 hivext.scripting.ImportScript;
return MyFunction("Hello");
/*
Название: ImportScript
Описание: Импортируемый скрипт.
*/
function MyFunction(vData) { return "*** " + vData + " ***"; }
