Pregunta

Soy relativamente nuevo en YUI: al explorar sus excelentes documentos, no encuentro un método o una marca para cargar un recurso externo sincrónicamente .

o la pregunta al revés; para cada nodo coincidente necesito llamar a un método, que inserta algo en el nodo; con llamadas asíncronas, los recordados identificadores parecen confundirse.

por lo tanto, la devolución de llamada debe mantenerse en el

pid

cuando se llama a la función, no cuando se ejecuta la devolución de llamada, ¿estoy haciendo esto correctamente?

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
    );
}

gracias. MYYN

¿Fue útil?

Solución

No desea una solicitud síncrona. La experiencia del usuario puede ser horrible. Realmente solo desea pasar un valor a su devolución de llamada para que no se base en pid (que, como ha notado, generalmente tendrá un valor diferente cuando se llama su devolución de llamada):

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

Aquí, utilizo el miembro de devolución de llamada argumento para mantener la ID, y hago referencia a eso en la función de devolución de llamada, asegurando que cada devolución de llamada use la ID correcta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top