Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) XMLHttpRequest() é pesado?


roberto026

Pergunta

Olá, pessoal, é que eu usei o comando XMLHttpRequest() em meu site, e de repente notei que ele ficou mais lento, e o uso de memória do servidor dedicado subiu.

Eu queria saber se pode ter sido XMLHttpRequest() a causa disto.

Ou é indiferente? Só vai usar processamento do visitante?

Editado por Jonathan Queiroz
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Então Rafael, é isso que queri saber, se isto (XMLHttpRequest()) é uma linguagem server side ou client site.

Isto para mim, é javascript, ou seja client side, mas eu não vi qualquer endereço externo aparecendo na barra de status saca?

é que assim, o meu server dedicado, tem 800.000+ pages views por dia. dai eu comprei um server bem fraco (de R$10/mes), só pra fazer umas funções uns logs que são gravados a cada pagina.

Dai, pra mim o que aconceteu, o XMLHttpRequest() é server side, e então mandou varias pedidos para o server de R$10, que parou de responder, e em seguida, o servidor dedicado parou de responder tb, porque o server menor não respondia, entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0

Depende de pra que você vai utilizar AJAX e da forma que você utiliza. Por exemplo, mandar atualizar dados a cada 1seg acaba com qualquer servidor...

AJAX bem aplicado pode inclusive diminuir o tamanho das requisições com o servidor, visto que você não tem que passar o código HTML, apenas dados que vão ser transformados pelo Javascript em HTML (isto é, você passa a|b|c e o Javascript transforma em <table><tr><td>a</td></tr>...</table>).

A depender do que está fazendo, um "Ajax reverso" pode lhe ajudar. Por exemplo, ao invés de recarregar todos os dados a cada 5seg, você pode fazer uma conexão com o servidor a cada 3seg para verificar se houveram atualizações.

Seria interessante você postar aqui como as requisições estão sendo feitas, nesse caso fica melhor ajudar.

Obs.:

O código AJAX é executado pelo navegador (client-side). No entanto, este serve código serve justamente para conectar ao servidor, e por isso pode sobrecarregá-lo.

Link para o comentário
Compartilhar em outros sites

  • 0

Opa, então, agora que li sobre "requisição assíncrona".

Bem, então acho que o que faço não é, pois eu apenas mando umas infos para o outro site . ex:

var a =XMLHttpRequest();
a.open('POST', 'www.server2.com.br' true);
[...]

Isto é, não espero qualquer resposta do server2, mas acredito que o server1 não irá responder até ter a resposta do server2, correto?

Link para o comentário
Compartilhar em outros sites

  • 0

É assíncrona, sim. O terceiro parâmetro, quando verdadeiro, significa que a requisição é assíncrona. Ou seja, o usuário poderá utilizar o navegador e o Javascript continuará sendo executado mesmo enquanto a requisição estiver rodando.

O que acho estranho (só fui parar pra pensar agora nisso) é que você está fazendo requisições em outro servidor, o que até onde sei não é possível.

Esse outro servidor seria um subdomínio ou algo do tipo?

Na verdade nem se se assim é possível. De qualquer forma isso não interessa muito.

Link para o comentário
Compartilhar em outros sites

  • 0
O que acho estranho (só fui parar pra pensar agora nisso) é que você está fazendo requisições em outro servidor, o que até onde sei não é possível.

Esse outro servidor seria um subdomínio ou algo do tipo?

Na verdade nem se se assim é possível. De qualquer forma isso não interessa muito.

De fato, eu não tenho qualquer conhecimento em ajax, então desculpe-me pelos meus erros enganos.

Mas, então acho que por isso que eu não estava conseguindo mandar via POST, então eu montei uma url cheia de GETs.

Ex:

www.server2.com.br?v1=12&v2=5&v3=99

e então fica assim:

var a =XMLHttpRequest();
a.open('POST', 'www.server2.com.br?v1=12&v2=5&v3=99' true);

E eu pego esses GETs no server 2.

server1 é um dedicado, server2 está em outra empresa, em um servidor de hospedagem qualquer.

Como a requisição ao server1 é muito alta, acho que travou o server2, que parou de responder e então, o server1, aguardando resposta do server2, também não respondeu mandou, e travou as páginas para todos os usuários, você acredita essa hipótese possa ser real?

Link para o comentário
Compartilhar em outros sites

  • 0

Quanto ao POST, não é por isso não. Perguntei sobre o outro domínio porque se não me engano é impossível fazer requisição em outro domínio (se estiver com subdomínio, como server2.server1.com.br, talvez seja possível). Mas nesse caso não funcionaria nem em POST nem GET (o que não é o caso, pois o GET funciona).

Se quiser utilizar o método POST, veja esse tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=131769

É uma lista de tutoriais para Javascript e AJAX. Mais especificamente, veja esse link: http://www.hospedia.com.br/artigos/1/Ajax.html

Se estiver interessando em classes prontas para a utilização de AJAX, veja esse tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=145635. Atualmente há uma classe minha e outra do Eduardo.

Quando a um servidor travar o outro, é possível sim, mas somente na parte do Ajax.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...