Javascript中的一次可调用函数

Javascript中的一次可调用函数,javascript,time,timer,Javascript,Time,Timer,我正在用Javascript开发一个测验组件,其中有一个startTimer()函数,它根据传递给它的值开始倒计时。 该函数在页面加载和测验开始时调用 我不想让用户再次调用该函数并改变测试时间 是否可以检测到该函数被再次调用?任何用户都可以在浏览器中禁用JavaScript 我建议您记录从页面被送达到服务器返回答案之间的时间,并将其作为最终的来源,以确定它们花费了多长时间。也许允许一点缓冲区来补偿网络延迟和页面呈现时间 JavaScript计时器可以是一个很好的UI功能,可以帮助用户知道他们还有

我正在用Javascript开发一个测验组件,其中有一个startTimer()函数,它根据传递给它的值开始倒计时。 该函数在页面加载和测验开始时调用

我不想让用户再次调用该函数并改变测试时间


是否可以检测到该函数被再次调用?

任何用户都可以在浏览器中禁用JavaScript

我建议您记录从页面被送达到服务器返回答案之间的时间,并将其作为最终的来源,以确定它们花费了多长时间。也许允许一点缓冲区来补偿网络延迟和页面呈现时间


JavaScript计时器可以是一个很好的UI功能,可以帮助用户知道他们还有多少时间,但是不要相信用户界面,因为聪明的用户会编写自己的UI(或者在这种情况下,将UI配置为不使用JavaScript)。

如果要阻止人们更改测验的任何方面,您必须在服务器上实现这些限制


如果不是不可能的话,也很难防止在客户端干扰测验数据。

谢谢大家,我在网上发现了:

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 

这方面的任何破解方法???

是的,但用户也可以更改。它需要在服务器端编程。这与我在回答中的想法相同(使用闭包关闭chanceLeft)。用户只需执行:chance=function(){console.log(“这是您仅有的一次机会”);}并完全重写您的chance函数,因为他们可以访问您的代码,他们知道如何执行此操作