Nasıl bir WordPress kullanmak ertelenmiş kullanılabilir mi?
jQuery 1.5 yeni Ertelenmiş nesne ve ekli yöntemleri .when
, *4* *5* getiriyor.
it kaynak açıklamalı ettim önce .Deferred
kullanılan tarzda olanlar için
Bu yeni yöntemlerin Olası kullanımları nelerdir, nasıl uydurma konusunda gitmek kalıpları içine muyuz?
Zaten API okudum ve ne yaptığını biliyorum yani 26**,. Benim soru nasıl günlük kod bu yeni özellikleri kullanabilir miyiz?
AJAX sırada isteği çağıran bir tampon sınıfı example bir basit var. (Sonraki başladıktan sonra önceki tamamlanır).
/* Class: Buffer
* methods: append
*
* Constructor: takes a function which will be the task handler to be called
*
* .append appends a task to the buffer. Buffer will only call a task when the
* previous task has finished
*/
var Buffer = function(handler) {
var tasks = [];
// empty resolved deferred object
var deferred = $.when();
// handle the next object
function handleNextTask() {
// if the current deferred task has resolved and there are more tasks
if (deferred.isResolved() && tasks.length > 0) {
// grab a task
var task = tasks.shift();
// set the deferred to be deferred returned from the handler
deferred = handler(task);
// if its not a deferred object then set it to be an empty deferred object
if (!(deferred && deferred.promise)) {
deferred = $.when();
}
// if we have tasks left then handle the next one when the current one
// is done.
if (tasks.length > 0) {
deferred.done(handleNextTask);
}
}
}
// appends a task.
this.append = function(task) {
// add to the array
tasks.push(task);
// handle the next task
handleNextTask();
};
};
.Deferred
.when
gösterileri ve olası kullanır arıyorum.
Ayrıca ._Deferred
örnekler görmek güzel olurdu.
Örnekler için *11* yeni kaynak bağlantı aldatıyor.
Ödül:Teknikleri biz bir operasyon olsun uzak soyut eşzamanlı olduğunda kullanılabilir olan veya olmayan bir şekilde yapılır bize gösteriyor.
CEVAP
Düşünebildiğim en iyi kullanmak durumunda AJAX yanıtları önbelleğe alma. İşte Rebecca Murphey's intro post on the topic değiştirilmiş bir örnek:
var cache = {};
function getData( val ){
// return either the cached value wrapped in a Promise, or
// jqXHR object (which contains a Promise)
return $.when(cache[ val ]) || $.ajax('/foo/', {
data: { value: val },
dataType: 'json',
success: function( resp ){
cache[ val ] = resp;
}
});
}
getData('foo').then(function(resp){
// do something with the response, which may
// or may not have been retreived using an
// XHR request.
});
Eğer değer zaten daha önce talep edilmiş ise temelde, hemen önbellekten döndü. Aksi takdirde, bir AJAX isteği veri alır ve önbelleğe ekler. Bu $.when
/.then
dikkat etmez bununla ilgili; tüm olmalısın ilgili ilgili kullanma yanıtı, hangi iletilir .then()
işleyicisi her iki durumda. jQuery.when()
non-Söz/Tamamlanmış olarak Ertelenmiş, hemen .done()
veya zincir .then()
herhangi yürütülen işler.
Deferreds görev olabilir veya zaman uyumsuz olarak çalışmayabilir zaman için mükemmeldir, ve kod bu durum soyut.
Başka bir gerçek dünya örneği $.when
yardımcı kullanarak
$.when($.getJSON('/some/data/'), $.get('template.tpl')).then(function (data, tmpl) {
$(tmpl) // create a jQuery object out of the template
.tmpl(data) // compile it
.appendTo("#target"); // insert it into the DOM
});
Nasıl bir WordPress kullanmak ile aynı...
bir öğe veri-öznitelik değeri için bir...
bir eleman diğerine göre konumu Nasıl?...
Nasıl bir WordPress kullanmak içinde s...
Nasıl bir seçici bir WordPress kullanm...