web-gelistirme-sc.com

Ajax geri aramasının en hızlı yöntemi / uygulaması nedir?

Çeşitli/sayısız harita olaylarına işaretleri ile ajax yükleyen bir harita var. Şu anda, json/js'imi yazdıran hook_menu() öğem için özel bir sayfa geri araması tanımladım.

Sayfa geri aramam herhangi bir içerik döndürmediği ve yalnızca içerik yazdırdığı için, Drupal tam şablonu, menüyü, vb. oluşturma ve böylece sadece JavaScript'imle bir sayfa döndürmeme izin veriyor.

Bu işe yarıyor olsa da, ben Drupal hala tamamen bootstrapping inanıyorum, bu da bırakmak istiyorum yükü çok ekliyor anlamına gelir.

Yüksek performanslı JavaScript geri arama işleyicisi , bir "Yüksek performanslı JavaScript geri arama işleyicisi" olarak övünen ve kısaca bir js.php isteklerinizi yönlendirmek ve önyüklemeyi özelleştirmek/sınırlamak/optimize etmek için index.php iltifat etmek Drupal varsayılan olarak yapar.

Ne yazık ki js projesinin henüz bir D7 sürümü yok ( burada bir dilekçe ), bu da bizi en başa götürüyor ... =

Drupal'da bir Ajax geri çağrısı yapmanın en hızlı yolu nedir?

17
electblake

Benim json/js yazdıran hook_menu() öğe için özel bir sayfa geri arama tanımlar.

Drupal 6 teklif etti. Drupal 7 AJAX framework bundan biraz daha fazlasını yapabilir. Evet Drupal önyükleme yapar, aynı zamanda ücretsiz olarak da birçok özellik sunar.Kısa bir sayfa dağıtım yöntemi olarak ajax_deliver () kullanabilir ve tarayıcıya komutlar gönderebilirsiniz.

... Ajax, düğmelere ve bağlantılara sınıflar eklenerek etkinleştirilebilir. Bir bağlantıya 'use-ajax' sınıfı eklenirse, bağlantı bir Ajax çağrısı yoluyla yüklenir. Bu yöntemi kullanırken, bağlantının href'i yolun bir parçası olarak '/ nojs /' içerebilir. Ajax çerçevesi istekte bulunduğunda, bunu '/ ajax /' biçimine dönüştürür. Sunucu daha sonra bu isteğin gerçek bir Ajax isteği yoluyla mı yoksa bozulmuş bir durumda mı yapıldığını kolayca söyleyebilir ve uygun şekilde yanıt verebilir.

Performans nedeniyle çerçeve sidestep istiyorsanız Ancak o zaman doğrudan javascript modülünüzde php dosyaları çağırmak durdurmak için hiçbir şey yoktur. Hayır Drupal iyilik elde edersiniz, ancak sayfa üzerinde tam kontrole sahip olursunuz.

8
Jeremy French

Biraz geç, ancak özellikle yoklama için bu ajax geri aramasını kullanıyorsanız (örneğin yeni mesajları kontrol edin) ilginç bir alternatif var: Drupal node.js entegrasyon .

Yoklama yerine, kullanıcıların (sayfalarındaki JS olarak da bilinir) node.js sunucunuzla açık bir bağlantı kurduğu, etkinlik benzeri bir sistem oluşturmanıza olanak tanır. Bir şey olursa, tüm kullanıcıları node.js ile doğrudan bilgilendirebilirsiniz.

4
Berdir

Ajax geri arama yapmak istediğiniz için Drupal, JS modülünü kullanmak iyi bir bahis gibi görünüyor. Ben sadece koda hızlı bir göz attım ve temelde ne önerebilirim (ama ayrıntılara çok daha fazla dikkat). Kalıcı, en iyi Drupal geliştiricilerden de biridir.

Görünüşe göre module_load_include() veya belki daha manuel bir include 'sites/all/modules/contrib/...'; yaklaşım diğer modüllerden API'leri kullanmanız gerekiyorsa.

Bahsettiğiniz sorun son zamanlarda gündemde olan bir konu oldu. Dries'in DrupalCon Chicago'daki açılış konuşması , Drupal 8, geri aramalar ve HTML dışı çıktı biçimleri yapmak için nasıl daha iyi API'lara ihtiyaç duyulduğundan bahsetti.

3
Adam DiCarlo