2011-01-22 1 views
1

Результаты возвращаются из строя из последовательности, которую я им сделал. Если я жду каждого запроса, чтобы завершить результаты, все в порядке, но это займет больше времени, чем хотелось бы. Есть ли способ отслеживать, какой результат относится к какому запросу?Я делаю несколько запросов на данные JSONP с помощью jQuery, как выяснить, какой запрос идет с каким результатом?

EDIT: По запросу Я добавляю код, который выполняет вызовы JSON.

for (var i = 0; i < rssLinkDB.length; i++) { 
    jQuery.getJSON(encoded, function(data){ 
    yLinkDB.push(data.query.results.result); 
    index++; 
    if (index == 10) { 
     state = "RequestLikes"; 
    } 
    });   
} 
+0

Не могли бы вы показать, как вы делаете запросы? Своеобразно представить себе, как они «перепутались», чтобы начать с ... – polarblau

ответ

0

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

callbackHandlersNS.callback1 = function() {/* handle first request*/}; 
callbackHandlersNS.callback2 = function() {/* handle second request*/}; 
... 
+0

Будет ли это работать, если количество запросов, которые я делаю, настраивается? – Xavier

+0

Он будет работать от 0 до ∞ запросов – erikvold

+0

Если я разрешу пользователю решить количество запросов, которые нужно сделать, и они выбирают 10. Могу ли я создать 10 имен обратного вызова во время выполнения? Если это так, я могу найти в Google или у вас есть фрагмент кода? – Xavier

1

Если вы вызываете метод на стороне сервера, вы можете использовать пользовательский заголовок HTTP в качестве флага для отслеживания права собственности на запрос/ответ.

Добавить пользовательского заголовка HTTP в методе на стороне сервера и использовать его ключ, чтобы получить значение со стороны клиента:

// In Server Side method (e.g ASP.NET Page Method): 
HttpContext.Current.Response.AddHeader("MyCustomKey", "TheValue"); 


// In jQuery callback body: 
var myCustomHeader = XMLHttpRequest.getResponseHeader("MyCustomKey"); 
// now do whatever you want based on myCustomHeader value... 

 Смежные вопросы

  • Нет связанных вопросов^_^