ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptのイベントメカニズムを深く理解する

JavaScriptのイベントメカニズムを深く理解する

零到壹度
リリース: 2018-04-21 10:41:48
オリジナル
1542 人が閲覧しました

この記事では、JavaScriptのイベントメカニズムを詳しく紹介します。これは、必要な友達に参考にしてもらえるようにしました

まず人を使う たとえて言うと、誰でも寝ることができますが、人は眠いと感じたときにだけ眠ります。

プログラム的には、人間オブジェクトの sleep メソッドがあります。このメソッドは、

精神的疲労

イベントがトリガーされた場合にのみ実行されます。

function sleep(){    do sleep
}

man.ontired=function(){
    sleep();
}
ログイン後にコピー
もちろん、たとえ夜の12時、あなたはとても疲れていて、まだ残業しなければなりません。この時点で、人々は精神的疲労を引き起こし、このイベントの後、仕事を続けるための方法を実行する可能性があります(私のQAQなど...

)。

man.ontired=function(){
    work()
}
ログイン後にコピー
ということで、イベントのようなものが蔓延しています 私たちの周りにあるのは、スイッチのようなトリガーポイントで、押すと光がつき、もう一度押すと光が消える、それがイベントです。
  • 正確に言えば、イベントはブラウザ内にあるはずです
  • 答えはもちろん、ブラウザによって実行されるすべてのアクションに対するユーザーの応答です。最も単純なクリック、キーボードの押下、マウスの動き、Web ページの終了などです。ブラウザがユーザーの動作に応答できる限り、たとえばユーザーがスマッシュした場合は Web イベントになります。コンピューターは怒っており、ブラウザーは監視したり応答したりできないため、Web イベントではありません
  • つまり、イベントはユーザーの行動に対するブラウザーの応答です
  • js はイベント駆動型です

。そして、これらのイベントが存在するからこそ、プログラマーとユーザーがつながることができるのです。プログラマーは、ユーザーが Web ページに対して何をしたかは知りませんが、プログラマーは、ユーザーがそれらのアクションを行った後にそれに対処する方法を知っています。私たちフロントエンド プログラマーは全員が地雷兵であり、ページには大小の「イベント地雷」が埋め込まれており、ユーザーがそれを踏まない限り、私たちが書いたコードがそこに存在することを想像してみてください。ただし、ユーザーがボタンをクリックしてドラッグし、「イベント鉱山」を踏むと、次のように、作成したコードが地雷のように「ドーン」と実行を開始します。
    document.body.onclick=function(){
        alert('boom')
    }
ログイン後にコピー
  • 如果用户只是打开了网页,根本没有点击页面,那么这个"boom"永远不会弹出来。

  • 因为js是事件驱动的。

事件驱动是什么?

  • 上面那几个例子已经很好说明了什么是事件驱动。事件驱动就是,事件没发生,代码不执行,事件是触发代码执行的直接原因。

  • 一般来讲,可能你有遇到,在一个点击事件里面写了一个小小或者大大的逻辑错误,js页面加载的时候并不会给你报错,它只是匆匆看了一眼onclick里面的内容,但不会去执行它,自然不会去发现里面的逻辑错误,除非你里面写了一个语法错误,js看了一眼发现,卧槽这里面的语句不通顺读不通啊,它才会提示错误。只有你点击事件触发的时候,js执行了下代码,然后发现里面的逻辑狗屁不通,然后才会报错。

  • 通常我们都会写个window.onload,页面加载完成触发的事件,把要执行的代码放里面,这样资源加载好了js好操作。但是,页面还存在一个隐性的事件,就是read事件,js引擎阅读代码事件。如果读到了function 函数名(){...}活着var 函数名=function(){...}这样的结构,它会匆匆扫一眼,不执行里面的代码,然后继续读下去,其他的语句一旦遇到了,js就会去执行它。比如var 变量名或着函数名()这样。这个是read事件,其他事件也类似,只有当前浏览器对用户行为的响应时,js才会执行里面的代码。

其他语言的事件驱动

  • 说到事件驱动,还有一个语言也是事件驱动的,那就是php(我所知道的。。。)。

  • php的事件驱动在于,它同样为服务器划分了事件,最简单的,一个请求进来,这是一个事件;服务器做出一个响应,这也是一个事件。然后后台服务器围绕这几个事件,一旦触发哪个就执行相关代码。

  • js的后台版node也是一样的


関連する推奨事項:

jsのイベントメカニズム

JavaScriptイベントメカニズム

JSイベントのイベントフローメカニズム

以上がJavaScriptのイベントメカニズムを深く理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート