%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%% flowchart LR subgraph Era1["ยุค Browser JS / Browser Era"] A["JavaScript ใน BrowserClient-side only"] end subgraph Era2["ยุค Server JS / Node.js Era"] B["Node.js + V8JS นอก Browser"] C["npm EcosystemPackage จำนวนมาก"] end subgraph Era3["ยุค Real-time API / Modern Backend"] D["Non-blocking I/OAPI และ Real-time"] E["Full-stack JSภาษาเดียวทั้งระบบ"] end A --> B --> C --> D --> E
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%% flowchart TD A["Call Stackโค้ดที่กำลังทำงาน"] --> B["Node APIsFile/Network/Timer"] B --> C["Microtask QueuePromise callbacks"] B --> D["Callback QueueTimer/I/O callbacks"] C --> A D --> A A --> E["Event Loopตัวจัดคิวงาน"] E --> C E --> D