Skip to content

Commit be72043

Browse files
authored
Merge pull request #65 from codeharborhub/dev-1
Docs: added Internet content
2 parents c1d340d + 7b1eca8 commit be72043

File tree

11 files changed

+995
-14
lines changed

11 files changed

+995
-14
lines changed

.github/workflows/lighthouse-report.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,9 @@ jobs:
4242
http://localhost:3000/tutorial/
4343
http://localhost:3000/tutorial/category/html/
4444
http://localhost:3000/tutorial/css/introduction/what-is-css
45-
http://localhost:3000/tutorial/javascript/introduction-to-javascript/what-is-js
4645
http://localhost:3000/tutorial/git/introduction
47-
http://localhost:3000/tutorial/category/getting-started-with-github
48-
http://localhost:3000/tutorial/github/introduction-to-github
4946
http://localhost:3000/tutorial/react/react-intro
5047
http://localhost:3000/tutorial/cybersecurity
51-
http://localhost:3000/tutorial/tags
5248
configPath: ./.github/workflows/lighthouserc.json
5349
uploadArtifacts: true
5450
temporaryPublicStorage: true

docs/internet/browser-devtools.mdx

Lines changed: 217 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,217 @@
1-
<ComingSoon />
1+
---
2+
title: "Browser Developer Tools"
3+
description: "Learn how to use Browser Developer Tools (DevTools) to inspect, debug, and optimize websites for performance, accessibility, and security."
4+
tags: [browser, devtools, debugging, chrome, frontend, performance]
5+
sidebar_label: Browser DevTools
6+
---
7+
8+
Modern web browsers come with a powerful suite of built-in tools known as **Developer Tools (DevTools)**. These tools help developers **inspect**, **debug**, **analyze**, and **optimize** web applications directly within the browser.
9+
10+
:::info
11+
Think of DevTools as your web development Swiss Army knife — it provides everything you need to understand how a webpage works under the hood and fix issues on the fly.
12+
:::
13+
14+
## What Are Browser DevTools?
15+
16+
**Browser DevTools** are a set of debugging tools integrated into browsers like **Chrome**, **Firefox**, **Edge**, and **Safari**. They allow you to view and interact with the **HTML**, **CSS**, **JavaScript**, **network requests**, and **performance metrics** of any webpage.
17+
18+
You can open DevTools by pressing:
19+
20+
* **Windows/Linux:** `Ctrl + Shift + I` or `F12`
21+
* **macOS:** `Cmd + Option + I`
22+
23+
## Core Panels in DevTools
24+
25+
Let’s explore the most important panels and their uses:
26+
27+
| Panel | Purpose | Example Use |
28+
| ------ | -------- | ----------- |
29+
| **Elements** | Inspect and modify HTML & CSS live | Change a button color or test responsive layout |
30+
| **Console** | Run JavaScript commands & view logs/errors | `console.log()` debugging |
31+
| **Network** | Monitor API calls, page load time, and caching | Analyze slow API responses |
32+
| **Sources** | View and debug JavaScript files with breakpoints | Pause code at runtime |
33+
| **Performance** | Analyze runtime performance and memory usage | Optimize page rendering |
34+
| **Application** | View storage, cookies, and service workers | Inspect LocalStorage data |
35+
| **Security** | Check HTTPS and certificate information | Identify mixed-content issues |
36+
| **Lighthouse** | Generate audits for performance, SEO, and accessibility | Get site improvement recommendations |
37+
38+
## Elements Panel
39+
40+
The **Elements panel** allows you to explore and edit your website’s structure and styles in real-time.
41+
42+
```mermaid
43+
graph TD
44+
A[HTML Document] --> B[DOM Tree]
45+
B --> C[Styles - CSS]
46+
C --> D[Rendered Page]
47+
```
48+
49+
**Example:**
50+
51+
Change the text of a heading directly from the DOM inspector — it won’t affect your source code, but helps test design changes instantly.
52+
53+
54+
55+
## Console Panel
56+
57+
The **Console** is your **interactive JavaScript terminal**. You can log data, test snippets, or view error messages.
58+
59+
```js title="Console"
60+
console.log("Hello, CodeHarborHub!");
61+
```
62+
63+
**Output:**
64+
65+
```
66+
Hello, CodeHarborHub!
67+
```
68+
69+
Common uses:
70+
71+
* Debugging JavaScript code
72+
* Monitoring warnings or errors
73+
* Inspecting objects and variables
74+
75+
:::tip
76+
77+
You can also use the Console to execute JavaScript on the fly, making it a powerful tool for testing and debugging.
78+
79+
You can also use shortcuts like:
80+
* `$0` → selects the last inspected element from the Elements panel
81+
* `clear()` → clears the console output
82+
:::
83+
84+
85+
## Network Panel
86+
87+
The **Network panel** shows every HTTP request made by the browser — scripts, images, CSS, APIs, and more.
88+
89+
<Tabs>
90+
<TabItem value="what" label="What It Shows" default>
91+
* Request and response headers
92+
* File sizes and load times
93+
* Waterfall visualization of loading sequence
94+
* Status codes (e.g., 200, 404, 500)
95+
</TabItem>
96+
<TabItem value="why" label="Why It Matters">
97+
Helps identify slow resources, failed requests, or caching problems — key for improving **performance** and **user experience**.
98+
</TabItem>
99+
</Tabs>
100+
101+
## Sources Panel
102+
103+
Use the **Sources panel** to:
104+
* View and debug JavaScript files
105+
* Set **breakpoints**
106+
* Step through your code
107+
* Watch variable values as your script runs
108+
109+
```jsx live
110+
function DebugExample() {
111+
const [count, setCount] = React.useState(0);
112+
return (
113+
<div style={{ textAlign: "center" }}>
114+
<h3>Debug Counter Example</h3>
115+
<p>Count: {count}</p>
116+
<button onClick={() => setCount(count + 1)}>Increment</button>
117+
</div>
118+
);
119+
}
120+
```
121+
122+
Try adding a **breakpoint** on the `setCount` line in DevTools to pause execution and inspect the current state.
123+
124+
## Application Panel
125+
126+
The **Application panel** helps manage client-side storage and data.
127+
128+
You can inspect:
129+
* **Cookies**
130+
* **LocalStorage** / **SessionStorage**
131+
* **IndexedDB**
132+
* **Service Workers**
133+
* **Cache Storage**
134+
* **Manifest files**
135+
136+
This is extremely helpful for debugging **PWAs (Progressive Web Apps)** or authentication tokens.
137+
138+
## Performance Panel
139+
140+
The **Performance** tab allows you to **record runtime activity** — useful for diagnosing rendering issues and JavaScript bottlenecks.
141+
142+
Key metrics include:
143+
* Frame rendering time
144+
* Layout and paint events
145+
* JavaScript execution time
146+
* Memory usage
147+
148+
```mermaid
149+
graph LR
150+
A[User Action] --> B[Script Execution]
151+
B --> C[Layout Reflow]
152+
C --> D[Paint]
153+
D --> E[Composite Layers]
154+
```
155+
156+
A well-optimized page maintains **60 frames per second (FPS)** for smooth performance.
157+
158+
:::info
159+
160+
Think of the Performance panel as a high-speed camera that captures every millisecond of your webpage’s activity, allowing you to pinpoint exactly where delays occur.
161+
162+
:::
163+
164+
165+
## Lighthouse Audits
166+
167+
The **Lighthouse** tool (under the “Audits” or “Lighthouse” panel) evaluates your web app for:
168+
* Performance
169+
* Accessibility
170+
* SEO
171+
* Progressive Web App (PWA) features
172+
173+
It provides actionable reports with scores and recommendations.
174+
175+
## Example: Inspecting a Button
176+
177+
```html
178+
<button class="cta">Click Me</button>
179+
```
180+
181+
In the **Elements panel**, you can:
182+
* Modify the color dynamically
183+
* Add hover states
184+
* Copy computed CSS styles
185+
186+
Then test the interaction directly without editing the source code.
187+
188+
## Math Behind Load Time (KaTeX Example)
189+
190+
If a page loads 3 MB of data in 6 seconds:
191+
192+
$$
193+
Load\ Speed = \frac{3\ \text{MB}}{6\ \text{s}} = 0.5\ \text{MB/s}
194+
$$
195+
196+
Optimizing image size, caching, and lazy loading can drastically reduce this time.
197+
198+
## Best Practices for Using DevTools
199+
200+
* Use **Console logs** for quick debugging, but remove them before production.
201+
* Check **Network requests** for unnecessary files or slow APIs.
202+
* Run **Lighthouse** regularly for performance improvements.
203+
* Monitor **Memory leaks** using the Performance tab.
204+
* Use **Responsive Design Mode** to test across devices.
205+
206+
## Key Takeaways
207+
208+
* DevTools empower you to **inspect, debug, and optimize** web applications.
209+
* Mastering key panels (Elements, Console, Network) saves hours of debugging.
210+
* Tools like **Lighthouse** and **Performance** enhance web speed and accessibility.
211+
* DevTools are your **real-time lab** for frontend development.
212+
213+
:::tip Try It Yourself
214+
215+
Open DevTools on any website and experiment with the panels discussed. Change styles, debug scripts, and analyze network requests to see how they affect the page in real-time!
216+
217+
:::

0 commit comments

Comments
 (0)