๐ What is a Single Page Application (SPA)?
๐ SPA stands for Single Page Application. It is a type of web application or website that interacts with the user by dynamically rewriting the current web page with new data from the server, rather than the traditional method of the browser loading entirely new pages.
๐ฏ The goal of an SPA is to provide a smooth, fluid user experience that feels much more like a native desktop or mobile app.

โ๏ธ How an SPA Works
๐ In a traditional web application (Multi-Page Application or MPA): Every time you click a link or submit a form, the browser sends a request to the server, and the server sends back a completely new HTML page. This causes the screen to go blank for a split second (a “page reload”) while the new content renders.
โ An SPA takes a different approach:
- ๐ฅ Initial Load: When you first visit the site, the browser downloads a single HTML file, along with the necessary CSS (styles) and JavaScript (logic).
- ๐ Dynamic Updates: As you navigate around the app or click on things, the page never actually reloads. Instead, JavaScript runs in the background to fetch just the raw data it needs (usually in a format called JSON) from the server.
- ๐ฏ Targeted Rewriting: The JavaScript then takes that data and instantly updates only the specific parts of the screen that need to change, leaving everything else exactly as it is.
โ๏ธ A Real-World Example: Gmail
Think about how Gmail works on your computer’s browser. It is a classic example of a Single Page Application.
- ๐ When you first log in, the inbox loads (this is the initial load).
- ๐ฑ๏ธ When you click on an individual email to read it, the sidebar menu on the left and the search bar at the top don’t disappear or reload.
- ๐๏ธโ๐จ๏ธ Instead, only the main viewing area changes to show the contents of the email you clicked.
- ๐ If you click “Compose,” a small box pops up in the corner without interrupting what you are currently reading.
Because Gmail only updates the necessary pieces of the screen, the interface feels incredibly fast and seamless. Other common examples of SPAs include ๐ต Spotify, ๐ฟ Netflix, ๐ Facebook, and ๐บ๏ธ Google Maps.
๐ Key Advantages of SPAs
- โก Speed and Responsiveness: After the initial load, navigating the app is lightning fast because the browser is only downloading tiny packets of data instead of heavy HTML files.
- โจ Seamless User Experience: There is no “white flash” or page reloading between clicks, keeping the user engaged and uninterrupted.
- ๐ฅ๏ธ Reduced Server Load: The server doesn’t have to spend computing power rendering full HTML pages for every single user request; it just acts as an API serving raw data.
๐ SPA เฐ เฐเฐเฑ เฐเฐฎเฐฟเฐเฐฟ? (What is a Single Page Application?)
๐ SPA เฐ เฐเฐเฑ Single Page Application. เฐเฐฆเฐฟ เฐเฐ เฐฐเฐเฐฎเฑเฐจ web application เฐฒเฑเฐฆเฐพ website. Traditional method เฐฒเฑ เฐฒเฐพเฐเฐพ เฐชเฑเฐฐเฐคเฐฟเฐธเฐพเฐฐเฐฟ browser เฐเฑเฐคเฑเฐค เฐชเฑเฐเฑเฐจเฐฟ เฐชเฑเฐฐเฑเฐคเฐฟเฐเฐพ เฐฒเฑเฐกเฑ เฐเฑเฐฏเฐเฑเฐเฐกเฐพ, server เฐจเฑเฐเฐกเฐฟ เฐเฑเฐคเฑเฐค เฐกเฑเฐเฐพเฐจเฐฟ เฐคเฑเฐธเฑเฐเฑเฐจเฐฟ เฐเฐจเฑเฐจ current web page เฐจเฑ dynamically rewrite เฐเฑเฐธเฑเฐคเฑ เฐฏเฑเฐเฐฐเฑโเฐคเฑ เฐเฐเฐเฐฐเฐพเฐเฑเฐเฑ เฐ เฐตเฑเฐคเฑเฐเฐฆเฐฟ.
๐ฏ เฐเฐ SPA เฐฏเฑเฐเฑเฐ เฐฎเฑเฐเฑเฐฏ goal เฐเฐฎเฐฟเฐเฐเฐเฑ, เฐ เฐเฑเฐเฐ เฐเฐ native desktop เฐฒเฑเฐฆเฐพ mobile app เฐตเฐพเฐกเฐฟเฐจ เฐซเฑเฐฒเฐฟเฐเฐเฑ เฐเฐฒเฐฟเฐเฐฟเฐเฐเฑเฐฒเฐพ เฐเฐ smooth เฐฎเฐฐเฐฟเฐฏเฑ fluid user experience เฐเฐตเฑเฐตเฐกเฐ.
โ๏ธ เฐเฐ SPA เฐเฐฒเฐพ เฐชเฐจเฐฟเฐเฑเฐธเฑเฐคเฑเฐเฐฆเฐฟ? (How an SPA Works)
๐ Traditional web application (เฐ เฐเฐเฑ Multi-Page Application เฐฒเฑเฐฆเฐพ MPA) เฐฒเฑ: เฐฎเฑเฐฐเฑ เฐเฐฆเฑเฐจเฐพ เฐฒเฐฟเฐเฐเฑ เฐเฑเฐฒเฐฟเฐเฑ เฐเฑเฐธเฐฟเฐจเฐพ เฐฒเฑเฐฆเฐพ form เฐธเฐฌเฑเฐฎเฐฟเฐเฑ เฐเฑเฐธเฐฟเฐจเฐพ, browser เฐธเฐฐเฑเฐตเฐฐเฑโเฐเฐฟ เฐเฐ request เฐชเฐเฐชเฑเฐคเฑเฐเฐฆเฐฟ. เฐ เฐชเฑเฐชเฑเฐกเฑ เฐธเฐฐเฑเฐตเฐฐเฑ เฐเฐ เฐชเฑเฐฐเฑเฐคเฐฟเฐเฐพ เฐเฑเฐคเฑเฐค HTML page เฐจเฐฟ เฐตเฑเฐจเฐเฑเฐเฐฟ เฐชเฐเฐชเฑเฐคเฑเฐเฐฆเฐฟ. เฐเฑเฐคเฑเฐค เฐเฐเฐเฑเฐเฐเฑ render เฐ เฐฏเฑเฐฏเฑเฐฒเฑเฐชเฑ เฐเฐ เฐธเฑเฐเฐจเฑ เฐชเฐพเฐเฑ เฐธเฑเฐเฑเฐฐเฑเฐจเฑ blank เฐ เฐตเฑเฐคเฑเฐเฐฆเฐฟ (เฐฆเฑเฐจเฑเฐจเฑ “page reload” เฐ เฐเฐเฐพเฐ).
โ เฐเฐพเฐจเฑ SPA เฐเฐ different approach เฐคเฑเฐธเฑเฐเฑเฐเฐเฑเฐเฐฆเฐฟ:
- ๐ฅ Initial Load: เฐฎเฑเฐฐเฑ เฐฎเฑเฐฆเฐเฐฟเฐธเฐพเฐฐเฐฟ เฐธเฑเฐเฑโเฐจเฐฟ เฐตเฐฟเฐเฐฟเฐเฑ เฐเฑเฐธเฐฟเฐจเฐชเฑเฐชเฑเฐกเฑ, browser เฐเฐเฑ เฐเฐ HTML file เฐจเฐฟ, เฐฆเฐพเฐจเฐฟเฐเฐฟ เฐเฐพเฐตเฐพเฐฒเฑเฐธเฐฟเฐจ CSS (styles) เฐฎเฐฐเฐฟเฐฏเฑ JavaScript (logic) เฐคเฑ เฐธเฐนเฐพ เฐกเฑเฐจเฑโเฐฒเฑเฐกเฑ เฐเฑเฐธเฑเฐเฑเฐเฐเฑเฐเฐฆเฐฟ.
- ๐ Dynamic Updates: เฐฎเฑเฐฐเฑ เฐ app เฐฒเฑ เฐตเฑเฐฐเฑ เฐชเฑเฐเฑเฐฒเฐเฐฟ เฐตเฑเฐณเฑเฐณเฐฟเฐจเฐพ (navigate) เฐฒเฑเฐฆเฐพ เฐเฐเฑเฐเฐกเฑเฐจเฐพ เฐเฑเฐฒเฐฟเฐเฑ เฐเฑเฐธเฐฟเฐจเฐพ, เฐชเฑเฐเฑ เฐ เฐธเฑเฐธเฐฒเฑ reload เฐ เฐตเฑเฐตเฐฆเฑ. เฐฆเฐพเฐจเฐฟเฐเฐฟ เฐฌเฐฆเฑเฐฒเฑเฐเฐพ, background เฐฒเฑ JavaScript เฐฐเฐจเฑ เฐ เฐฏเฑเฐฏเฐฟ เฐธเฐฐเฑเฐตเฐฐเฑ เฐจเฑเฐเฐเฐฟ เฐเฑเฐตเฐฒเฐ เฐฆเฐพเฐจเฐฟเฐเฐฟ เฐเฐพเฐตเฐพเฐฒเฑเฐธเฐฟเฐจ raw data (เฐธเฐพเฐงเฐพเฐฐเฐฃเฐเฐเฐพ JSON เฐซเฐพเฐฐเฑเฐฎเฐพเฐเฑโเฐฒเฑ) เฐฎเฐพเฐคเฑเฐฐเฐฎเฑ เฐคเฑเฐเฑเฐเฑเฐเฑเฐเฐเฑเฐเฐฆเฐฟ.
- ๐ฏ Targeted Rewriting: เฐ เฐฒเฐพ เฐคเฑเฐเฑเฐเฑเฐเฑเฐจเฑเฐจ เฐกเฑเฐเฐพเฐจเฐฟ เฐคเฑเฐธเฑเฐเฑเฐจเฐฟ, JavaScript เฐธเฑเฐเฑเฐฐเฑเฐจเฑโเฐฒเฑ เฐเฐเฑเฐเฐกเฑเฐคเฑ เฐฎเฐพเฐฐเฑเฐชเฑ เฐฐเฐพเฐตเฐพเฐฒเฑ เฐ specific parts เฐจเฐฟ เฐฎเฐพเฐคเฑเฐฐเฐฎเฑ instantly เฐ เฐชเฑโเฐกเฑเฐเฑ เฐเฑเฐธเฑเฐคเฑเฐเฐฆเฐฟ. เฐฎเฐฟเฐเฐคเฐพ เฐธเฑเฐเฑเฐฐเฑเฐจเฑ เฐ เฐเฐคเฐพ เฐเฐจเฑเฐจเฐฆเฑเฐจเฑเฐจเฐเฑเฐฒเฑเฐเฐพเฐจเฑ (exactly as it is) เฐเฐเฐเฑเฐเฐฆเฐฟ.
โ๏ธ เฐเฐ Real-World Example: Gmail
เฐฎเฑ เฐเฐเฐชเฑเฐฏเฑเฐเฐฐเฑ browser เฐฒเฑ Gmail เฐเฐฒเฐพ เฐชเฐจเฐฟเฐเฑเฐธเฑเฐคเฑเฐเฐฆเฑ เฐเฐฒเฑเฐเฐฟเฐเฐเฐเฐกเฐฟ. เฐเฐฆเฐฟ Single Page Application เฐเฐฟ เฐเฐ เฐ เฐฆเฑเฐญเฑเฐคเฐฎเฑเฐจ (classic) เฐเฐฆเฐพเฐนเฐฐเฐฃ.
- ๐ เฐฎเฑเฐฐเฑ เฐซเฐธเฑเฐเฑ เฐฒเฐพเฐเฐฟเฐจเฑ เฐ เฐฏเฐฟเฐจเฐชเฑเฐชเฑเฐกเฑ, inbox เฐฒเฑเฐกเฑ เฐ เฐตเฑเฐคเฑเฐเฐฆเฐฟ (เฐเฐฆเฐฟ initial load).
- ๐ฑ๏ธ เฐเฐฆเฑเฐจเฐพ เฐเฐ email เฐจเฐฟ เฐเฐฆเฐตเฐกเฐพเฐจเฐฟเฐเฐฟ เฐฎเฑเฐฐเฑ เฐเฑเฐฒเฐฟเฐเฑ เฐเฑเฐธเฐฟเฐจเฐชเฑเฐชเฑเฐกเฑ, left side เฐฒเฑ เฐเฐเฐกเฑ sidebar menu เฐเฐพเฐจเฑ, top เฐฒเฑ เฐเฐเฐกเฑ search bar เฐเฐพเฐจเฑ เฐฎเฐพเฐฏเฐฎเฐตเฑเฐตเฐตเฑ เฐฒเฑเฐฆเฐพ reload เฐ เฐตเฑเฐตเฐตเฑ.
- ๐๏ธโ๐จ๏ธ เฐฆเฐพเฐจเฐฟเฐเฐฟ เฐฌเฐฆเฑเฐฒเฑเฐเฐพ, เฐเฑเฐตเฐฒเฐ main viewing area เฐฎเฐพเฐคเฑเฐฐเฐฎเฑ เฐฎเฑเฐฐเฑ เฐเฑเฐฒเฐฟเฐเฑ เฐเฑเฐธเฐฟเฐจ email เฐเฐเฐเฑเฐเฐเฑโเฐจเฐฟ เฐเฑเฐชเฐฟเฐเฐเฐกเฐพเฐจเฐฟเฐเฐฟ เฐฎเฐพเฐฐเฑเฐคเฑเฐเฐฆเฐฟ.
- ๐ เฐฎเฑเฐฐเฑ “Compose” เฐชเฑเฐจ เฐเฑเฐฒเฐฟเฐเฑ เฐเฑเฐธเฑเฐคเฑ, เฐฎเฑเฐฐเฑ เฐเฐฆเฑเฐตเฑเฐคเฑเฐจเฑเฐจ เฐฆเฐพเฐจเฐฟเฐเฐฟ เฐเฐฒเฐพเฐเฐเฐฟ เฐเฐฌเฑเฐฌเฐเฐฆเฐฟ (interrupt) เฐเฐฒเฐเฐเฑเฐเฐกเฐพ เฐเฐ เฐเฐฟเฐจเฑเฐจ เฐฌเฐพเฐเฑเฐธเฑ เฐเฐพเฐฐเฑเฐจเฐฐเฑโเฐฒเฑ pop up เฐ เฐตเฑเฐคเฑเฐเฐฆเฐฟ.
เฐธเฑเฐเฑเฐฐเฑเฐจเฑโเฐชเฑ เฐเฐพเฐตเฐพเฐฒเฑเฐธเฐฟเฐจ pieces เฐจเฐฟ เฐฎเฐพเฐคเฑเฐฐเฐฎเฑ เฐ เฐชเฑโเฐกเฑเฐเฑ เฐเฑเฐฏเฐกเฐ เฐตเฐฒเฑเฐฒ, Gmail เฐเฐเฐเฐฐเฑโเฐซเฑเฐธเฑ เฐเฐพเฐฒเฐพ เฐซเฐพเฐธเฑเฐเฑโเฐเฐพ เฐฎเฐฐเฐฟเฐฏเฑ seamless เฐเฐพ เฐซเฑเฐฒเฑ เฐ เฐตเฑเฐคเฑเฐเฐฆเฐฟ. SPAs เฐเฐฟ เฐเฐคเฐฐ common examples: ๐ต Spotify, ๐ฟ Netflix, ๐ Facebook, เฐฎเฐฐเฐฟเฐฏเฑ ๐บ๏ธ Google Maps.
๐ SPAs เฐตเฐฒเฑเฐฒ เฐฎเฑเฐเฑเฐฏเฐฎเฑเฐจ เฐฒเฐพเฐญเฐพเฐฒเฑ (Key Advantages)
- โก Speed เฐฎเฐฐเฐฟเฐฏเฑ Responsiveness: Initial load เฐคเฐฐเฑเฐตเฐพเฐค, app เฐฒเฑ เฐจเฐพเฐตเฐฟเฐเฑเฐเฑ เฐเฑเฐฏเฐกเฐ lightning เฐซเฐพเฐธเฑเฐเฑโเฐเฐพ เฐเฐเฐเฑเฐเฐฆเฐฟ เฐเฐเฐฆเฑเฐเฐเฐเฑ, browser เฐชเฑเฐฆเฑเฐฆ เฐชเฑเฐฆเฑเฐฆ (heavy) HTML เฐซเฑเฐฒเฑเฐธเฑโเฐเฐฟ เฐฌเฐฆเฑเฐฒเฑเฐเฐพ, เฐเฑเฐตเฐฒเฐ เฐเฐฟเฐจเฑเฐจ เฐเฐฟเฐจเฑเฐจ packets of data เฐจเฐฟ เฐฎเฐพเฐคเฑเฐฐเฐฎเฑ เฐกเฑเฐจเฑโเฐฒเฑเฐกเฑ เฐเฑเฐธเฑเฐคเฑเฐเฐฆเฐฟ.
- โจ Seamless User Experience: เฐเฑเฐฒเฐฟเฐเฑเฐธเฑ เฐฎเฐงเฑเฐฏ เฐเฐฒเฐพเฐเฐเฐฟ “white flash” เฐฒเฑเฐฆเฐพ page reload เฐเฐเฐกเฐฆเฑ เฐเฐพเฐฌเฐเฑเฐเฐฟ, เฐฏเฑเฐเฐฐเฑ เฐเฐเฑเฐตเฐเฐเฐฟ interruption เฐฒเฑเฐเฑเฐเฐกเฐพ เฐ เฐฏเฐพเฐชเฑ เฐฒเฑ เฐเฐเฐเฑเฐเฑ เฐ เฐตเฑเฐคเฐพเฐฐเฑ.
- ๐ฅ๏ธ Reduced Server Load: เฐชเฑเฐฐเฐคเฐฟ เฐฏเฑเฐเฐฐเฑ request เฐเฐฟ เฐธเฐฐเฑเฐตเฐฐเฑ เฐคเฐจ computing power เฐจเฐฟ เฐตเฐพเฐกเฐฟ เฐชเฑเฐฐเฑเฐคเฐฟ HTML เฐชเฑเฐเฑเฐฒเฐจเฐฟ render เฐเฑเฐฏเฐพเฐฒเฑเฐธเฐฟเฐจ เฐชเฐจเฐฟเฐฒเฑเฐฆเฑ; เฐเฐฆเฐฟ เฐเฑเฐตเฐฒเฐ raw data เฐจเฐฟ เฐ เฐเฐฆเฐฟเฐเฐเฑ เฐเฐ API เฐฒเฐพเฐเฐพ เฐฎเฐพเฐคเฑเฐฐเฐฎเฑ เฐชเฐจเฐฟเฐเฑเฐธเฑเฐคเฑเฐเฐฆเฐฟ.