Name
global.AJAXClientTiming
Description
Save client timing values for a transaction
Script
// This script include has been deprecated for the /now/ui/page_timing REST API.
var AJAXClientTiming = Class.create();
AJAXClientTiming.prototype = Object.extendsObject(AbstractAjaxProcessor, {
process: function() {
var transId = this.getParameter("transaction_id");
var transTime = this.getParameter("transaction_time");
var serverTime = this.getParameter("server_time");
var networkTime = this.getParameter("network_time");
if (networkTime == "")
networkTime = "0";
var browserTime = this.getParameter("browser_time");
var detail_string = this.getParameter("client_details");
var tableName = this.getParameter('table_name');
var viewId = this.getParameter('view_id');
var formName = this.getParameter('form_name');
this._postStats(networkTime, browserTime);
var gr = new GlideRecord("syslog_transaction");
if (!gr.get(transId)) {
gs.log("syslog_transaction not found for AjaxClientTiming: sysId: " + transId + ", table: " + tableName + ", view: " + viewId + ", form: " + formName);
return;
}
gr.client_transaction = true;
gr.client_response_time = transTime;
gr.client_network_time = networkTime;
gr.browser_time = browserTime;
gr.client_script_time = this.getParameter("cs_time");
gr.ui_policy_time = this.getParameter("policy_time");
gr.table = tableName;
gr.view_id = viewId;
if (gs.nil(gr.type)) {
if ('sys_form_template' == formName)
gr.type = 'form';
else if (formName.indexOf('list_template') >= 0)
gr.type = 'list';
else
gr.type = 'other';
}
gr.updateLazy();
// track statistics of the provided transaction log entry
SNC.TransactionStatsScriptable.recordClientTransaction(transId, gr.client_response_time, gr.browser_time, gr.client_network_time, gr.client_script_time, gr.ui_policy_time, gr.origin_scope);
var details = new JSON().decode(detail_string + '');
for (i = 0; i < details.length; i++) {
var det = details[i];
if (!det)
continue;
var grd = new GlideRecord("syslog_client_trans_det");
grd.client_transaction = transId;
grd.name = det.name;
grd.duration = det.duration;
grd.type = det.type_code;
grd.order = i;
grd.table = tableName;
grd.insertLazy();
if (det.sys_id) {
SNC.ClientScriptStatsScriptable.recordClientScript(det.source_table, det.sys_id, det.script_detail, det.name, det.duration);
}
}
},
_postStats: function(networkTime, browserTime) {
try {
var nt = parseInt(networkTime);
var bt = parseInt(browserTime);
GlideClientNetworkTimes.get().addSample(nt);
GlideClientBrowserTimes.get().addSample(bt);
} catch (e) {}
},
isPublic: function() {
return false;
},
type: "AJAXClientTiming"
});
Sys ID
71686a27c0a800687132ef26af7fd477