2011-04-08 13 views
7

nasıl işleneceğini: Ben kendi PHP framework geliştirdijavascript koymak nerede ve aşağıdaki pratik bir (güncellenebilen, yeniden kullanılabilir, berrak, ...) çözüm arıyorum Uzun zamandır olayları

  • hangi 'widget'ları kullanır - UI'nin yeniden kullanılabilir bölümleri. Widget'lar ajax istekleri ile güncellenebilir.
  • her widget, HTML çıktısını üreten Content() adlı yöntemle basit bir PHP sınıfıdır.
  • hemen hemen tüm parçacıklar JavaScript içerir. Söz konusu widget'daki olayları işlemek için kullanılır.

Her şey yolunda olsa da, JS'nin kullanılma biçiminden memnun değilim. İşte bazı önemli sorunlar şunlardır:

  • ile birlikte istemci (OK) aktarılır Ajax tüm Widget verileri (HTML) kullanarak bir widget ferahlatıcı tüm JavaScript (BAD) (ancak JS 99 yılında değiştirilmez % durum)
  • son HTML biçimlendirmesi, javascript çağrıları ve olay işleyicileriyle karıştırılır.
  • o yönetmek zordur tüm gömülü JS
  • JS tarayıcı tarafından sana daha büyük php çerçeveler Javascript kullanımı hakkında görüşleriniz/tavsiyem sormak istiyorum ne bu şekilde

önbelleğe alınamaz.

Geçtiğimiz günlerde Widget sınıfında ayrı bir yöntem yazmayı düşünüyordum (Script() işlevini diyelim ki burada tüm JS kodunu koyacağım ve tüm widget'lardan geçip tüm JS kodunu alıp Widget'lardan birinde yapılan bir değişiklik olana kadar kullanılacak olan bir .js dosyasında. Bu yaklaşım hakkında ne düşünüyorsunuz?

Teşekkürler!

cevap

1

Farklı widget'lar tarafından kullanılan javascript dosyalarını farklı haritalara koyar ve statik olarak yüklerim (daha hızlı olmalı ve doğru ayarlara sahipseniz otomatik tarayıcı önbellekleme yapmalıdır).

Daha sonra, çerçevenizin ne kadar dinamik olduğuna bağlı olarak, sayfa üzerinde halihazırda yüklü olan widget'lar için gerekli olan JS dosyalarını otomatik olarak getiren ve yükleyen bir çeşit yükleyici-javascript yapardım. Komut dosyasında yazdırmanız gereken tek şey, belki de bir çeşit require_js_file işlevidir; bu, javascript'in bu widget'ın kullandığı yükleyiciye söyleyeceği ve yükleyicinin getireceği, ancak henüz yüklenmemişse (örneğin; Widget'ın ilk koşusu değil).

0

Yapmaya çalıştığınız şey, Agile Toolkit'le karşılaştığım şeyle aynı şey. AJAX isteği ile formu/ızgarayı yükleyen örneğe aşağı kaydırın. Tam olarak yapmaya çalıştığınız şeyi yapar - JavaScript ile birlikte bir widget yükler ve sadece gerekli olanı yürütür. Karşılaştığım zorluklar: - javascript'in yüklenmesi ve yürütülmesi. Kullandığım kendi işleyicimi yazmam gerekiyordu. $ .ajax'ın üzerine inşa edilmiştir. Oturum süreleri, çoklu kullanıcı tıklamaları, yavaş yükler gibi şeyler bu katmanda ele alınır. - Çerçeve, JavaScript'in kontrolünü ele geçirmelidir. Bunun için jQuery Zincirleri kullanıyorum. Temel olarak, herhangi bir Widget'e (veya lingo'muzu görüntüleyen) iliştirilebilen bir nesne oluşturur ve sadece Widget da görüntüleniyorsa çıktıda görünür.Kısmi yeniden yükleme yaparken, sadece ilgili JS'yi göstermelisiniz. Tabii https://github.com/atk4/atk4/blob/master/lib/AbstractView.php#L250

Bence bu şekilde görüşlerini abstracting ve JavaScript ayıran gitmek için harika bir yoldur olmasıdır:

Yani Senaryo yöntemi js() işlevi benim yaptığım gibi tamamen aynıdır. Zengin web sitelerinde çok fazla AJAX hatası görüyorum, örneğin Amazon EC konsolunda, Github vs'de ve Agile Toolkit'te yaptığımız yazılımlarda bunların hiçbiri yok. Gelişmede bile tüm javascript çok makul ve öngörülebilir davranır.

Biz AJAX tamamen bir çevrimiçi tam muhasebe yazılımı oluşturmak için dereceye kadar çıktı. İnsanlar tek bir sayfa yenilemesi olmadan saatlerce kullanıyorlar. Birçok jQuery eklentileri düzgün kendilerini imha etmek EdevatFabrikası dönüştürülür gerekiyordu. Ve bunun gibi bir yazılım geliştirmek sadece şaşırtıcı.

İlgili konular