AJAX

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 5 min. de leitura
  • AJAX (JavaScript assíncrono e XML) é um grupo de técnicas de desenvolvimento do lado do cliente inter-relacionadas usadas para criar aplicações Web assíncronas.

    O AJAX permite que as aplicações web enviem e recuperem informações de e para um servidor em segundo plano, sem afetar a experiência do usuário com a página da web exibida.

    GlideAjax

    . GlideAjax a classe permite a execução do código do lado do servidor a partir do cliente. GlideAjax as chamadas passam parâmetros para as inclusões de script e, usando convenções de nomenclatura, permitem o uso desses parâmetros.

    Nota:
    Esta funcionalidade requer conhecimento de JavaScript.
    Usando GlideAjax :
    • Inicialize GlideAjax com o nome da inclusão de script que você deseja usar.
    • Ao criar a inclusão de script, você deve definir o campo de nome para ser exatamente igual ao nome da classe.
    • Ao criar a inclusão de script, você deve selecionar Cliente chamável caixa de seleção.
    • Especifique o parâmetro sysparm_name. GlideAjax usos sysparm_namepara descobrir qual função usar.
    • Quaisquer parâmetros extras podem ser passados, todos os quais devem começar com sysparm_. Evite usar nomes de parâmetros predefinidos:
      • sysparm_name
      • sysparm_function
      • sysparm_value
      • sysparm_type
    • O código é executado com GetXML() ou GetXMLWait() funções.

    Para obter informações adicionais, consulte GlideAjax API.

    Exemplos de GlideAjax assíncrono

    O assíncrono tem duas partes GlideAjax código do lado do cliente e do lado do servidor.

    Olá, mundo: Retornando um valor do servidor

    Lado do cliente

    Este código é executado no cliente (o navegador da Web). Criar um client script normalmente. Isso envia os parâmetros para o servidor, que faz o processamento. Para que o cliente não aguarde o resultado, uma função de retorno de chamada é usada para retornar o resultado passado para GetXML() função. (Neste caso, é chamado HelloWorldParse .)

    . GetXMLWait() a função não precisa de uma função de retorno de chamada separada, mas isso bloqueará o cliente. Se a comunicação cliente-servidor demorar muito tempo (por exemplo, em redes lentas), a aplicação parecerá sem resposta e lenta. Um exemplo de GetXMLWait() está na seção a seguir.
    var ga = new GlideAjax('HelloWorld');
    ga.addParam('sysparm_name', 'helloWorld');
    ga.addParam('sysparm_user_name', "Bob");
    ga.getXML(HelloWorldParse);
     
    function HelloWorldParse(response) {
      var answer = response.responseXML.documentElement.getAttribute("answer");
      alert(answer); }

    Lado do servidor

    O código do lado do servidor para a função acima. Não crie uma regra de negócio, navegue até Definição do sistema > Inclusão de script e criar um novo script. Cole o código abaixo.
    Nota:
    Você deve definir o nome da inclusão de script como HelloWorld .
    • . sys_script_include o código deve estender AbstratAjaxProcessor Glide AJAX e Be Glide AJAX habilitados.
    • Nomes de funções que começam com "_" são considerados privados e não podem ser chamados do cliente.
    • Evite substituir métodos de AbstratAjaxProcessor , incluindo inicialize . Embora seja possível invocar métodos do seu objeto de superclasse que você substituiu, é complicado e melhor evitar completamente.
    var HelloWorld = Class.create();
    HelloWorld.prototype = Object.extendsObject(AbstractAjaxProcessor, {
       helloWorld:function() { return "Hello " + this.getParameter('sysparm_user_name') + "!"; } ,
       _privateFunction: function() { // this function is not client callable     
        }
     });
    Isso resulta em uma caixa de alerta que diz "Olá Bob!" quando você visita o formulário.

    Retornando vários valores

    Como a resposta é um documento XML, não estamos limitados a retornar um único resposta valor. Este é um exemplo mais complexo que retorna vários nós XML e atributos.

    Inclusão de script do processador AJAX

    /*
     * MyFavoritesAjax script include Description - sample AJAX processor returning multiple value pairs
     */ 
    var MyFavoritesAjax = Class.create();
    MyFavoritesAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
     
    	 /*
    	 * method available to client scripts call using:
    	 * var gajax = new GlideAjax("MyFavoritesAjax");
    	 * gajax.addParam("sysparm_name","getFavorites");
    	 */
    	getFavorites: function() { // build new response xml element for result
             var result = this.newItem("result");
    	  result.setAttribute("message","returning all favorites");
     
    	  //add some favorite nodes with name and value attributes 
             this._addFavorite("color","blue");
             this._addFavorite("beer","lager");
             this._addFavorite("pet","dog");
           },
    	 // all items are returned to the client through the inherited methods of AbstractAjaxProcessor
    	 _addFavorite: function(name, value) { 
              var favs = this.newItem("favorite");
    	   favs.setAttribute("name",name);
    	   favs.setAttribute("value",value); },
     
    	type:"MyFavoritesAjax"
     
     });

    Client script

    // new GlideAjax object referencing name of AJAX script include 
    var ga = new GlideAjax("MyFavoritesAjax"); 
    // add name parameter to define which function we want to call 
    // method name in script include will be getFavorites
    ga.addParam("sysparm_name","getFavorites");
     
    // submit request to server, call ajaxResponse function with server response
     
    ga.getXML(ajaxResponse);
     
    function ajaxResponse(serverResponse) { 
      // get result element and attributes
      var result = serverResponse.responseXML.getElementsByTagName("result");
      var message = result[0].getAttribute("message");
     
      //check for message attribute and alert user
      if(message) alert(message);
     
      //build output to display on client for testing 
      var output = "";
     
      // get favorite elements 
      var favorites = serverResponse.responseXML.getElementsByTagName("favorite");
      for(var i = 0; i < favorites.length; i ++) { 
        var name = favorites[i].getAttribute("name");
        var value = favorites[i].getAttribute("value");
        output += name + " = " + value + "\n "; }
     
      alert(output); }

    Resposta XML

    <xml sysparm_max= "15" sysparm_name="getFavorites" sysparm_processor="MyFavoritesAjax">
      <result message = "returning all favorites"></result>
      <favorite name = "color" value = "blue"></favorite>
      <favorite name = "beer" value = "lager"></favorite>
      <favorite name = "pet" value = "dog"></favorite>
    </xml>

    Exemplos de GlideAjax síncrono

    Use síncrono quando o script não puder continuar sem GlideAjax resposta. A sessão será interrompida até que a resposta seja recebida.

    Se o seu caso de uso exigir que nenhum processamento adicional possa ocorrer até GlideAjax a resposta foi recebida, você pode usar GetXMLWait() . No entanto, como isso atrasará seu código e bloqueará a sessão do usuário até que a resposta seja recebida, geralmente é recomendável que você use GetXML() com uma função de retorno de chamada.

    Nota:
    Não use AJAXvaluateSynchronnously .

    . GetXMLWait() o método não está disponível em aplicações com escopo.

    Este código resulta em um alerta do lado do cliente que é exibido O servidor diz Olá Bob! .

    O código do cliente.
    var ga = new GlideAjax('HelloWorld') ;
    ga.addParam('sysparm_name','helloWorld');
    ga.addParam('sysparm_user_name',"Bob");
    ga.getXMLWait(); 
    alert(ga.getAnswer());
    O código de inclusão do script do lado do servidor.
    var HelloWorld = Class.create();
    HelloWorld.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    helloWorld: function() 
     { return "The Server Says Hello " + this.getParameter('sysparm_user_name') + "!"; } } );

    AJAXClientHelper

    Fornece funções auxiliares para que os clientes Ajax recuperem um valor de um cliente Ajax.

    Onde usar

    Use esta inclusão de script sempre que precisar recuperar um valor de um cliente Ajax.

    Resumo do método

    Resumo do método Descrição
    GetDisplay() Obtém o valor de exibição da lista de seleção.

    Detalhe do método

    Método de API Descrição Parâmetros de entrada Retornos de saída
    GetDisplay() Obtém o valor de exibição da lista de seleção. nenhum O valor de exibição.

    Curl

    // getDisplay
    (function(table, sysId) {
        var ga = new GlideAjax('AjaxClientHelper');
        ga.addParam("sysparm_name", "getDisplay");
        ga.addParam('sysparm_table', 'incident');
        ga.addParam('sysparm_value', "0598b22b877313003c1c8467a7cb0b71");
        ga.getXMLWait();
        return ga.getAnswer();
    }("incident", "0598b22b877313003c1c8467a7cb0b71")); // Returns 'INC0010001'