Autor Tópico: Problema com Evento Ajax - OnChange  (Lida 703 vezes)

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Problema com Evento Ajax - OnChange
« Online: Junho 15, 2016, 06:07:34 pm »
Meus Caros,

Derrepente estou com um problema novo num evento ajax (onChange), o sistema ficou muito lento para rodar a rotina do evento, onde eu busco um id de uma conta contábil e jogo em um outro campo do formulário, o que me espantou é que inicialmente achei que o select é que estava demorando, e não é, o que está causando a demora é a atribuição do valor retornado do select para o campo do formulário, eis o código:

sc_lookup(dataset,"select IDContaContabil from m2_contabil_contas WHERE Reduzido={IDRedCredito} AND IDExercicio=[idexercicio]");
{IDContaCredito} = {dataset[0][0]};

Agora, alguém pode explicar o que está ocorrendo, por que essa demora ?

Só pra constar essa rotina demora uns 15 segundos, as vezes mais, para rodar, é muita coisa, o select só traz um registro, isso estava rodando em 2 segundo e olha lá.

Meus usuários estão reclamando horrores, e com toda razão, mas eu não sei como resolver isso, preciso de uma ajuda de vocês.

Grato.


Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Problema com Evento Ajax - OnChange
« Responder #1 Online: Junho 15, 2016, 06:56:04 pm »
Modo debug?

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Problema com Evento Ajax - OnChange
« Responder #2 Online: Junho 15, 2016, 07:05:58 pm »
Haroldo, o de bug não mostra nada de erro, ou o por que da demora, simplesmente demora.
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Problema com Evento Ajax - OnChange
« Responder #3 Online: Junho 15, 2016, 07:23:29 pm »
Comente o código é execute

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Problema com Evento Ajax - OnChange
« Responder #4 Online: Junho 15, 2016, 07:29:29 pm »
Haroldo, foi isso que eu fiz meunamugo, e foi isso que me mostrou que o que está causando a demora não é o select mas sim a atribuição do valor retornado do select ao campo do formulário.
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Problema com Evento Ajax - OnChange
« Responder #5 Online: Junho 15, 2016, 07:35:59 pm »
deixe o código comentado e coloque esse código;


{IDContaCredito} = 1;


R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Problema com Evento Ajax - OnChange
« Responder #6 Online: Junho 15, 2016, 08:22:24 pm »
Haroldo, também fiz esse teste meu amigo, e mesmo atribuindo qualquer outro valor ao campo, dentro do evento ajax a demora acontece.
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Problema com Evento Ajax - OnChange
« Responder #7 Online: Junho 15, 2016, 08:46:03 pm »
vamos para ultima tentativa.

inspecione a pagina pelo google e verifique se há erros de javascript.


Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Problema com Evento Ajax - OnChange
« Responder #8 Online: Junho 16, 2016, 08:23:47 am »
Bom dia, já tive um problema desse e parecia estar tudo certo porém não funcionava.
Faz um teste, joga a query em uma variável e passe ela no lookup e também verifica se volta empty:

$sqlS = "select IDContaContabil from m2_contabil_contas WHERE Reduzido={IDRedCredito} AND IDExercicio=[idexercicio]";
sc_lookup(datasetS,$sqlS);
{IDContaCredito} = (empty({datasetS})) ? "" : {datasetS[0][0]};

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Problema com Evento Ajax - OnChange
« Responder #9 Online: Junho 16, 2016, 08:26:13 am »
Haroldo, verifiquei e não vi nenhum erro sendo apontado na inspeção da página.

Agora, uma coisa importante, o campo que está recebendo o valor retornado do select é do tipo select também, se eu jogar o valor para um outro campo qualquer a demora não ocorre.

O que eu faço nessa rotina é o seguinte:

É uma tela de lançamentos contábeis, e nela o usuário tem a opção de selecionar uma conta para o lançamento tanto por um código reduzido ou selecionando a conta do plano de contas contábeis. O campo onde o usuário informa o código reduzido não existe no banco de dados, foi criado apenas no form para que o usuário tem um modo rápido de acesso a conta, depois que o usuário digita o código reduzido eu disparo o evento ajax no onchange desse campo reduzido, e vou buscar o id da conta no plano de contas e jogo para o campo do tipo select mostrando a ele qual foi a conta informada/selecionada.

Isso sempre funcionou bem, de uma hora para outra, não sei por que, começou essa demora que é bastante grande, como disse, as vezes maior que 15 segundos.

O que será que está ocorrendo ? Como contornar esse problema ?
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Problema com Evento Ajax - OnChange
« Responder #10 Online: Junho 16, 2016, 08:30:52 am »
Rodrigo,

Eu já fiz esse teste e não resolveu, o valor é retornado sim e acaba indo para o campo de destino, o problema é a demora pra isso, especificamente a demora para que o campo destino receba efetivamente o valor retornado da query.
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Problema com Evento Ajax - OnChange
« Responder #11 Online: Junho 16, 2016, 10:04:22 am »
vc tem um campo select com lookup automatico?

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Problema com Evento Ajax - OnChange
« Responder #12 Online: Junho 16, 2016, 10:42:31 am »
Haroldo, sim meu caro, ele tem um lookup automatico sim.
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Problema com Evento Ajax - OnChange
« Responder #13 Online: Junho 16, 2016, 11:56:09 am »
tenta colocar um limit no select desse lookup.

Mas ideal e setar o atributo "select" para o id seletor desse campo. Acredito que ele executa e reconstroi toda a lista novamente por isso a demora.

R.O.N.A.L.D.O

  • Avançado
  • ****
  • Mensagens: 493
    • RC Sistemas Soluções Informáticas
    • Email
Re:Problema com Evento Ajax - OnChange
« Responder #14 Online: Junho 16, 2016, 12:01:07 pm »
Haroldo,

Eu não entendi essa sua sugestão de setar o atributo "select", o que seria isso exatamente ?
Ronaldo Cocuroci
Analista de Sistemas
RC Sistemas Soluções Informáticas
www.rc-sistemas.com