Rigol-DG2052-Function-Gener.../docs/ajax.js

51 lines
1.0 KiB
JavaScript

// Implement simple cached AJAX functions.
var _cache = {};
/*
* Get a promise for the HTTP get responseText.
*/
function httpGetPromise(url) {
const promise = new Promise((_resolve, _reject) => {
httpGet(url, (responseText) => {
_resolve(responseText);
},
(error) => {
_reject(error);
});
});
return promise
}
function httpGet(url, onload, onerror) {
if (_cache[url]) {
_cachedHttpGet(url, onload, onerror);
}
else{
_httpGet(url, onload, onerror);
}
}
function _cachedHttpGet(url, onload, onerror) {
setTimeout(() => { onload(_cache[url]) }, 0);
}
function _httpGet(url, onload, onerror) {
var xobj = new XMLHttpRequest();
xobj.open('GET', url, true); // Asynchronous
xobj.onload = function () {
// add document to cache.
_cache[url] = xobj.responseText;
onload(xobj.responseText);
};
xobj.onerror = function (error) {
console.log(error)
onerror(error)
};
xobj.send(null);
}