Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

Utilização da função fwAjaxRequest

14 de Junho de 2012, 14:34 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 15 vezes

Boa tarde,

Eu estava tentando utilizar a função fwAjaxRequest no modo sincrono e não estava conseguindo. Então, dei uma olhada no código da função e detectei na linha 312 do arquivo /base/js/FormDin4Ajax.js que a variável v_async é setada para true. Fazendo com isso que toda a requisição feita por esta função será assincrona. Tem algum motivo para isso? Pois eu preciso de uma chamada assincrona e comentando essa linha, a função funciona da forma que eu preciso.

[]s

Eduardo Cajueiro 

Autor: Eduardo Cajueiro


88 comentários

  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
    14 de Junho de 2012, 19:46

     

    Eduardo,

    o padrão do ajax é fazer tudo de forma assincrona, mas você pode informar o parâmetro - {'async':false}  para ser sincrono assim:

    fwAjaxRequest(
                {...

    'async':false
    ...           
                );

    Abraço.

    • 46341e312d924239404ac442f5c43ed3?only path=false&size=50&d=404Eduardo Cajueiro(usuário não autenticado)
      14 de Junho de 2012, 21:56

       

      Luis,

      Eu estava passando o parâmetro assim, mas na linha que informei acima ele sempre alterava para true.

      []s

      Eduardo 

      • 46341e312d924239404ac442f5c43ed3?only path=false&size=50&d=404Eduardo Cajueiro(usuário não autenticado)
        18 de Junho de 2012, 10:03

         

        Luis,

        Você chegou a verificar essa linha que te falei?

        []s

        Eduardo 

        • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
          18 de Junho de 2012, 18:54

           

          Eduardo,

          verifiquei, e está funcionando com true e false normalmente. 

          De uma olhada na aplicação de exemplo base/exemplos opção Ajax -> Exemplo 1, o arquivo chamado é o exe_ajax_1.php, clique no botão Teste Ajax e depois altere na função teste() e adicione o parametro: ' 'async':true para fazer a chamada assincrona, verá que funciona.

          Abraço.

          • 46341e312d924239404ac442f5c43ed3?only path=false&size=50&d=404Eduardo Cajueiro(usuário não autenticado)
            19 de Junho de 2012, 9:26

             

            Luis,

            A chamada assincrona realmente não funciona, faça o teste. Coloque o parâmetro 'async':false e coloque uma mensagem antes e outra depois da chamada da função fwAjaxRequest com mensagens diferentes. Você vai verificar que os alert colocados antes e depois apareceram antes dos alerts que estão dentro da função de callback. Após isso comente a linha 312 do arquivo /base/js/FormDin4Ajax.js onde se atribui true a variável v_async e você vai ver que primeiro aparece a mensagem que está antes da função fwAjaxRequest, um tempo depois aparece as mensagens que estão dentro da função de callback e só então aparecerá a mensagem do final. Esse tipo de ação é necessária para a validação de um registro em banco através do javascript.

            Aguardo o seu retorno. 

            []s

            Eduardo 

            • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
              19 de Junho de 2012, 22:02

               

              Eduardo,

              o problema é que durante a chamada sincrona eu utilizo plugin blockUI do jquery para bloquear a tela e exibir a mensagem do usuário enquanto ocorre o processamento, simulando uma chama sincrona, se for feita a chamada sincrona real do jQuery.ajax() a tela é bloqueada pelo próprio comando ajax não exibindo mensagem alguma ao usuário. Fiz algumas mudanças para resolver este problema e publicarei hoje ainda. Espero que lhe atenda.

              Agradeço sua colaboração.

              Abraço.

Essa comunidade não possui posts nesse blog