none
VB.net Webbrowser problemas de divs com load secundário RRS feed

  • Discussão Geral

  • Bom dia Pessoal,

    Estou tendo problemas em driblar um processo de load que tem no site interno de um cliente.

    Essa div é apenas a exibição, mas o load dela que é o problema pois o código não consegue seguir uma fluência.

    A página já esta totalmente carregada por isso não consigo verificar pelo "WebBrowser_DocumentCompleted".

    Este tempo de "pensamento" da página esta presente em varios pontos como disse, até mesmo em alguns selects que onchange.

    Alguém sabe de alguma forma além do DocumentCompleted e de sleep, algo que eu possa fazer para esperar este tempo de load dessa div e depois continuar o código?

    Obrigado desde já

    Wagner Silva


    quarta-feira, 28 de junho de 2017 14:25

Todas as Respostas

  • Boa tarde, desculpe nao compreendi o que esta tentando fazer !
    quarta-feira, 28 de junho de 2017 20:05
  • Boa tarde, WagSilvaDevs. Tudo bem?

    Obrigado por usar o fórum MSDN.

    Poderia explicar melhor o que você precisa?

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 28 de junho de 2017 20:41
    Moderador
  • Bom, estou criando um aplicativo para realizar cadastro em um aplicação web interna do cliente.


    Então, durante os cadastros, todas as ações feitas starta um shadown div com imagem de load,
    tal div me impede seguir com o código pq enquanto ela pensa o código já passou e ao fim ela
    acaba apagando alguns preenchimentos que o código fez.

    Consegui rastrear esse procemento que starta esta div e ele faz parte de função java chamada PrimeFaces
    não consigo acessar ela pra evitar que seja acionada.

    Minha duvida é, como fazer para não acontecer esse processamento desta div, pois percebo que ela
    é só algo criado pra ficar "bonitinho" para o cliente?

    Trecho que chama essa tal shadown div de load:

    PrimeFaces.ab({s:this,e:'change',p:'formDialogFiliacao:filiacaoRNCBSC',u:'formDialogFiliacao:panelCentrais formDialogFiliacao:panelMgw formDialogFiliacao:panelRNCBscdados formDialogFiliacao:panelBscs formDialogFiliacao:panelTecnologias',onst:function(cfg){dlgAjax.show();;},onco:function(xhr,status,args){dlgAjax.hide();;}});
    Pelo que entendi os parametros "onst:function(cfg){dlgAjax.show();;}" e "onco:function(xhr,status,args){dlgAjax.hide();;}" chamam essa div e tem estes scripts espalhado por vários pontos do código.

    E ontém surgiu outra dúvida, em determida parte do cadastro, abre uma div com alguns selects
    encadeados, seleciona o promeiro e ele carregado o segundo, seleciona o segundo ele carrega o terceiro,
    e por ai vai... tentei simular estes selects com InvokeMember("onchange") mas não acionou a função.
    Teria como eu fazer isto no vb.net?

    o trecho mencionado sobre os selects:

    HTML

    <select name="formDialogFiliacao:filiacaoRNCBSC" class="obrigatorio" id="formDialogFiliacao:filiacaoRNCBSC" onchange="PrimeFaces.ab({s:this,e:'change',p:'formDialogFiliacao:filiacaoRNCBSC',u:'formDialogFiliacao:panelCentrais formDialogFiliacao:panelMgw formDialogFiliacao:panelRNCBscdados formDialogFiliacao:panelBscs formDialogFiliacao:panelTecnologias',onst:function(cfg){dlgAjax.show();;},onco:function(xhr,status,args){dlgAjax.hide();;}});" size="1">
    	<option value="">..:: SELECIONE ::..</option>
    	<option value="3">SÃO PAULO</option>
    </select>
    VB.Net

    If Element.GetAttribute("id") = "formDialogFiliacao:filiacaoRNCBSC" Then
    Dim sel As HtmlElement = wbsControle.Document.GetElementsByTagName("select").Cast(Of HtmlElement).First(Function(el) el.GetAttribute("id") = "formDialogFiliacao:filiacaoRNCBSC")
    sel.GetElementsByTagName("option").Cast(Of HtmlElement).First(Function(el) el.InnerText = "..:: SELECIONE ::..").SetAttribute("selected", "")
    sel.GetElementsByTagName("option").Cast(Of HtmlElement).First(Function(el) el.InnerText = "SÃO PAULO").InvokeMember("onchange")
    End If


    Desculpa por não conseguido explicar de maneira mais clara.

    Desde já agradeço a vcs João Paulo e Felipe B. Castro.




    • Editado WagSilvaDevs quinta-feira, 29 de junho de 2017 14:54
    quinta-feira, 29 de junho de 2017 14:43
  • Boa tarde WagsilvaDevs,

    Certo, não vou posta o código, porque nessa thread tem o step by step sobre como configurar uma imagem para mostrar que a página está carregando até que se finalize o carregamento, isso é feito em vb net e usa o ajax (chamada assincrona que não se importa se a página já foi carregada ou não).

    Referência


    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 29 de junho de 2017 16:22
  • Entendo,

    Tem alguma forma de eu saber qdo ela inicia e/ou finaliza? assim poderia fazer algo pra contornar, certo!

    A verdade é que a div shadow de load pouco me importar, preciso para a rotina enquanto ela estiver calculando e retomar qdo ela finalizar, pois tudo que a rotina faz durante esse calculo é perdido!
    • Editado WagSilvaDevs quinta-feira, 29 de junho de 2017 17:28
    quinta-feira, 29 de junho de 2017 17:26