PulseBlog
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
Dimas Anggara
Frontend Specialist
283 Views
Implementasi Live Search & Filter URL Query Tanpa Client-Side JavaScript

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...
SSR On-Demand⚡ 1.99 ms
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

SSR Rendered + Client Hydrated
Preview Avatar
Tekan Kirim untuk mempublikasikan komentar secara instan.0/600
dsasdas
dsasdas18/09/26, 15.53

dasdasdasd