|
|
|
Извращенская задача на HTML и JavaScript, которую надо решить
|
|||
|---|---|---|---|
|
#18+
Задача: сейчас есть система тестирования через веб-интерфейс. Загружается вопрос, получается ответ, выводится результат. Сделана через Ajax. Т.е. на новый вопрос создается запрос и результаты загружаются в html. Всё вроде бы неплохо, и работает. НО необходимо сделать демо-тест (определённый список подготовленных вопросов), чтоб все эти вопросы, картинки к ним и ответы грузились только один раз всей пачкой (около 10 штук) при загрузке страницы, а сам тест к серверу больше не обращался. Т.е. тестирование происходило как бы на клиенте, т.е. в браузере. Какие есть предложения, как это пограмотнее и попроще реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2009, 23:21 |
|
||
|
Извращенская задача на HTML и JavaScript, которую надо решить
|
|||
|---|---|---|---|
|
#18+
CmeTanka, Я бы загрузил все данные в скрытые контейнеры можно в div'ы - по одному бы открывал, ответил на вопрос, скрываешь, открываешь следующий и так пока на все вопросы не будет дан ответ, затем проверка всех ответов и вывод результатов. но я так не сделаю ибо посморев исходник скрипта можно посмотреть правильные ответы и тогда смысл всего теста теряется. проверку надо делать на сервере. Хотя как вариант - получить ответы на все вопросы и потом это все отправить на проверку на сервер (но это противоречит условию CmeTanka а сам тест к серверу больше не обращался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 05:02 |
|
||
|
Извращенская задача на HTML и JavaScript, которую надо решить
|
|||
|---|---|---|---|
|
#18+
eualexeyпосморев исходник скрипта можно посмотреть правильные ответы и тогда смысл всего теста теряетсяЕсли хранить не ответ, а хеш ответа, то пусть хоть ослепнет смотревши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 11:50 |
|
||
|
Извращенская задача на HTML и JavaScript, которую надо решить
|
|||
|---|---|---|---|
|
#18+
Это будет демотест, так что подглядывать не имеет смысла, так как эти 10 вопросов всегда одинаковые и после неправильного ответа даётся правильный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 13:10 |
|
||
|
Извращенская задача на HTML и JavaScript, которую надо решить
|
|||
|---|---|---|---|
|
#18+
Antonariyeualexeyпосморев исходник скрипта можно посмотреть правильные ответы и тогда смысл всего теста теряетсяЕсли хранить не ответ, а хеш ответа, то пусть хоть ослепнет смотревши. А вот это тема! не догадался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 23:53 |
|
||
|
Извращенская задача на HTML и JavaScript, которую надо решить
|
|||
|---|---|---|---|
|
#18+
если только тестируемые не решит расхешировать)))посмотрев код можно определить алгоритм хеширования, а с его помощюь вскрыть результаты) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 07:04 |
|
||
|
Извращенская задача на HTML и JavaScript, которую надо решить
|
|||
|---|---|---|---|
|
#18+
Если результат тестирования это сдал/не сдал без подробностей, то количество вариантов, чьи хеши нужно сравнить с эталоном, рассчитывается по формулам: 2 X , где x - сумма ответов всех вопросов, для мексиканки, и X Y , где х - количество ответов в вопросе, y - количество вопросов (если во всех вопросах одинаковое количество ответов), для американки. Для тех, кто не в курсе: американка - один правильный из многих, мексиканка - несколько из многих. Допустим, в этом тесте из 10 вопросов везде по 4 ответа. Тогда для мексиканки это 1099511627776 вариантов (если калькулятор не врет), а для американки — 1048576. Рискну предположить, что даже второй вариант будет в js обсчитываться сравнимо со временем, отведенным на тестирование. Если нужно выводить ответ в виде n правильных из m, формулы такие: 2 X *Y для мексиканки и тупо X*Y для американки. Еще можно и хеши и функцию завернуть в несколько слоев какой-нибудь megaEncrypt, чтобы поиск решения растянулся вообще на часы. Так что выбор есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 10:49 |
|
||
|
Извращенская задача на HTML и JavaScript, которую надо решить
|
|||
|---|---|---|---|
|
#18+
Я поражаюсь просто! Это — тест, а не список задач с полем ввода ответа. Значит, к каждому вопросу прикрепляется список ответов. Если результат проверяется уже на клиенте при помощи JS, то алгоритм хэширования известен не только по одному виду хэша. Т.о. в среднем достаточно перебрать N/2 вариантов (N - количество ответов в вопросе), чтобы найти правильный ответ: берете первый ответ, хэшируете, смотрите - если совпадает с результатом, то его и выбираете. Иначе берете второй ответ и т.д. Если при "нормальном" (а не тренировочном) тестировании передать клиенту ответ в любом виде (хоть в хэше), то это означает, что любой пользователь может его пройти успешно, ничего не зная по предмету - нашел все правильные ответы и их выбрал перед отправкой на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2009, 05:07 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=36074181&tid=1454524]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
193ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 501ms |

| 0 / 0 |
