jQuery - передовая практика при возврате содержимого из запроса getJson в функцию вызывающего - PullRequest
1 голос
/ 15 декабря 2011

Какова наилучшая практика при возврате содержимого из результата запроса $.getJson в функцию вызывающей стороны? У меня есть функция с именем $.fn.getSomeData, в которой есть вызов $.getJson (эта функция находится в файле JS, который JSP, желающий использовать мой веб-сервис, должен импортировать).

Тогда внутри вызывающей JSP функция вызовет мою $.fn.getSomeData функцию.

Поскольку мой запрос $.getjson является асинхронным, мне нужно дождаться выполнения функции обратного вызова, прежде чем я смогу подумать об обработке JSON. Каков наилучший способ обработки passind полученных данных обратно в функцию в вызывающей JSP.

Другие опции, которые я прочитал, включая передачу Div в метод $.fn.getSomeData и затем в функцию обратного вызова $ .getJson, я выполняю обработку json и добавляю к Div, как я хочу, чтобы он появлялся.

Вторым вариантом было передать функцию в $.fn.getSomeData. Затем эту функцию можно вызвать в функции обратного вызова $.getjson.

Может ли кто-нибудь порекомендовать лучшую практику? Я бы предпочел не использовать опцию передачи Div в мою функцию $.fn.getSomeData, так как я хочу уменьшить связь в моем внешнем файле JS.

Также есть ли способ добавить функцию обратного вызова в вызов, который я выполняю из JSP, к $.fn.getSomeData, который каким-то образом сработал бы после выполнения обратного вызова $.getjson?

Ждем ваших предложений.

1 Ответ

1 голос
/ 15 декабря 2011

Вторая версия - это то, что вам нужно.

Передайте функцию, которую вы хотите выполнить после завершения запроса getJson.

$.fn.getSomeData = function(callback) {
    $.getJSON('url', data, callback);
}

$('div').getSomeData(function() { 
    // do something
});

Сначала обработайте данные, а затем вызовитефункция делает это:

$.fn.getSomeData = function(callback) {
    $.getJSON('url', data, function(result) {
        // do something with data
        callback(result);
    });
}
...