Oktothorpe / number-sign / hashmark'ın bir URL'de özel bir önemi vardır, normalde bir belgenin bir bölümünün adını tanımlar. Tam terim, karmayı izleyen metnin bir URL'nin bağlantı kısmı olmasıdır. Wikipedia kullanıyorsanız, çoğu sayfanın içindekiler tablosu olduğunu görürsünüz ve belgedeki çapa içeren bölümlere atlayabilirsiniz, örneğin:
https://en.wikipedia.org/wiki/Alan_Turing#Early_computers_and_the_Turing_test
https://en.wikipedia.org/wiki/Alan_Turing
sayfayı tanımlar ve Early_computers_and_the_Turing_test
bağlantıdır. Facebook ve diğer Javascript güdümlü uygulamaların (kendi Ahşap ve Taşlarım gibi ) çapa kullanmasının nedeni, sayfaları yer imi haline getirmek (bu cevaba yapılan bir yorumda önerildiği gibi) yapmak veya sayfanın tamamını yeniden yüklemeden geri düğmesini desteklemek istemeleridir . sunucu .
Yer işaretini ve geri düğmesini desteklemek için URL'yi değiştirmeniz gerekir. Bununla birlikte, sayfa bölümünü (gibi window.location = 'http://raganwald.com';
bir şeyle ) farklı bir URL'ye değiştirir veya bir bağlantı belirtmeden, tarayıcı URL'den tüm sayfayı yükler. Bunu Firebug veya Safari'nin Javascript konsolunda deneyin. Yük http://minimal-github.gilesb.com/raganwald
. Şimdi Javascript konsoluna şunu yazın:
window.location = 'http://minimal-github.gilesb.com/raganwald';
Sayfanın sunucudan yenilendiğini göreceksiniz. Şimdi şunu yazın:
window.location = 'http://minimal-github.gilesb.com/raganwald#try_this';
Aha! Sayfa yenileme yok! Tür:
window.location = 'http://minimal-github.gilesb.com/raganwald#and_this';
Hala yenileme yok. Bu URL'lerin tarayıcı geçmişinde olduğunu görmek için geri düğmesini kullanın. Tarayıcı aynı sayfada olduğumuzu ancak sadece çapayı değiştirdiğimizi fark ettiğinden yeniden yüklemiyor. Bu davranış sayesinde, tarayıcıya tek bir 'sayfada' görünen ancak geri düğmesine saygı duyan birçok yer imi eklenebilir bölüm gibi görünen tek bir Javascript uygulamamız olabilir. Kullanıcı farklı 'durumlara' girdiğinde uygulamanın bağlantı noktasını değiştirmesi gerekir ve aynı şekilde bir kullanıcı bağlantıyı ekleyerek uygulamayı yüklemek için geri düğmesini veya bir yer imini ya da bağlantıyı kullanırsa, uygulamanın uygun durumu geri yüklemesi gerekir.
İşte burada: Bağlantılar, Javascript programcılarına yer imi eklenebilir, dizine eklenebilir ve geri düğmesi dostu uygulamalar yapmak için bir mekanizma sağlar. Bu tekniğin bir adı vardır: Tek Sayfa Arayüzüdür .
ps Bu tekniğin dördüncü bir yararı var: Sayfa içeriğini AJAX aracılığıyla yüklemek ve ardından mevcut DOM'a enjekte etmek yeni bir sayfa yüklemekten çok daha hızlı olabilir. Hız artışına ek olarak, belirli bölümleri arka plana yüklemek gibi başka hileler programcının kontrolü altında gerçekleştirilebilir.
pps Tüm bunlar göz önüne alındığında, 'patlama' veya ünlem işareti Google'ın web tarayıcısına, aynı sayfanın sunucudan biraz farklı bir URL'den yüklenebileceğine dair başka bir ipucudur. Bkz. Ajax Tarama . Başka bir teknik, her bağlantıyı sunucu tarafından erişilebilen bir URL'ye işaret etmek ve ardından onu çapa ile bir SPI'ye değiştirmek için göze batmayan Javascript kullanmaktır.
İşte anahtar bağlantı: Tek Sayfa Arabirimi Manifestosu
shebang
... en.wikipedia.org/wiki/Shebang_%28Unix%29