SORU
11 Temmuz 2012, ÇARŞAMBA


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:

  1. Kullanıcı bağlantıyı tıklattığında
  2. kütüphane bildirilir ve Ajax ile içerik (hiç eksiksiz doldurun!) yükler
  3. <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
  4. yüklenen içerik sayfa eklenir ve mevcut içeriği değiştirir
  5. 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
13 Temmuz 2012, Cuma


Sammy.js ( http://sammyjs.org) (MIT lisanslı) ne yapmak istediğini en iyi odaklanmış, 2 temel ayağı olmak inanıyorum:

  1. Yolları
  2. 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:

Accessibility and all these JavaScript frameworks

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • discokatze

    discokatze

    23 EYLÜL 2009
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009
  • Vintendo Power

    Vintendo Pow

    2 Ocak 2007