一些观察。某些原生javascript功能被阻止。如警示框。如果浏览器允许用户编写其他阻止功能,那么它们不会比打破自己的页面更恶意。所以我不认为这是一个安全问题。为什么Javascript函数不能阻塞?
启用阻塞功能可能会导致不良的设计模式。也许这个目标仅仅是为了阻止草率的设计,因为JavaScript绝对是异步的。但这是一种相当自以为是的设计理念,可以融入语言本身。
问题: 是否有任何历史或技术原因,为什么它不可能建立另一个功能?或者相反,我误解了,有没有办法让其他函数阻塞?
建议的设计模式。我认为值得展示我的意思是一个阻塞函数。正常的设计模式是做:
doSomethingThatMayTakeTime();
function doSomethingThatMayTakeTime(){
//Something that takes time
callback();
}
function callback(){
//Do something you only want to do once the first function is complete
}
但也有我的代码很多地方有没有可能的代码,我想直到doSomethingThatMayTakeTime函数执行被执行。在这种使用情况下,为什么我们可以说:
doSomethingThatMayTakeTime();
//NextLineOfCode
function doSomethingThatMayTakeTime(){
// Blocking Code -- Prevent execution of any code outside this function until this function returns/executes its last line
//Something that takes time
}
正如你可以在这个特定的使用情况下看到一个不会是疯了思考,这是一个更简洁的方法。虽然这看起来很具体,但我经常遇到这种情况。使用其他模式框替换警告框时会出现一个简单的示例。
我想说的是,为环境而设计的javascript几乎总是可以执行的其他功能,即UI操作的事件处理程序。 – mrmcgreg
“我想要执行的代码不存在”。你的代码 - 也许。但浏览器同时运行了很多其他的JS。你的代码__玩得很好。 –
[我可以在这里询问什么主题?](https://stackoverflow.com/help/on-topic):“_但如果您的问题通常涵盖**特定的编程问题**,或软件算法或软件工具通常使用的工具;是一个实用的,可回答的问题,它是软件开发所特有的,然后你是在正确的地方提问你的问题!“) – Andreas