Страница тратит много времени перед обработкой ссылки тега привязки после нажатия кнопки привязки

мои извинения, если это неполный или неуместный вопрос, но у меня есть большая проблема в моем коде. Используя ajax, я вызываю список гостиничных номеров, используя API. Теперь я вызываю отдельные асинхронные запросы ajax, используя JQuery, чтобы получить политику отмены этих комнат. Ajax-запросы собираются на один PHP-скрипт на сервере. Если присутствует политика отмены, покажите кнопку «Забронировать» для комнаты, а если нет политики отмены, то скройте комнату.

Теперь проблема состоит в том, что предположим, что есть 5 комнат, и одна комната возвращает политику отмены 1-й. Я показываю кнопку «Книга», которая является якорным тегом с href для страницы оформления заказа. Но если я нажму на этот тег привязки, то странице потребуется еще 15-20 секунд, прежде чем она перейдет в местоположение href.
Пожалуйста, дайте мне знать, что я могу сделать, чтобы сократить это время, или что я могу сделать, чтобы проверить, где моя страница тратит эти 15-20 секунд.

При необходимости я могу предоставить ссылки для тестирования этого модуля на моей промежуточной ссылке.
Благодарю.

var xhrRequests = [];

function filterByCancellation(){
$( ".hotel_package_row:visible" ).each(function( index ) {
var cancellation_obj = $(this).find( ".cancellationText" );
var pack_price = 0;
var hotel_price = 0;
if ($(cancellation_obj).text()=="") {
var hotelid = $(cancellation_obj).prev("a").data( "hotelid"),
packid  = $(cancellation_obj).prev("a").data( "packid"),
cancel  = $(cancellation_obj);
if(!$('#anc-'+packid).is(':visible') && $('#inp-'+packid).val()=="0"){
$('#inp-'+packid).val("1");
cancel.html('').slideToggle(function(){
var data = { hotelid: hotelid, packid: packid };
pack_price = parseInt($('#packprice_'+packid).val());
var xhr = $.ajax({
type: "POST",
url: "location_penny.php?section=cancellationData",
data: data,
success: function(result) {
//cancel.html(result);
if(result.indexOf('<div style="display:none;">') > -1){
$(cancellation_obj).parents('.hotel_package_row').html('');
}else{
hotel_price = parseInt($('#'+hotelid).find('.currency-sign-before').html());
if($("#price_update_"+hotelid).val()=='0'){
//alert("hotel price "+hotel_price+" updating for the first time with package "+pack_price);
$('#'+hotelid).find('.currency-sign-before').html(pack_price);
$("#price_update_"+hotelid).val("1");
}
if(pack_price<=hotel_price){
//alert("hotel price "+hotel_price+" is greater than current package price "+pack_price);
$('#'+hotelid).find('.currency-sign-before').html(pack_price);
}
$('#img-'+packid).hide();
$('#anc-'+packid).show();
}
},
async:true
});
xhrRequests.push(xhr);
});
}
}
});
}

function cancelXhrRequests(){
for (var i = 0; i < xhrRequests.length; i++) {
//xhrRequests[i].abort();
}
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector