GlideAjax : Client
Die GlideAjax-Klasse ermöglicht es einem Client-Skript, serverseitigen Code in einer Skripteinbindung aufzurufen.
Um GlideAjax in einem Client-Skript zu verwenden, führen Sie diese allgemeinen Schritte aus.
- Erstellen Sie eine GlideAjax-Instanz, indem Sie den GlideAjax-Konstruktor aufrufen. Geben Sie als Argument für den Konstruktor den Namen der Skripteinbindungs-Klasse an, die die Methode enthält, die Sie aufrufen möchten.
- Rufen Sie die Methode „ addParam “ mit dem Parameter sysparm_name und dem Namen der aufzurufenden Skripteinbindungsmethode auf.
- Optional. Rufen Sie die Methode addParam einmal oder mehrmals auf, um den Skripteinbindungscode mit anderen benötigten Parametern bereitzustellen.
- Führen Sie den serverseitigen Code aus, indem Sie getXML() aufrufen. Hinweis:getXML() ist die bevorzugte Methode zum Ausführen des Codes, da sie asynchron ist und die Ausführung von anderem Clientcode nicht aufhält. Eine andere Methode, getXMLWait(), ist ebenfalls verfügbar, wird jedoch nicht empfohlen. Mit der Verwendung von getXMLWait() stellen Sie die Reihenfolge der Ausführung sicher, dies kann jedoch dazu führen, dass die Anwendung nicht mehr reagiert, was die Benutzererfahrung jeder Anwendung, die sie verwendet, erheblich beeinträchtigt. getXMLWait() steht für bereichsbezogene Anwendungen nicht zur Verfügung.
var ga = new GlideAjax('HelloWorld'); // HelloWorld is the script include class
ga.addParam('sysparm_name','helloWorld'); // helloWorld is the script include method
ga.addParam('sysparm_user_name',"Bob"); // Set parameter sysparm_user_name to 'Bob'
ga.getXML(HelloWorldParse); /* Call HelloWorld.helloWorld() with the parameter sysparm_user_name set to 'Bob'
and use the callback function HelloWorldParse() to return the result when ready */
// the callback function for returning the result from the server-side code
function HelloWorldParse(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
}
GlideAjax – GlideAjax (String class_name)
Konstruktor für GlideAjax.
| Name | Typ | Beschreibung |
|---|---|---|
| class_name | Zeichenfolge | Der Name der serverseitigen Klasse, die die Methode enthält, die Sie ausführen möchten. |
In diesem Beispiel legt ein Client-Skript den Benutzer auf „Fred Luddy“ fest und ruft dann eine Skripteinbindung auf, um den Manager abzurufen.
// client script – contains onLoad function and a callback function
function onLoad() {
var ga = new GlideAjax('GetUserInfo'); // GetUserInfo is the script include name
ga.addParam('sysparm_name','managerName'); // managerName is the function in the script include that we're calling
ga.addParam('sysparm_user_name','fred.luddy'); // set user to Fred Luddy
/* Call GetUserInfo.managerName() with user set to Fred Luddy and use the callback function ManagerParse() to return the result when ready */
ga.getXMLAnswer(ManagerParse);
}
// callback function for returning the result from the script include
function ManagerParse(response) {
alert(response);
}
// GetUserInfo script include
var GetUserInfo = Class.create();
GetUserInfo.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
managerName: function() {
var userName = this.getParameter("sysparm_user_name");
var grUser = new GlideRecord('sys_user');
grUser.get("user_name", userName);
// Build the payload. You can return additional data if needed.
var result = {
"manager": grUser.getDisplayValue('manager')
};
return JSON.stringify(result);
},
type: 'GetUserInfo'
});
GlideAjax – addParam(String parm_name, String parm_value)
Gibt einen Parameternamen und einen Wert an, der an die mit dem GlideAjax- Objekt verbundene serverseitige Funktion übergeben werden soll.
| Name | Typ | Beschreibung |
|---|---|---|
| parm_name | Zeichenfolge | Der Name des Parameters, der übergeben werden soll. (Der Name muss mit dem sysparm_ beginnen.) |
| parm_value | Zeichenfolge | Der Wert, der parm_namezugewiesen werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
In diesem Beispiel legt ein Client-Skript den Benutzer auf „Fred Luddy“ fest und ruft dann eine Skripteinbindung auf, um den Manager abzurufen.
// client script – contains onLoad function and a callback function
function onLoad() {
var ga = new GlideAjax('GetUserInfo'); // GetUserInfo is the script include name
ga.addParam('sysparm_name','managerName'); // managerName is the function in the script include that we're calling
ga.addParam('sysparm_user_name','fred.luddy'); // set user to Fred Luddy
/* Call GetUserInfo.managerName() with user set to Fred Luddy and use the callback function ManagerParse() to return the result when ready */
ga.getXMLAnswer(ManagerParse);
}
// callback function for returning the result from the script include
function ManagerParse(response) {
alert(response);
}
// GetUserInfo script include
var GetUserInfo = Class.create();
GetUserInfo.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
managerName: function() {
var userName = this.getParameter("sysparm_user_name");
var grUser = new GlideRecord('sys_user');
grUser.get("user_name", userName);
// Build the payload. You can return additional data if needed.
var result = {
"manager": grUser.getDisplayValue('manager')
};
return JSON.stringify(result);
},
type: 'GetUserInfo'
});
GlideAjax – getAnswer()
Ruft die Ergebnisse von einer serverseitigen Methode ab, die vom Client über getXMLWait() aufgerufen wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void | Das Ergebnis, das von der serverseitigen Methode zurückgegeben wurde, die zuvor mit getXMLWait() aufgerufen wurde. |
GlideAjax - getXMLAnswer(Funktions-Callback, Objekt ZusätzlicheParam, Objekt AntwortParam)
Ruft den Prozessor asynchron auf und ruft das Antwortelement der Antwort im XML-Format ab.
| Name | Typ | Beschreibung |
|---|---|---|
| callback | Funktion | Rückruffunktion. Die Funktion erhält das Antwortelement der Antwort im XML-Format als Argument. |
| Zusätzlicher Parameter | Objekt | Optional. Name-Wert-Paar zusätzlicher Parameter. |
| responseParam | Objekt | Optional. Zweites Argument für die Rückruffunktion. |
| Typ | Beschreibung |
|---|---|
| void |
Gibt die Anzahl der Anhänge zurück
function updateAttachmentCount(sysid) {
var ga = new GlideAjax('AttachmentAjax');
ga.addParam('sysparm_type', 'attachmentCount');
ga.addParam('sysparm_value', sysid);
ga.getXMLAnswer(numberOfAttachments, null, sysid); // callback: numberOfAttachments with args (answer, sysid)
}
function numberOfAttachments(answer, sysid) {
// we want to know there are 5 attachments, not 5.0 attachments
var number = parseInt(answer);
var buttons = $$('.attachmentNumber_' + sysid);
if (buttons[0] == undefined)
$('header_attachment_list_label').down().innerHTML = number;
else {
for (var i = 0; i < buttons.length; i++) {
buttons[i].innerHTML = number;
}
}
}
GlideAjax – getXML(Function callback)
Sendet dem Server eine Anforderung zur Ausführung der Methode und der mit dem GlideAjax-Objekt verbundenen Parameter.
Der Server verarbeitet die Anforderung asynchron und gibt – sobald er bereit ist – die Ergebnisse über die als callback_functionangegebene Funktion zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| callback | Funktion | Der Name der Rückruffunktion, um die vom Server zurückgegebenen Ergebnisse zu verarbeiten. |
| Typ | Beschreibung |
|---|---|
| void |
var comments = gel("dialog_comments").value;
var ga = new GlideAjax('validateComments'); //Call script include to escape text
ga.addParam('sysparm_name', 'validateComments');
ga.addParam('sysparm_comments', comments);
ga.getXML(callback);
return false;
function callback(response) {
var comments = response.responseXML.documentElement.getAttribute("answer");
comments = trim(comments);
if (comments == "") {
//If comments are empty, alert the user and stop submission
alert("Please enter your comments before submitting.");
} else {
//If there are comments, close the dialog window and submit them
GlideDialogWindow.get().destroy(); //Close the dialog window
g_form.setValue("comments", comments); //Set the "Comments" field with comments in the dialog
}
GlideAjax – getXMLWait()
Sendet dem Server eine Anforderung zur Ausführung der Methode und der mit dem GlideAjax-Objekt verbundenen Parameter.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
var ga = new GlideAjax('HelloWorld');
ga.addParam('sysparm_name','helloWorld');
ga.addParam('sysparm_user_name',"Bob");
ga.getXMLWait();
alert(ga.getAnswer());