JavaScript In: WordPress Rest API ve JavaScript Sözü

Matt Mullenweg herkese JavaScript’i öğrenmesini söylediğinde, topluluk bunun WordPress için ne anlama geldiğini açıklamaya çalışırken delirdi. Ne öğrenmelisin? Bir iş, kütüphane veya sadece javascript vanilya çerçevesi olmalı mı? Şimdi bir şey alma eğiliminde olursanız, daha derine inmeye hazırsınız. JQuery gibi basit kütüphaneleri incelemeye başlasanız bile, temel animasyon ve soluktan geçtikten sonra daha fazla bilgi edinmek isteyeceksiniz. Birkaç yıl önce vaatler JavaScript’e özgü idi. Sözlere girmeden önce, ele aldıkları ihtiyaçları veya sorunları önceden açıklayayım.
Ajax ve Asenkron Kodlar JavaScript ile, özellikle dinlenme yangınlarıyla bir şeyler öğrenecekseniz, JavaScript kullanarak sitenizden veri alıp yeniden bağlama sayfaları olmadan görüntülenir. Ajax ilk olarak Facebook’lu çoğu kişiye tanıtıldı – bu, duvar güncellemelerinizi ferahlığı bastırmak zorunda kalmadan görmenizi sağlar. Ajax hakkında daha fazla bilgi edinmek için Torquemag.io’daki diğer birkaç makaleye bakın. Sorun burada. var post = {};
$ .Ajax ({
URL: Ajaxurl + ‘/Post’,
Yöntem: ‘Al’,
Başarı: işlev (res) {
post = res;
}
});
$ .EACH (Post, Fonksiyon (Anahtar, Değer) {
$ (‘#sarma-you). append (‘

‘ + value.title.rended +’

‘);
}); Yukarıda belirtilen kodda, en son yayınları almak için JQuery ve API REST’i kullanıyorum, bitiş noktasını /yayınlarını kullanıyorum ve sunucudan bir VAR gönderisi olarak bir yanıt kaydetiyorum. Hemen yazımı sayfada görüntülemek için bir yanıt kullanmak istedim. Ancak, bu kodu çalıştırırsanız, yayının belirlenmediğini veya daha doğrusu boş olduğunu gösteren bir hata alırsınız. Daha sinir bozucu olan şey, bazen bu kodun iyi çalışması ve bazen olmamasıdır. Bu, yarış koşulunun tanımıdır veya bazen sayfayı yüklediğiniz ve gönderinin belirlendiği ve her şey işlediği ve bazen Ajax’ın bitmediği için değil. En son gönderiyi almak ve görüntülemek istiyorsam başarılı bir çağrı kullanın Öyle bir şey yapacağım: $ .ajax ({
URL: Ajaxurl + ‘/Post’,
Yöntem: ‘Al’,
Başarı: işlev (res) {
$. Her (res, işlev (anahtar, değer) {
$ (‘#sarma-you). append (‘

‘ + value.title.rended +’

‘);
});
}
}); Farkı görüyor musun? Sunucu verilerle yanıt verdiğinde, JQuery API çağrısının başarılı olduğunu bilir, ardından yanıt verilerine devam eden diğer işlevleri çalıştırır.
En basit haliyle, bu bir randevu örneğidir. Teknik olarak, bu eşzamanlıdır veya kodu veri ve olaylara göre çalıştırır. Başarı işlevi, sunucu başarılı bir bağlantı olduğunu söyleyene kadar çalışmaz. JavaScript JavaScript JavaScript tek bir UTA’dır, yani her seferinde sadece bir şey yapmayı başarabilir. Bazı dillerin çok fazla UTA’sı vardır, yani birçok görev yapabilir veya aynı anda birçok şey yapabilirler. JavaScript yapamaz. Geçmişte, bu olaylar tarafından yönlendirilen JavaScript ile yapıldı. Bir etkinlik başlattınız ve etkinliğin daha fazla kod çalıştırmak için etkinleştirilmesini bekleyen bir etkinlik dinleyicisi var. Tıpkı yukarıdaki başarı işlevi gibi, olay dinleyicisi, ateşlenen etkinlik tarafından anlatılana kadar gitmedi. Etkinlik hakkında kafası karışmışsanız, notlara ek olarak ‘aktif’. “Aktif” jQuery işlevini arayın. Zaten kullanabilirsiniz, şu şekilde: $ (‘. Bir element’).
// bir şey yap
});
Bu basit bir tıklama komutudur, onclick, bir şeyler yapın. Etkinlik “tıklayın” ve iade çağrısı işlevi yalnızca etkinlik etkinleştirildiğinde çalışır.
Olaylar tarafından yönlendirilen tüm JavaScript şeylerini çözme sözü sıkıcı olabilir ve başarı işlevi Ajax için çalışırken, Ajax komutunu birlikte düzenlediğiniz senaryoyu düşünmelisiniz. Örneğin, kullanıcı verileri almak için WordPress REST API’sını kullanırsınız ve ardından Eklenti API’sını kullanarak bağışlarla düzenlemek istersiniz. Hiçbir şey, kodunuzu hızlı bir şekilde uzun ve sürdürmeyi zorlaştırabilecek başarılı bir iade işlevinden başka bir şey kullanmaz. Faiz, bunu biraz daha kolay açıklamayı reddetmek, rsvp.js adlı jQuery kütüphanesini kullanacağım – orada bazıları var, ama Bence bu kodun sözdizimi anlaşılması en kolay olanlardan biridir. İlk olarak, terminolojimizi azaltalım. Bir vaat aşağıdaki duruma sahip olabilir: Tamamlandı – Başarı Reddedildi – Gecikmeli Başarısızlık / Hata – Hala uzaya çalışıyor – tamamlanmış ve iyi bir alan veya kullanım vaat ederken reddedilirken, durumu belirlemek için yerleşim ve reddetme işlevini kullanırız. Çözümün tamamlanması Ajax’ın başarı işlevi ile aynıdır. Aynı Ajax çağrısını alırsanız, ancak randevu alırsanız, başarılı olursa verilerle bitireceğiz. Ajax’ın çağrısı başarısız olursa veya bir hata alırsanız, verilere ret yoluyla devam edebilirsiniz.
Reddetme reddetme bir hata olayıdır, bu nedenle başarı yerine bir hata ortaya çıkarsa, bu geri dönecektir. Ardından, bir sözü tanımladıktan sonra, kodunuzu yapmaya devam etmek için bir dize işlevi olan ‘sonra’ kullanacaksınız. https://gist.github.com/royboy789/f039bcff5559161b97b işlevi, tamamlanan ve reddedilen senaryoyu işler ve veriler alındıktan sonra işlevinize devam etmenize izin verir. Daha fazla sihirli mucizeler yapmak için ‘sonra’ birlikte düzenlemek, sözün arttığı yer burası. Verileri manipüle etmek veya diğer Ajax çağrıları yapmak istiyorsanız, verileri ‘o zaman’ olarak döndürerek yapabilirsiniz. İşlevleri birlikte ayarlayabilirsiniz ve sadece başarılı olduklarında sürekli yürüyeceklerdir. Belki akışınız şöyle görünüyor: en son gönderiyi alın

