Quando visualizamos determinados sites, estamos atrás dos dados que estão nele. E uma página inteira normalmente não é suficiente para conter tudo o que queremos saber, portanto, é necessário vincular a página atual à próxima. Mas às vezes não precisamos ou mesmo queremos mudar a página inteira, apenas uma determinada seção dela. Por exemplo, se temos uma caixa de mensagens em uma página, não queremos que a página inteira seja recarregada sempre que uma nova entrada aparecer na tela.
O primeiro a fornecer esse tipo de funcionalidade foi o Java, fornecendo pequenos miniaplicativos compilados que podem carregar dados de forma assíncrona. Posteriormente, o AJAX forneceu o padrão aos codificadores permitidos para solicitar dados de forma assíncrona, a fim de alterar a carga de novos dados sem alterar a página da web.
Javascript, por outro lado, é uma linguagem de script do lado do cliente que permite a criação de páginas da web dinâmicas, proporcionando um novo nível de interatividade. A vantagem do JavaScript é que, por ser um aplicativo do lado do cliente, ele pode criar páginas da web dinâmicas que são mais complexas do que um script do lado do servidor pode fazer. Os scripts do lado do servidor são executados pela máquina host e, portanto, tem recursos muito limitados, especialmente quando há muitas pessoas acessando esse servidor. Estando no computador cliente, o Javascript possui muitos recursos para jogar independentemente da atividade no servidor.
A principal desvantagem do Javascript é que ele é um ótimo candidato para instalar um cavalo de Tróia em seu computador. Por ser executado no cliente, ele está autorizado a alguns recursos que poderiam dar o controle do seu computador a um estranho, potencialmente incluindo você em um botnet. A solução para essa desvantagem é não permitir que códigos javascript não confiáveis sejam executados em seu computador.
AJAX e Javascript estão relacionados devido ao fato de AJAX ser a metodologia utilizada pelo Javascript para obter a maioria de seus dados do servidor. Quando o Javascript está criando páginas da web dinâmicas, ele não solicita tudo o que pode eventualmente precisar do servidor, pois isso causaria um tempo de carregamento muito longo. Em vez disso, ele apenas carrega o que precisa para carregar a primeira página. Sempre que um usuário faz algo que precisa de mais dados, o Javascript usa AJAX para solicitar os dados necessários para evitar o recarregamento da página.
Como podemos ver, AJAX é apenas mais uma ferramenta que pode ser usada por linguagens de script como Javascript para aprimorar a aparência de suas páginas da web.