Kembali ke Daftar ArtikelSSR Route: /blog/membangun-live-search-dan-filtering-di-server
Web Performance
Implementasi Live Search & Filter URL Query Tanpa Client-Side JavaScript
Teknik memanfaatkan URL Search Parameters dan SSR untuk membuat pencarian artikel blog yang cepat, ramah SEO, dan bekerja bahkan saat JavaScript browser dinonaktifkan.
Dimas Anggara
Frontend Specialist
283 Views
Banyak developer frontend modern terbiasa menggunakan client-side state (seperti `useState` React) untuk memfilter daftar artikel di browser. Meskipun interaktif, metode ini memiliki kelemahan:
- Harus mendownload seluruh daftar data artikel ke client.
- URL tidak dapat dibagikan (shareable) bersama filter yang aktif.
- Search engine bot kesulitan mengindeks hasil filter.
Pendekatan SSR First
Dengan Astro SSR, kita cukup memanfaatkan form HTML standar dengan method `GET`:
<form method="GET" action="/">
<input type="text" name="q" placeholder="Cari artikel..." value={searchQuery} />
<button type="submit">Filter</button>
</form>Di server Astro (`src/pages/index.astro`):
const q = Astro.url.searchParams.get('q') || '';
const filteredPosts = posts.filter(p => p.title.toLowerCase().includes(q.toLowerCase()));Hasilnya: Setiap pencarian menghasilkan URL bersih seperti `/?q=astro`, difilter langsung di server dalam hitungan milidetik, dan langsung menghasilkan HTML yang sudah terisi.
Inspeksi Render Detail Post (Server-Side)
Menunggu Hydration...
Server Render Time:7:53:28 PM (227ms)
Request Path:GET /blog/membangun-live-search-dan-filtering-di-server
Client Address:127.0.0.1
Node.js Runtime:v20.20.2 (Standalone)
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Komentar Pembaca1
dsasdas18/09/26, 15.53
dasdasdasd