1

ユーザーがテストを受けることができるオンラインクイズサイトを開発しています(複数選択)。テストにタイマーを設定する必要があります。たとえば、テストの作成者が時間を30分に設定した場合、タイマーはページの上部に配置され、時間をカウントダウンします。サーバー側でタイマーを監視したいのはいつですか。 00:00に達するとテストが停止し、取得したマークが表示されます。

私が検討した解決策:

1)JSプラグインを使用し、その有効期限が切れたら、テストを終了location.hrefするいくつかのプラグインを実行します。ActionResult

2)セッションを作成し、指定された時間の後、各質問をレンダリングする前にセッションをクリアするには、セッションの有効期限が切れているかどうかを確認します。

javascriptベースのソリューションを使用することについての私の懸念は、その堅牢性です。サーバー側のソリューションを実装したいと思います。正しい道を見つけるのを手伝ってください...

よろしく。

4

1 に答える 1

1

ブラウザでタイマーを使用する場合、タイマーが期待どおりに実行されていることを確認する方法はありません。ユーザーはJavaScriptを無効にして、制限を回避できます。彼らはあなたのJavaScriptを変更することさえできます。したがって、JavaScriptのみに依存することはできません。

最善の解決策は、サーバー側でポストバックを検証することです。クライアント側でjavascriptを使用してユーザーに通知し、ユーザーが残り時間を認識できるようにし、サーバー側で制限時間を超えていないことを確認できます。同期が必要な場合は、javscriptを頻繁にpingバックして、時刻を再同期することができます。

拡張回答 テストの開始時刻はサーバー側である必要があります。ユーザーが[テストの開始]または他の[スタートボタン]をクリックしてテストを開始するたびに。サーバーは現在の時刻を記録する必要があります-おそらくセッションまたはデータベースでさえ。

次に、JavaScriptを介して残り時間と予想される終了時間をユーザーに通知する必要があります。これらは、ユーザーが質問を送信したり、サーバーに別のポストバックを実行したりするたびに更新されます。

終了時間はあいまいな部分になります。javascriptが正しく機能する場合、これ(またはwindow.hrefなど)を使用して、テストが終了したことをユーザーに通知できます。javascriptが機能しない場合; その後、ユーザーは次にサーバーに何かを送信しようとするたびに通知を受け取ります。

いずれにせよ、これが予想される終了時間であり、各ページの読み込みに残っている時間であることをユーザーに明確に通知する必要があります。

于 2012-11-12T17:56:39.873 に答える