Domanda

Sono relativamente nuovo su YUI - sfogliando i loro grandi documenti, non trovo un metodo o un flag per caricare una risorsa esterna in modo sincrono .

o la domanda al contrario; per ogni nodo abbinato devo chiamare un metodo, che inserisce qualcosa nel nodo; con chiamate asincrone gli ricordi identificatori sembrano incasinati.

pertanto il callback deve attenersi a

pid

quando viene chiamata la funzione, non quando viene eseguita la richiamata - sto ottenendo questo giusto?

var platform_ids = YAHOO.util.Selector.query('.platform_id'); 

for (var i = 0; i < platform_ids.length; i++) {
    var pid = platform_ids[i].getAttribute("id");
    var sUrl = "/platform/" + pid + "/description/";
    var callback = { success: function(o) { 
        document.getElementById(pid).innerHTML =  o.responseText; }}
    var transaction = YAHOO.util.Connect.asyncRequest(
        'GET', sUrl, callback, null
    );
}

Grazie. MYYN

È stato utile?

Soluzione

Non vuoi una richiesta sincrona. L'esperienza dell'utente può essere terribile. Vuoi davvero solo passare un valore al tuo callback in modo che non si basi su pid (che, come hai notato, di solito avrà un valore diverso quando viene chiamato il callback):

var callback = { success: function(o) 
  { 
    document.getElementById(o.argument).innerHTML =  o.responseText; 
  }, 
  argument: pid
};

Qui, uso l'argomento argomento per contenere l'ID e faccio riferimento a quello nella stessa funzione di callback, assicurandomi che ogni callback utilizzi l'ID corretto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top