Здравствуйте, прошу не кидаться камнями за вопрос, постараюсь выразить его как можно внятнее.
Работаем над сайтом, в котором одну из страниц вроде как можно с натяжкой назвать SPA (при щелчке по определенному элементу меню обновляется содержимое определенного блока, перезагрузка страницы не предусмотрена ) . Функция которая за это отвечает работает следующим образом:
function myrender(object, selector, modal){
//$( selector).load('/public_html/'+object+'.html');
$.ajax({
url: '/myrender',
type: "post",
data: 'load='+ object +'&modal='+ modal,
beforeSend: function(){
},
success: function(data){
if(data.length > 100){/*Проверяя длину ответа, мы можем примерно понять пришло сообщение джсон ,или же хтмл*/
$(selector).html(data);
//alert(data.length);
}
else {
data = JSON.parse(data);
alert(data.msg);
}
}
});
}
Бэкэнд у нас на Slim 2.
/*
Полный код приводить думаю нет смысла, так как тут только
всякие проверки и валидации и запросы к БД
*/
$app->render('/public_html/'$_POST['load'].'html',['data'=> $data]/*данные к отправке*/;
Проблема вот в чем, при загрузке страницы в самый первый раз, когда пользователь щелкает по элементам вызывающим функцию myrender, то в нужном блоке информация не меняется совершенно. Однако спустя секунд 10 -15 (а то и больше), эта функция вставляет все блоки которые возвращал сервер за совершенные вызовы функции, поочередно. Как я понимаю, сервер (пока что это локальная машина) попросту не успевает отдать все ответы сразу.
Так вот, подскажите пожалуйста, как лучше поступить в этой ситуации? Делать что то с аяксом, чтобы увеличить его быстродействие, или вывести все блоки сразу, убрав им видимость и включая в зависимости от того что хочет пользователь?
P.S. Знаю что есть различные фреймворки для SPA, но в нашем проекте только одна страница требует подобный функционал, поэтому было решено воздержаться от их использования.