Javascriptでクイズコンポーネントを開発していて、渡された値に基づいてカウントダウンを開始するstartTimer()関数があります。ページが読み込まれ、クイズが開始されると、この関数が呼び出されます。
ユーザーが関数を再度呼び出してクイズの時間を変更することはありません。
関数が2回目に呼び出されたことを検出することは可能ですか?
Javascriptでクイズコンポーネントを開発していて、渡された値に基づいてカウントダウンを開始するstartTimer()関数があります。ページが読み込まれ、クイズが開始されると、この関数が呼び出されます。
ユーザーが関数を再度呼び出してクイズの時間を変更することはありません。
関数が2回目に呼び出されたことを検出することは可能ですか?
すべてのユーザーは、ブラウザでJavaScriptを無効にすることができます。
ページが提供されてから回答がサーバーに返されるまでの時間を記録し、それをそれらがかかった時間の決定的なソースとして使用することをお勧めします。おそらく、ネットワーク遅延とページレンダリング時間を補うために少しのバッファを許可します。
JavaScriptタイマーは、ユーザーが残り時間を知るのに役立つ優れたUI機能ですが、ユーザーインターフェイスを信頼することはできません。スマートユーザーは、独自のUIを作成します(この場合、JavaScriptを使用しないようにUIを構成します)。 )。
他の人がクイズのどの側面も変更できないようにする場合は、サーバーに制限を実装する必要があります。
クライアント側でクイズデータに干渉するのを防ぐことは、不可能ではないにしても、非常に困難です。
みんなありがとう、私はネットでこれを見つけました:
function createChance(){
var chanceLeft = true;
return function(){
if(chanceLeft){
console.log("This was the only chance you had.");
chanceLeft = false;
}
else{
console.log('Sorry: you already used your chance');
}
};
}
var chance = createChance();
chance();
// This was the only chance you had.
chance();
// Sorry: you already used your chance
これのためのハック????