Skip Navigation Links



Translate this page now :



»Programação
»Programação.NET
»Banco de Dados
»Webdesign
»Office
» Certificações Microsoft 4
»Treinamentos4
»Programação 4
»Webdesign«
»Office & User Tips«
»Grupos de UsuĆ”rios
»CĆ©lulas AcadĆŖmicas«
intcontpiada : 118
Scaneando
Você já está cadastrado e participa do grupo de usuários de sua cidade ? Se não, comente o porque.
 
 
FaƧa um pequeno teste com 10 questƵes de VB
.:.
Teste seus conhecimentos em Visual Basic, SQL Server e ASP 3.0 com nossas provas on-line
.:.
Aprimore seus conhecimentos em programaĆ§Ć£o com nosso treinamento on-line de lĆ³gica de programaĆ§Ć£o
.:.
Veja nosso calendƔrio de treinamentos
Gostou da PƔgina?
Então

para um amigo!

Pesquisa personalizada
Pesquisar Dicas:

 






Utilizando chamadas Assíncronas com Remote Script


Em um artigo anterior vimos como utilizar o Remote Script para fazer acesso a dados do servidor sem a necessidade de darmos refresh na página.

Mas, como vocês terão constatado caso tenham testado o exemplo, durante a chamada ao servidor o browser do usuário fica travado. Esse travamento pode gerar incômodos para o usuário.

Para resolver isso nós podemos fazer uma chamada assíncrona ao Remote Script, ao invés da chamada síncrona como foi feito no artigo anterior. Fazer uma chamada assíncrona significa que o browser não ficará parado esperando a resposta, ele continuará o processamento normalmente e será avisado quando a resposta do servidor chegar.

Para exemplificar vamos utilizar o mesmo exemplo do artigo sobre Remote Script . Veja com era a função de chamada do Remote Script :

function calcular() {

obj=RSGetASPObject("ExRemoteScript.ASP")
objres=obj.Multiplicar(txtnumero.value)
txtresultado.value= objres.return_value

}

Em uma chamada Assíncrona precisamos ter uma função de retorno, através da qual será feito o aviso de que o resultado chegou. Essa função precisará ser passada como parâmetro para o método multiplicar. Observe que o código do método na página ASP não muda, ele continua tendo apenas um parâmetro. As funções do remote script reconhecem que este parâmetro que estamos passando a mais é o nome da função de Call Back.

Veja :

function calcular() {

obj=RSGetASPObject("ExRemoteScript.ASP")
objres=obj.Multiplicar(txtnumero.value,Mostrar)
}

Precisamos agora criar a função Mostrar. Ela deverá receber um parâmetro, que é o objeto de resultado do Remote Script. Veja :

function Mostrar(x) {

txtresultado.value=x.return_value;

}

Podemos realizar um tratamento de erro na função de Call Back. O objeto de retorno (no caso x) tem uma propriedade chamada Status que pode ser utilizada para testar o sucesso ou a falha da operacao. Veja os valores disponíveis :

Códigos de Status
-1 Falhou
0 Completada com sucesso
1 Ainda não foi completada (em caso de chamada assíncrona)

Eis a função mostrar com o tratamento de erro :

function Mostrar(x) {

if (x.status!=0) {
divmensagem.innerHTML="Deu Erro"
return
}
txtresultado.value=x.return_value;

}

Podemos inserir uma mensagem de aguarde, aproveitando o recurso da chamada assíncrona. Veja como fica o código completo :

<HTML>
<head>
<SCRIPT LANGUAGE="JavaScript" src="../_ScriptLibrary/RS.HTM"></script>

<script language="javascript">

function teclas() {

if (event.KeyCode<48 || event.KeyCode > 57) {
event.KeyCode=0
event.ReturnCode=false
}

}

function calcular() {
divmensagem.innerHTML="Aguarde..."
obj=RSGetASPObject("ExRemoteScript.ASP")
objres=obj.Multiplicar(txtnumero.value,Mostrar)
}