Kimlik almak için her birinin üzerinden döngüler
Daha fazla veri almak için başka bir API’ye başka bir Ajax çağrısı yapın (yani ödeme)
Başka bir Ajax çağrısı yapın (yani ödeme ayrıntılarıyla güncelleme gönderisi)
Her yazı için birleşik verilerle yeni bir nesne oluşturun
Post Nesneleri Göster
Yalnızca JQuery Ajax kullanırsanız bu karmaşık olabilir, ancak randevu ile geri dönmeye devam edebilirsiniz. Ve en iyisi, başarısızlık olduğunda devam etmeyeceğidir. Bu, hatayı hızlı bir şekilde yakalamanızı ve neden başarısız olduklarını teşhis etmenizi sağlar. Yukarıdaki örnekte, ödeme başarısız olursa, işlemi durdurmak ve onlara söylemek isteyebilirsiniz.
Angularjs $ Q, artık Angularjs’i ve neler yapabileceğini sevdiğim bir sır değil. Bu konuda en sevdiğim şeylerden biri, $ Q ile kavrulmuş vaatleri olması. Başvurunuzun karmaşıklığına eklemek için randevu kullanan askıya alınmış bir nesne yapabilirsiniz. Buna ek olarak, diğer birçok varsayılan açısal işlev vaatlere dayanmaktadır. Bu, AngularJS için varsayılan Ajax paketi olan $ HTTP içerir, bu da çok fazla ek kod gerekmeden kutu dışındaki vaatlerle çalışmanızı sağlar. Başka bir okuma JavaScript’teki vaadin bir bakışını okudum. Sözler hakkında sevdiğiniz diğer şeylerle veya WordPress’te nasıl kullandığınızla ilgili yorum bırakmaktan çekinmeyin. Not: Jake Archibald’ın html5ocks.com adresindeki vaat eden JavaScript makaleleri bu konuya iyi bir giriş sağlar. Anlaması kolay dilde yazılmış. Sözler hakkında daha fazla ayrıntı girdi ve neden yararlı olduğunu ve onunla yapabileceğiniz daha fazla şeyden bahsetti.

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir