Day19. 同步和非同步傻傻分不清?

Day19. 同步和非同步傻傻分不清?

本日閱讀進度:第九章 非同步程式設計(381~390頁)

從這章開始難度就越來越高了,有時候一個段落看個兩三遍還是不知所云。 不過還是盡量試著把重點挑出來,或許某一天就靈光一閃,融會貫通了也說不定。

重點摘要:

1.何謂事件?

舉凡使用者單擊按鈕、視窗被縮放、瀏覽器的位置被改變等,都會導致事件被觸發。 當有事件發生時,你可以提供程式碼讓事件發生時調用。

2.何謂事件處理程序?

處理程序(handler)通常是一小段程式碼,它知道事件發生時該做什麼事。 為了讓處理程序在事件發生時被叫用,需要先對它註冊。

3.建立一個事件處理程序

以下用頁面載入事件為範例:

  • 先撰寫一個函式,當頁面載入事件發生時,用於處理該事件。
    function pageLoadHandler() {
    alert("I'm hungry!");
    }
    
  • 接著把事件串在一起,讓瀏覽器知道,當頁面載入事件發生時,有一個函式可供它調用。
    window.onload = pageLoadHandler;
    
  • 接著就沒我們的事了。當頁面被載入時,瀏覽器將會調用被賦值給window.onload屬性的函式。

4.非同步程式設計

「同步」(Synchronous),其實不是同時的意思,而是一種線性的概念,先做完A,才能接著做B、C、D。而JavaScript 是一個「非同步」 (Asynchronous) 的語言,不用依照A、B、C、D的順序進行。

有點不太好懂吧? Kuro大的非同步舉例很淺顯易懂,強力推薦。

本文同步發表於iT邦幫忙

Recent post