function Mostrar(x) {

if (x.status!=0) {
divmensagem.innerHTML="Deu Erro"
return
}
txtresultado.value=x.return_value
divmensagem.innerHTML=""
}

RSEnableRemoteScripting("../_ScriptLibrary")
</script>

</head>
<Body>
Digite um número : <input type=text id=txtnumero name=txtnumero language="javascript" onkeypress="return teclas()" onblur="return calcular()">
<br>
Resultado : <input type=text id=txtresultado name=txtresultado>
<p>
<div id=divmensagem></div>
</body>
</html>

Baixe o código fonte deste artigo.

Dennes Torres
MCSD,MCSE,MCDBA

 





Envie seus comentįrios sobre este artigo

Nome :

E-mail :

Comentários :


Avise-me quando houverem novos comentįrios nesta pįgina

Veja abaixo os comentários já enviados :

Nome : Luiz E-Mail : ponce.idt@terra.com.br
Dennes, estou com algumas duvidas...
Os campos nao podem ficar dentro de um form? Pois aqui da problema quando eu coloco dentro do mesmo.
Outra duvida!!!Eu tentei e nao consegui utilizar dois campos como entrada.

objres=obj.Multiplicar(txtnumero.value,Mostrar)

tentei fazer assim
objres=obj.Multiplicar(a,b,Mostrar)


e na pagina ASP
eu modifiquei o: function(x)
para function(x,y)
e fiz as rotinhas denteo do asp.

Nome : Gilson E-Mail : aww.gilson@terra.com.br
Instalei o "rs10ben.exe", baixei o "artigo2502.zip", mas quando vou testar acontece o seguinte erro:
====================================================
Failed to create ASP object for : ExRemoteScript.ASP
====================================================
Uso o Windows 98 SE, com PWS,
será esse o motivo?
Nome : Gilson E-Mail : gilson.carvalho@gmail.com
Por favor, se possível responder o tópico no email:
gilson.carvalho@gmail.com

Grato
Nome : decdf E-Mail :
cccc
Nome : Itamar E-Mail : itamar.santos@unibanco.com.br
Bem, não sei se o lugar é aqui, mas ai vai minha pergunta:
Quero chamar uma página da intranet a partir de um programa que executar VBScript, mas não consigo escrever esta chamada em VBScript, alguém tem um exemplo deste tipo de chamada?
Grato
Itamar


Nome : Bene-Hur E-Mail : bene-hurp@hotmail.com
Eu precisava de um script que realizace a chamada atraves de um link, e que inserice o link chamado na mesma página. Me mande o comando por e-mail se possivel. Vlw!
Nome : 6Ya1Quu9q E-Mail : l30eoer9@yahoo.com
Hi Phil Just got your message and it seems its sthnomieg really small here. Check List 1. Are you using the versions of the products and service packs (DAZ, XSI)? 2. If your using later XSI version then there may be no reason to use the COLLADA export if the UV overlay has been fixed. Simply use the OBJ format. 3. Make sure when doing 5.9.1 that you ONLY SELECT the mesh and not parent objects. It may well be your exporting other objects in this export causing this issue.
Nome : 1 E-Mail : 1
1
Nome : 1 E-Mail : 1
1
Nome : i8k4xVTD E-Mail : mv57o5bih@mail.com
Superb inmtfraoion here, ol'e chap; keep burning the midnight oil.

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Conheça mais sobre o nosso site :

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::



Quer saber mais?
Faça um curso na Búfalo Informática, Treinamento e Consultoria e
Prepare-se para o Mercado!
Veja o que a Búfalo tem para você.

ļæ½ BĆŗfalo InformĆ”tica, Treinamento e Consultoria - Rua Ɓlvaro Alvim, 37 Sala 920 - CinelĆ¢ndia - Rio de Janeiro / RJ
Tel.: (21)2262-1368 (21) 9240-5134 (21) 9240-7281 e-Mail:
contato@bufaloinfo.com.br