Если я правильно понимаю, что вы будете, я могу порекомендовать вам использовать плагин jQuery blockUI (http://malsup.com/jquery/block/). Тогда вам не нужно больше использовать параметр «async: false» функции $ .ajax и делать что-то как следующее:
var WaitMsg = function () {
jQuery('#main').block({ message: '<h1>Die Daten werden vom Server geladen...</h1>' });
};
var StopWaiting = function () {
jQuery('#main').unblock();
};
WaitMsg();
$.ajax({url : '/DisplayObAnalysisResults.action?getCustomAnalysisResults',
data: jQuery.param({portfolioCategory: $('#portfolioCategory').val(),
subPortfolioCategory: $('#subPortfolioCategory').val(),
subportfolio: $('#subportfolio').val()}),
complete: function (data, status) {
if (status === "success" || status === "notmodified") {
var ob_GridJsonContents = jQuery.parseJSON(data.responseText);
...
}
StopWaiting();
},
error: function (xhr, st, err) {
// display error information
StopWaiting();
}
});
Я рекомендую вам не создавать параметры, как
"portfolioCategory =" + $ ('# portfolioCategory'). Val ()
+ "& subPortfolioCategory =" + $ ('# subPortfolioCategory'). val ()
+ "& subportfolio =" + $ ('# subportfolio'). val ()
потому что вы можете получить проблемы с кодировкой, если данные, возвращаемые .val () , имеют некоторые специальные символы. В таких случаях вы можете использовать функцию JavaScript encodeURIComponent (например, encodeURIComponent ($ ('# portfolioCategory'). Val ()) ).
или jQuery.param , если вы создаете строку типа p1 = val1 & p2 = val2 & ... pN = valN .
С наилучшими пожеланиями
Олег