>웹 프론트엔드 >JS 튜토리얼 >JavaScript 이벤트 메커니즘에 대한 심층적인 이해

JavaScript 이벤트 메커니즘에 대한 심층적인 이해

零到壹度
零到壹度원래의
2018-04-21 10:41:481542검색

이 기사에서는 특정 참조 가치가 있는 JavaScript의 이벤트 메커니즘에 대한 심층적인 이해를 소개합니다. 이제 모든 사람과 공유합니다. 도움이 필요한 친구들은 이를 참조할 수 있습니다. 먼저 사람을 활용 비유하자면 누구나 잠을 잘 수 있지만, 졸릴 때만 잠이 듭니다.

프로그램 용어로 인간 개체에 대한 수면 방법이 있습니다. 이 방법은

mental Fatigue

이벤트가 트리거될 때만 실행됩니다.

function sleep(){    do sleep
}

man.ontired=function(){
    sleep();
}
물론, 작업을 많이 완료하지 않은 사람도 있습니다. 밤 12시가 되면 매우 피곤하고 여전히 야근을 해야 합니다. 이때 사람들은

정신적 피로
를 유발합니다. 이 이벤트 후에 그들은 계속 일할 수 있는 방법을 구현할 수 있습니다(예: my QAQ...)

man.ontired=function(){
    work()
}

그래서 이벤트 같은 것들이 널리 퍼져있습니다. 우리 주변에 존재하는 것은 스위치와 같은 트리거 포인트입니다. 누르면 불이 켜지고, 다시 누르면 불이 꺼지는 이벤트입니다.

    이벤트를 정확하게 말하면 브라우저에 있어야 합니다.
  • 물론 브라우저가 수행하는 모든 작업에 대한 사용자의 반응입니다. 가장 간단한 클릭, 키보드 누르기, 마우스 이동, 웹 페이지 닫기 등이 있습니다. 브라우저가 사용자 행동에 응답할 수 있는 한 이는 사용자가 컴퓨터를 부수는 경우입니다. 안타깝게도 브라우저는 모니터링하거나 응답할 수 없으므로 웹 이벤트가 아닙니다
  • 이벤트는 사용자 행동에 대한 브라우저의 응답입니다
  • js는 이벤트 중심

    그리고 프로그래머와 사용자가 연결할 수 있는 이러한 이벤트가 존재하기 때문에 프로그래머는 사용자가 웹 페이지에 무엇을 했는지 알 수 없지만 프로그래머는 사용자가 해당 작업을 수행한 후에 이를 처리하는 방법을 알고 있습니다. 우리 프론트엔드 프로그래머 모두가 내 군인이고 페이지가 크고 작은 ""로 가득 차 있다고 상상해 보십시오. "이벤트 광산"은 사용자가 밟지 않는 한 우리가 작성한 코드가 js에 있을 것입니다. 하지만 사용자가 버튼을 클릭하고 "이벤트 광산"을 밟으면 우리가 작성한 코드는 다음과 같이 "붐"과 함께 실행되기 시작합니다.
    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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.