Ana içeriğe geç

MPA

Çok Sayfalı Uygulama

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/mpa

Kısaca

MPA, her bağlantının ya da form gönderiminin sunucudan yeni bir HTML sayfası yüklediği web sitesi ya da uygulamasıdır; web'in klasik çalışma biçimidir.

MPA nedir?

Çok sayfalı bir uygulamada her sayfa kendi HTML belgesidir. Kullanıcı bir bağlantıya tıkladığında ya da bir form gönderdiğinde tarayıcı sunucudan yeni bir sayfa ister, eskisini bırakır ve yenisini yükler. Sunucu HTML'i ya önceden statik dosyalar olarak ya da her istekte PHP, Python, Ruby veya JavaScript gibi bir dille üretir. Sayfadaki JavaScript isteğe bağlıdır ve üstüne etkileşim ekler.

Web'in büyük kısmı böyle çalışır: haber siteleri, online mağazalar, bloglar, dokümantasyon ve kamu hizmetleri; WordPress, Django, Ruby on Rails, Laravel ya da Astro gibi araçlarla geliştirilir. MPA'ları geliştirmek ve önbelleğe almak kolaydır; her sayfanın arama motorlarının okuyabildiği gerçek bir URL'i vardır, geri butonu ve kaydırma konumu kendiliğinden çalışır ve her sayfa yalnızca ihtiyaç duyduğunu taşıdığı için hızlı yüklenir.

Klasik dezavantajı tam sayfa yenilemedir: ekran bir anlığına boşalır, başlık gibi ortak kısımlar yeniden çizilir ve yalnızca sayfanın belleğinde tutulan her şey kaybolur. Tarayıcılar bu farkı daralttı. Belgeler arası view transition'lar bir sayfadan diğerine geçişi canlandırır, back/forward cache son sayfaları anında geri getirir, bazı tarayıcılarda da speculation rules olası bir sonraki sayfayı önceden yükler. htmx ve Turbo gibi kütüphaneler bir adım öteye gidip sunucudan gelen taze HTML'i tam sayfa yenilemesi olmadan yerine koyar.

Karşıt model, tek bir sayfa yükleyip onu JavaScript ile yeniden çizen tek sayfalı uygulamadır (SPA). Aradaki çizgi bulanıklaştı: Next.js gibi framework'ler ilk yüklemede her sayfayı bir MPA gibi sunucuda render eder, ardından bir SPA gibi gezinir. Çok sayfalı olmak statik olmak anlamına da gelmez: bir MPA'nın sayfaları her istekte üretilip her kullanıcıya göre kişiselleştirilebilir.

Önemli noktalar

  • Bir MPA'da her gezinme sunucudan yeni bir HTML sayfası yükler.
  • Web'in geleneksel modelidir; içerik sitelerinin ve mağazaların çoğu onu kullanır.
  • Sayfalar JavaScript olmadan çalışır, gerçek URL'leri vardır ve arama motorlarınca kolayca okunur.
  • Asıl dezavantajı tam sayfa yenilemedir; view transition'lar ve önceden yükleme bunu yumuşatır.
  • SPA ise tek bir sayfa yükler ve onu JavaScript ile günceller.

Örnek

Düz bağlantılar ve bir form: her biri yeni bir sayfa yüklerhtml
<!-- Plain links: each click loads a new HTML document from the server -->
<nav>
  <a href="/">Home</a>
  <a href="/products">Products</a>
  <a href="/cart">Cart</a>
</nav>

<!-- The server answers this form with a new page of results -->
<form action="/search" method="get">
  <input name="q" type="search" aria-label="Search">
  <button>Search</button>
</form>

<!-- Animate between pages in browsers that support cross-document view transitions -->
<style>@view-transition { navigation: auto; }</style>

Sık sorulan sorular

MPA ile SPA arasındaki fark nedir?

MPA her gezinmede sunucudan yeni bir HTML belgesi yükler. SPA ise bir kez yüklenir, ardından veriyi çeker ve sayfayı JavaScript ile yeniden çizer; bu yüzden gezinme bir uygulamadaki gibi hissettirir, ama ilk yükleme ve SEO daha fazla özen ister.

MPA SEO için daha mı iyi?

Genellikle daha basittir, çünkü her sayfa kendi URL'iyle eksiksiz HTML olarak gelir. SPA'lar da iyi sıralanabilir, ama arama motorlarına aynı içeriği vermek için sunucu tarafı render ya da önceden render (prerendering) gerekir.

MPA mı yapmalıyım, SPA mı?

İçerik siteleri, mağazalar ve formlar için MPA genellikle daha basit ve daha hızlıdır. Editörler ya da paneller gibi kullanıcıların uzun süre tek bir ekranda kaldığı, yoğun etkileşimli uygulamalar için SPA ya da hibrit bir framework daha uygundur.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar