2016-02-26 3 views
-1

Для какого-то бизнеса мне нужно использовать синхронно для Ajax, может кто-то помочь мне в использовании, я нахожу такой код, как это, но не понимаю, что он делает.Использование синхронного запроса Ajax

function getData(productId, storeId) { 
    var returnHtml = ''; 

    jQuery.ajax({ 
    url: "/includes/unit.jsp?" + params, 
    async: false, 
    cache: false, 
    dataType: "html", 
    success: function(html){ 
     returnHtml = html; 
    } 
    }); 

    return returnHtml; 
} 
+1

Синхронный Ajax - это ужасная вещь. Вместо этого вы должны написать код, чтобы использовать результат Ajax асинхронно. Код не сложно, как только вы узнаете, как это сделать. Вам просто нужно использовать результат Ajax в обратном вызове, а не в возврате функции. FYI, «A» в «Ajax» означает «асинхронный» по какой-то причине. – jfriend00

+0

'async: false' устарел. Браузеры специально * не хотят, чтобы вы это делали. Почему вы думаете, что вам нужно? Какова проблема, которую вы пытаетесь решить? – David

+0

См. Http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call, чтобы узнать, как использовать асинхронный метод, вместо того, чтобы пытаться использовать устаревший синхронный AJAX. – Barmar

ответ

0

Ваш код является стандартным JQuery Ajax код с async собственности устанавливается в ложь. Это заставляет вызов ajax быть синхронным.

function getData(productId, storeId) { 
    var returnHtml = ''; 

    jQuery.ajax({ 
    url: "/includes/unit.jsp?" + params, 
    async: false, // <-- this forces the ajax call to be synchronous. 
    cache: false, 
    dataType: "html", 
    success: function(html){ //<<-- This is where you get the ajax response 
     returnHtml = html; 
    } 
    }); 

    return returnHtml; 
} 

Просто имейте в виду, что синхронные вызовы ajax не очень эффективны.

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