Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gastro

Ler função JS "trazida" via AJAX

Recommended Posts

Micox,você que já ta adiantado nos testes, e eu que estou meio sem tempo, faz um teste pra mim please.Cria 2 paginas (pag1.htm, pag2.htm por exemplo) e nas 2 paginas cria uma funcao com o mesmo nome(exatamente igual), dentro das funcoes dá um alert, mas manda exibir coisas diferentes para a gente poder ver a diferençaFaz esse teste par mim, acho que funcoes com o mesmo nome pode estar gerando esse problemaÉ uma suposiçào

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o teste e a função que tava na página original foi substituida pela nova função que chegou no ajax. Testado no IE6 e no FF1.5.

 

Página que chama a outra (tem a função original - alertao() ):

<style>div {border:3px solid red; margin:10px; float:left; width:200px; height:200px; overflow:scroll;}</style><script src="engine/micoxAjax.js?12" type="text/javascript" language="javascript"></script><script language="javascript">function teste(){	ajaxGet("http://localhost/lojavirtualfree/optionas.php",document.getElementById("div1"),true)	//estas outras funções não serão interessantes neste problema agora	//ajaxGet("http://localhost/optionas.php","document.getElementById('div2').innerHTML",false)		//ajaxGet("http://localhost/optionas.php",document.getElementById("input1"),false)		//ajaxGet("http://localhost/optionas.php",document.getElementById("select1"),true)}function alertao() { alert("Esta função tá duplicada dentro do arquivo que vai chegar no ajax")}</script><div id="div1"> Vai receber o innerHTML</div><br /><button onclick="teste()">Vai</button><button onclick="alertao()">Chama o alertao (que tah duplicado)</button><!-- estes outros elementos não serão interessantes neste problema agora --><Br style="clear:both" /><div id="div2"> Vai receber da variável </div><input type="text" id="input1"  value="vai receber o value"/><select id="select1" name="select1">	<option>Vai receber o select</option>	<option>Vai receber o select</option></select><br />

 

Página que é chamada pela outra via ajax (contém a função que substituirá a outra):

<script>function alertao(){alert("alerta da funcao");}function alertao2(){alert("alerta da funcao 2");}</script><button onclick="alertao()">Alertao</button><button onclick="alertao2()">Alertao2</button>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve galera..Entao galera..Venho aqui dizer.. que realmente a funçao funciona.. heheheCerta de um mes belejando e achando resposta para meu script..descrobri o problema.. nao sei explicar.. masi funcionou agora..Bem valeu galera..Abraçao..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, valeu pelo depoimento aí...A questão é que o ajax de vez em quando dá uns erro que agente não sabe explicar, daí quando resolvemos, agente não sabe comé que foi.. heheh Já aconteceu comigo também hehehSerá que seu problema não foi ter tentado acessar algo que está fora do domínio não? Tipo, se minha página está no localhost, eu só posso acessar via ajax, páginas que estiverem no localhost. Se a página está no seusite.com, voce só poderá acessar páginas do seusite.com... etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nem sei ..Pq assim mexi mexi pra tentar resolver..Ai simplesmente mudei de lugar.. e funcionou.. quase dei um chute no pc, fiquei me quebrando pra resolver assim tao facil.. hehehMais e assim mesmo.. as vezes da umas loucura...OO alguem ja fez lista de requisição??Valeu...T+ Obrigado Micox e a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colegas,Podem passar-me a ultima versao desta funçao extraiscript? e como utilizar?Prometo nao me esquecer dos creditos.Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao e lista, e fila de requisiçao..

 

Tipo... se eu clicar duas vezes em locais diferente que utilizan ajax, ele ira aborta aprimeira requisiçao e executar a segunda..

 

entao se tenho algo que precisa fazer varias requisiço no momento do carregamento ai bicha.. nao carrega nenhuma e da erro.

 

Para me entender..

 

http://waltercruz.com/devel/log/vardump/2005/09/16/p803

 

Se souberem ou ja fizeram alguma coisa parecida, mostrem ai como fizeram .. valeu..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara tava analizando isso tudo que você's fizeram, bem, fiz algo parecido, mas beeem mais simples:quando eu retorno o resultado(readyState ==4): if(ajax.readyState == 4 ){ //coloco a função que vem da resposta aqui AbreFuncao();}Voilá funcionaAbraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/index.php?showtopic=174729

 

Nesse código ajax que eu uso ele guarda as requisições em uma fila e vai executando elas na ordem que elas são feitas

 

E tipo, eu tb quebrei minha função de tratamento de estado tb, só que eu coloquei tb para tratar o readyState 1(carregando) pq como estou trabalhando com fila, a 2ª solicitação tem que mudar o divi para carregando caso uma solicitação anterior volte para definitivo, vou explicar melhor:

 

Requisiçao1 muda o div1 para "carregando..." e começa a trabalhar

Requisição2 muda o div1 para "carregando..." e aguarda na fila sua vez

Requisição1 termina e coloca a página no div1

Requisição2 começa a trabalhar mas o usuário não sabe pq ela não mudou o div1 para avisar o usuário

 

O que eu fiz foi tratar o readyState=1, assim sempre que começar a carregar ele muda o div para avisar o usuário

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quanto a esta questão de Fila pita, eu também tive o mesmo problema no início, daí o que eu fiz? Eu fiz com que a função gerasse uma NOVA instância no xmlhttprequest toda vez que rodasse assim não há problema de travar o carregamento de um ao iniciar o carregamento de outro.

 

Habilitei isso na minha função simples http://forum.imasters.com.br/index.php?showtopic=172859

 

Não se preocupe com a memória, pois ao final da requisição eu mato o objeto.

Já consegui carregar 6 objetos de uma vez só. Sem que 1 interferisse no outro. Não sei qual é o limite.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema de ter várias instancias é que elas vào rodar em paralelo e o tempo que terminam não necessariamente é a ordem que o cara clicou.Imagina em um site, o usuário clica no link para imagens(uma página gigantesca) e depois clica no link sobre o site(uma pagina pequena). O objeto que trata o link sobre devolve o resultado mais rápido e só depois o objeto da página de imagens devolve o resultado. Aí o usuário que queria ver os dados sobre o site vai ver a página de imagens. Eu pensei nisso de ter vários objetos, mas pode dar resultados inesperados para o usuário, então achei melhor trabalhar com a idéia de fila para garantir

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso mesmo.Só que eu prefiro sem filas mesmo.Acho que se o cara clicou em outro lugar é porque ele irá querer ver aquilo também, não importa a ordem que venha.Mas aí já é questão de cada projeto né...Nos meus projetos nunca vou precisar que apareçam na ordem...Diboas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhhh, É que no meu caso a ordem é importante, só dei esse exemplo simplório pra facilitar a entender o problemaMas então não tem problema, desculpa, não estou mais aqui quem falou:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

heheh Queisso galera, tamo em casa. Todo mundo diboas heheheEu tava viajando outros dias aí em juntar tudo que nós fizemos aqui e montarmos um frameworkzinho com umas 2 ou 3 classes. Caras de nível nós temos (Pita, Tiago, eu, Gastro, Fleury (meio sumido), etc...).Juntar tudo que nós já fizemos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.