26 февр. 2012 г.

Тестовое задание на "клиенте"


Очевидно, что электронные учебники можно подразделить на несколько видов с точки зрения расположения их программного ядра... Во-первых, сетевые. Во-вторых, локальные. В-третьих, смешаные.

И хотя современный мир нам все громче говорит о том, что все мы уже подключены к Интернет и только в связи с ним есть будущее развитие всех технологий, место для употребления клиентских (client-side) решений все же еще остается и мы будем его периодически искать.

Нам приходилось готовить чисто локальные версии электронных учебников (не будем сейчас рассматривать плюсы и минусы такого решения), а как в такой ситуации быть с тестовыми заданиями, когда и вопросы тестов и варианты ответов на них, а более того и указание на правильные варианты необходимо хранить у конечного пользователя под носом?..

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

Наше предложение достаточно простое: храним варианты вопросов и ответов в файле формата JSON, динамически формируем страницу HTML с тестом, а вместо правильных вариантов ответов храним в этом же или другом (не суть важно) JSON файле пары результатов вычисления hash-функций для текста вопроса и варианта правильного ответа по одному из возможных алгоритмов. После выбора пользователем ответа просто сравниваем его hash с результатом, храняшимся в базе... Конечно, такой подход не остановит профессионала, но может ему будет проще все же выучить предмет, чем копаться в исходном коде.

Для большей защищенности напомним о возможности обфускации кода.

Ссылки в помощь: Javascript + MD5; обфускация Javascript.

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

Комментариев нет:

Отправить комментарий