Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выполнение javascript на сервере 
:(
    Опции темы
vorkulsky
Дата 4.6.2012, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.12.2011

Репутация: нет
Всего: нет



Пользователь решает задачу на javascript и отсылает код решения на сервер. На сервере программа запускается на тестовом наборе данных и пользователю возвращается заключение о правильности решения.

Как запустить javascript на сервере? (сам сайт написан на php)
PM MAIL   Вверх
ksnk
Дата 4.6.2012, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(vorkulsky @  4.6.2012,  11:50 Найти цитируемый пост)
Как запустить javascript на сервере? (сам сайт написан на php) 

Javascript можно исполнять разными способами, начиная от nodeJs до Rhino.

Это все отдельные приложения, которые нужно иметь и запускать на сервере. 

В то же время, существуют уже установленные на каждом броузере JavaScript машины, которые вполне могли бы сами порешать тестовые задачки.
Какого рода задачи будут вводится юзерами и насколько важно выполнять их на сервере?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
vorkulsky
Дата 4.6.2012, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.12.2011

Репутация: нет
Всего: нет



Задачи простые, учебные - работа с числами и строками. Объекты браузера не нужны. Сейчас студенты обычно запускают программы через Windows Script Host.

Важно, чтоб они не могли узнать, на каких наборах данных тестируется задача, т.к. набор тестов постоянен. И чтоб они не могли обмануть систему, что легко с клиентским javascript, т.к. на основе информации о сданных задачах выставляется оценка.
PM MAIL   Вверх
ksnk
Дата 4.6.2012, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



vorkulsky, Могу порекомендовать nodeJs в качестве инструмента. На сервере (школьном, учебном?) поднимается сервер на nodeJs, который принимает текст задачи на Javascript, формирует окружение скрипта и маскирует системные переменные ядра nodeJs, после чего скрипт запускается, переменные ядра демаскируются.  Пример простого web-сервера на nodeJs есть на его родном сайте в комплекте примеров. 
К сожалению, нужно контролировать расход памяти для такого сервера, так как гарантированно изолировать выполняемый код от ядра на JavaScript довольно сложно...

В качестве менее уязвимой альтернативы можно предложить Rhino. Это Java реализация Javascript. То есть для исполнения каждого теста будет запущен Java интерпретатор Javascript. По завершении теста он прекращает работу и проблемы  грязной памяти не существует. Работает все это, imho, достаточно шустро, хотя для серьезной нагрузки его рекомендовать не стоит. Нагрузка, которую генерируют пара студенческих классов, imho, не достаточно серьёзна...



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.