Hepsi bir konum/hashchange tarihi yönetim kitaplığı
Öncelikle, var, biliyorum kütüphaneleri sağlamak için polyfillslocation.pushState
/popState
(History.js, Hash.js, jQuery hashchange), o yüzden sakın sadece bağlantı bu.
Daha güçlü bir kütüphane RİA aşağıdaki elde etmek istiyorum:
- Kullanıcı bağlantıyı tıklattığında
- kütüphane bildirilir ve Ajax ile içerik (hiç eksiksiz doldurun!) yükler
<a>
tüm öğeleri tıklatma işleyicisi ile kaldıraçlı- önler 2 sayfayı yeniden yükler. (**5) ve
- aramalar
location.pushState
yerine / eski tarayıcılar için location.hash ayarlar
- yüklenen içerik sayfa eklenir ve mevcut içeriği değiştirir
- 1 ile devam edin.
Ayrıca, önceden yüklenmiş içeriği kullanıcı geri gider gibi restore edilmelidir.
Örnek olarak, Internet Google klick Explorer <10 ve başka bir tarayıcı.
Hatta yakın geliyor bir şey var mı? IE8, FF10, Safari 5 ve Chrome 18 için desteğe ihtiyacım var. Ayrıca, MIT ya da Apache gibi izin veren bir lisans olmalıdır.
CEVAP
Sammy.js ( http://sammyjs.org) (MIT lisanslı) ne yapmak istediğini en iyi odaklanmış, 2 temel ayağı olmak inanıyorum:
- Yolları
- Olaylar
Doktorlar dan alıntı olabilir ama oldukça basittir:
kurulum yapılacak şeyler, e ilgili yolları istemci tarafı.g: ajax . içinden gelen görünümü güncelleme
olaylar yolları aramaya bağla.g: ben bir linke tıkladığında rota yukarıdaki Ara. (E emin olun gerekir.preventDefault, bu uygulamayı bir karar gerçekten olduğundan, böylece ımho kullanacaksın herhangi bir kütüphane tarafından çekilen uzakta olamaz inanıyorum) tanımlanan olay denir
Bazı ilgili dokümanlar
Bir güzergah için örnek: (http://sammyjs.org/docs/tutorials/json_store_1)
this.get('#/', function(context) {
$.ajax({
url: 'data/items.json',
dataType: 'json',
success: function(items) {
$.each(items, function(i, item) {
context.log(item.title, '-', item.artist);
});
}
});
});
Ya da böyle bir şey
this.get('#/', function(context) {
context.app.swap(''); ///the 'swap' here indicates a cleaning of the view
//before partials are loaded, effectively rerendering the entire screen. NOt doing the swap enables you to do infinite-scrolling / appending style, etc.
// ...
});
Tabii ki başka bir istemci-MVC çerçeveler daha tesisat götürün, ama bu durumda olabilecek olan bir seçenek de olabilir.
oldukça iyi (ve hala oldukça kısa bir süre önce yapılan bir karşılaştırma:
http://codebrief.com/2012/01/the-top-10-javascript-mvc-frameworks-reviewed/ ( Spine.js kendim de kullanıyorum ) .
Son olarak, ben düşündüm de belki yararlı dahil bir cevap yazdım bir süre önce gider içine ayrıntısına kadar bütün en iyi uygulama (gibi görüyorum) istemci tarafı yeniler, vb. Belki bunu yararlı bulabilirsiniz:
Nasıl Başlangıç Adresi olarak Yön için...
Nasıl resim fotoğraf kitaplığı iPhone ...
Neden konuları açık bir yönetim kötü b...
javascript veri yapıları kitaplığı...
Android uygulaması geçerli saat ve tar...