SPA - SINGLE PAGE APPLICATION Nedir ?
Web hayatımıza girdiğinden beri yazılım dünyasında çok büyük değişim ve gelişmeler oldu. Statik web sayfalarıyla başlayan süreç Javascript'in eklenmesiyle büyük bir sıçrama yaşadı ve interaktif web siteleri dönemi başlamış oldu.
Web siteleri geliştikçe kullanıcı sayılarıda artı. Kullanıcıların dur durak bilmeyen ihtiyaçlarını ve isteklerini karşılamak için yazılım geliştiricileri daha fazla fonksiyon ve işlemi Javascript kodlarıyla sayfalara ekledi. Eklenen her özellik daha fazla yük demekti.
Ancak bir sorun vardı. Web siteleri sunucu taraflı çalışıyordu. Yani kullanıcıların erişmek istediği her sayfayı hazırlamak ve kullanıcıya göndermek sunucunun göreviydi. Sunucuların yükü çok fazla arttı. Bu hem sunucu maliyetleri hem de kullanıcı memnuniyeti açısından yeni sorunlar doğurmaya başladı. Çok yavaş, hatta kitlenen web siteleri kullanıcıları üzmeye başladı.
İşte tam da bu noktada SPA - Single Page Application yani Tek Sayfa Uygulaması kavramı doğdu. Kavram ifadesi, özünde yeni bir yazılım diline ihtiyaç duymadan hali hazırdaki Javascript kodlarının kullanılmasında yapılan süreç iyileştirilmesi yani yeni bir metotdan ibarettir.
Bu yöntemle, sunucunun iş yükünün önemli bir bölümü kullanıcın bilgisayarına devri sağlanmış oluyordu.
İşin teknik boyutu ise;
Teknik olarak bir sitenin parçası olan her bir sayfa için ayrı ayrı yaratılmış html kodlarının başlangıç dosyası index.html'in javascript eklentileri içerisinde değişkenlerde tutulmasıdır. Başlangıç sayfası çağırıldığında tüm sayfalara ait html kodlarıda çağrılmış ve tarayıcının hafızasına yüklenmiş olur. Tarayıcı görüntülemek istediğiniz sayfaları, hafızadan yorumlayarak sunucuya gitmeden hazırlar ve gösterir.
Başka bir deyişle sayfalar arası geçişler(Routing) için yapılan istekler sunucu tarafından değil tarayıcı tarafından yorumlanarak ilgili sayfa görüntülenir.
SPA bir çok açıdan büyük avantajlar sağlarken bazı dezavantajları da beraberinde getirmektedir.
- SPA'nın Avantajları
Tabii ki yüksek çalışma hızı.
Sunucu yükünün önemli derecede azalması.
İnternet trafiğinin azalması.
İnternet bağlantısının yavaşlaması ya da olası kesintilerden doğacak etkilerin azalması.
- SPA'nın Dezavantajları
Arama motorları halen site detaylarına erişim sağlayamıyor. SEO optimizasyonu henüz yok.
Tarayıcı adres çubuğundan girilerek yapılan istekler uygulamanın baştan yüklenmesine sebep oluyor.
Geri ve ileri tuşları uygulamanın baştan yüklenmesine sebep oluyor.
Doğru programlama yapılmadığında bellek sızıntılarının hafızayı tüketmesi ve işlemci yükünü artırması. Bu yavaşlama ve mobil cihazların pil ömrüne etki etmesi.
- Single Page Application için geliştirme ortamları
Google tarafından geliştirilen Angular ve FaceBook tarafından geliştirilen React SPA için öne çıkan Javascript yorumlayıcı çerçeveleridir(Framework). Ember, Knockout, Backbone ve VueJS gibi bir çoğuda yaygın şekilde kullanılmaktadır.
Bu araçların yaptığı kendi belirledikleri metotlarla yapılan kodlamanın Javascript koduna derlenmesinden ibarettir.