いくつかの所見。特定のネイティブ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
}
あなたは、この特定のユースケースで見ることができるように1は、これはクリーンなアプローチで考えるために狂気ではないでしょう。これは具体的に見えるかもしれませんが、私はこの種の状況を比較的頻繁に巡っています。アラートボックスを他のモーダルボックスに置き換えると、簡単な例が1つあります。
私は環境のために、javascriptはほとんど常に実行可能な他の機能、つまりUIアクションのイベントハンドラがあるように設計されていると思います。 – mrmcgreg
"実行したいコードがありません"。あなたのコード - おそらく。しかし、ブラウザは同時に多くのJSを実行します。 __あなたのコードは素晴らしい再生する__has__。 –
[ここではどのような話題を聞くことができますか?](https://stackoverflow.com/help/on-topic): "しかし、質問には一般的に特定のプログラミング問題**、またはソフトウェアアルゴリズム、またはソフトウェア";;);) – Andreas