Синхронный запрос GET с YUI 2.7? - PullRequest
0 голосов
/ 29 апреля 2009

Я относительно новичок в 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
    );
}

спасибо. MYYN

1 Ответ

4 голосов
/ 29 апреля 2009

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

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

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

...