Вопрос

я относительно новичок в YUI - просматривая их замечательную документацию, я не нашел метода или флага для загрузки внешнего ресурса. синхронно.

или вопрос наоборот;для каждого сопоставленного узла мне нужно вызвать метод, который вставляет что-то в узел;с асинхронными вызовами вспомнил идентификаторы похоже, запутался.

поэтому обратный вызов должен придерживаться

pid

когда вызывается функция, а не когда выполняется обратный вызов - я правильно понимаю?

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

Спасибо.МИН

Это было полезно?

Решение

Вам не нужен синхронный запрос.Пользовательский опыт может быть ужасным.На самом деле вы просто хотите передать значение обратному вызову, чтобы он не зависел от pid (которое, как вы заметили, обычно будет иметь другое значение при вызове вашего обратного вызова):

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

Здесь я использую argument член обратного вызова для хранения идентификатора и ссылку на него в самой функции обратного вызова, гарантируя, что каждый обратный вызов использует правильный идентификатор.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top