Lentidão ao exibir dados buscados pelo Ajax com php
Boa tarde galera :D
Tenho um site, onde tenho um sessão de blog, porém quando o sistema está buscando os artigos, demora um pouco a exibir
A estrutura que estou utilizando:
pagina PHP > Ajax Call (jquery utiliza ajax para requisitar dados via POST (resposata json)) > PHP Controller (filtra a função enviada pelo ajax e faz a requisição dos dados para o model) > PHP Model (mysql requisição)
Exemplo da função para exibir os artigos:
Example of function to show blog articles:
[code=js]
function buscaTodos(current = 1){
$(''.lista_materias'').empty();//cleans container of articles
try{
showLoader();//loader
$.ajax({
type: ''POST'',
url: ''controller/ajax/Artigos.ajax.php'', //php controller
data: {
''func'': "buscaTodos",//php function
''current'': current
},
success: function(response) {
var res = response.split(''[:::]'');//parse response of php. Example: 1 to success 0 to error->1[:::]{json response here}
if(res[0]==1){//if response is success
var obj = JSON.parse(res[1]);//parse json response
jQuery.each(obj,function(o, i){
//FILL WITH ARTICLES
$(".lista_materias").append(
''<div class="col-sm-12 col-md-6 col-lg-4" style="margin-bottom:10px;">''+
''<div class="course-box">''+
''<div class="image-wrap entry">''+
''<img src="images/geral/defer.gif" data-src="images/geral/defer.gif" data-original="images/artigos/''+i[''img_box'']+''.jpg" data-webp="images/artigos/''+i[''img_box'']+''.webp" class="imgElastic img-webp" alt="''+i[''figcaption'']+''" title="''+i[''figcaption'']+''" class="img-responsive" />''+
''<div class="magnifier">''+
''<a href="artigos/''+tituloUrl(i[''uu''])+''/" title=""><i class="flaticon-add"></i></a>''+
''</div>''+
''</div><!-- end image-wrap -->''+
''<div class="course-details">''+
''<h4>''+
''<small>Detetive Particular Blog</small>''+
''<a href="artigos/''+tituloUrl(i[''uu''])+''/" title="">''+i[''titulo'']+''</a>''+
''</h4>''+
''<p class="desc_artigo">''+i[''descricao'']+''</p>''+
''</div><!-- end details -->''+
''<div class="course-footer clearfix">''+
''<div class="pull-left">''+
''<ul class="list-inline">''+
''<li><a href="artigos/''+tituloUrl(i[''uu''])+''"><i class="fa fa-user"></i> Detetive Particular André</a></li>''+
''<li><a href="artigos/''+tituloUrl(i[''uu''])+''"><i class="fa fa-clock-o"></i> ''+converteDataTimeUsToBr(i[''data_criacao''])+''</a></li>''+
//''<li><a href="artigos/''+tituloUrl(o.url)+''"><i class="fa fa-eye"></i> ''+o.contador+'' Views</a></li>''+
''</ul>''+
''</div><!-- end left -->''+
''</div><!-- end footer -->''+
''</div><!-- end box -->''+
''</div><!-- end col -->''
);
});
}else{
//showAlert("Bancos",res[1],2);
showAlert("Falha ao consultar", "Ocorreu um erro ao consultar os dados. Atualize a página ou entre contato por telefone. \n <span class=''code''></span>", 1,''<button type="button" class="btn btn-danger radius_md" data-dismiss="modal">Fechar</button>'');
}
hideLoader();
},complete(){
getWebp();
}
});
}catch(erro){
hideLoader();
showAlert("Falha ao consultar", "Ocorreu um erro ao consultar os dados. Atualize a página ou entre contato por telefone. \n <span class=''code''>"+erro.message+"</span>", 1,''<button type="button" class="btn btn-danger radius_md" data-dismiss="modal">Fechar</button>'');
}
Tenho um site, onde tenho um sessão de blog, porém quando o sistema está buscando os artigos, demora um pouco a exibir
A estrutura que estou utilizando:
pagina PHP > Ajax Call (jquery utiliza ajax para requisitar dados via POST (resposata json)) > PHP Controller (filtra a função enviada pelo ajax e faz a requisição dos dados para o model) > PHP Model (mysql requisição)
Exemplo da função para exibir os artigos:
Example of function to show blog articles:
[code=js]
function buscaTodos(current = 1){
$(''.lista_materias'').empty();//cleans container of articles
try{
showLoader();//loader
$.ajax({
type: ''POST'',
url: ''controller/ajax/Artigos.ajax.php'', //php controller
data: {
''func'': "buscaTodos",//php function
''current'': current
},
success: function(response) {
var res = response.split(''[:::]'');//parse response of php. Example: 1 to success 0 to error->1[:::]{json response here}
if(res[0]==1){//if response is success
var obj = JSON.parse(res[1]);//parse json response
jQuery.each(obj,function(o, i){
//FILL WITH ARTICLES
$(".lista_materias").append(
''<div class="col-sm-12 col-md-6 col-lg-4" style="margin-bottom:10px;">''+
''<div class="course-box">''+
''<div class="image-wrap entry">''+
''<img src="images/geral/defer.gif" data-src="images/geral/defer.gif" data-original="images/artigos/''+i[''img_box'']+''.jpg" data-webp="images/artigos/''+i[''img_box'']+''.webp" class="imgElastic img-webp" alt="''+i[''figcaption'']+''" title="''+i[''figcaption'']+''" class="img-responsive" />''+
''<div class="magnifier">''+
''<a href="artigos/''+tituloUrl(i[''uu''])+''/" title=""><i class="flaticon-add"></i></a>''+
''</div>''+
''</div><!-- end image-wrap -->''+
''<div class="course-details">''+
''<h4>''+
''<small>Detetive Particular Blog</small>''+
''<a href="artigos/''+tituloUrl(i[''uu''])+''/" title="">''+i[''titulo'']+''</a>''+
''</h4>''+
''<p class="desc_artigo">''+i[''descricao'']+''</p>''+
''</div><!-- end details -->''+
''<div class="course-footer clearfix">''+
''<div class="pull-left">''+
''<ul class="list-inline">''+
''<li><a href="artigos/''+tituloUrl(i[''uu''])+''"><i class="fa fa-user"></i> Detetive Particular André</a></li>''+
''<li><a href="artigos/''+tituloUrl(i[''uu''])+''"><i class="fa fa-clock-o"></i> ''+converteDataTimeUsToBr(i[''data_criacao''])+''</a></li>''+
//''<li><a href="artigos/''+tituloUrl(o.url)+''"><i class="fa fa-eye"></i> ''+o.contador+'' Views</a></li>''+
''</ul>''+
''</div><!-- end left -->''+
''</div><!-- end footer -->''+
''</div><!-- end box -->''+
''</div><!-- end col -->''
);
});
}else{
//showAlert("Bancos",res[1],2);
showAlert("Falha ao consultar", "Ocorreu um erro ao consultar os dados. Atualize a página ou entre contato por telefone. \n <span class=''code''></span>", 1,''<button type="button" class="btn btn-danger radius_md" data-dismiss="modal">Fechar</button>'');
}
hideLoader();
},complete(){
getWebp();
}
});
}catch(erro){
hideLoader();
showAlert("Falha ao consultar", "Ocorreu um erro ao consultar os dados. Atualize a página ou entre contato por telefone. \n <span class=''code''>"+erro.message+"</span>", 1,''<button type="button" class="btn btn-danger radius_md" data-dismiss="modal">Fechar</button>'');
}
Marcus
Curtidas 0
Respostas
Callink Ltda
20/12/2019
Já testou sua query e medir o desempenho dela?
GOSTEI 0
Marcus
20/12/2019
Já testou sua query e medir o desempenho dela?
Olá, tudo na paz?!
Medi sim, na verdade a query não utiliza muitos joins e são poucos dados (uns 20 registros).
Semana passada dei uma estudada, notei que a lentidão está realmente no ajax do Jquery, onde ele faz a chamada e aguarda uma resposta do arquivo php. Ainda não sei como resolver.
Outro teste que fiz, foi utilizar a mesma estrutura de chamada, direto pelo php (sem o ajax/jquery), não tem lentidão nenhuma
GOSTEI 0