我们构建了一个基本的web应用程序,它使用JavaScript来呈现页面,并利用Quickbase RESTful API将所有相关数据存储在Quickbase中。我们使用XMLHttpRequests进行AJAX调用。有时,页面加载得非常快。在过去的几周里,有很多次,通常是在工作日的下午,收到Quickbase的回复需要超过5秒的时间,这使得应用程序基本上无法使用。Quickbase在其状态页上发布了一些性能问题,但当状态页上没有发布时,我多次看到性能下降。我想知道其他应用程序开发人员是否也看到了同样的问题,如果有什么可以用不同的方法来缓解的话。
我们正在进行多个AJAX调用,等待呈现页面,直到Promise.all()返回。
示例AJAX调用:
var cmData = new Promise(
function queryQB(resolve,reject){
let body = {
"from": CMTable,
"select": [ 6, 23, 24, 25 ],
"where": "{'6'.EX."+myCM+"} AND {'26'.EX."+true+"}"
};
const xhr = new XMLHttpRequest();
xhr.open('POST', QBRecordsAPIQueryUrl, true);
if(loading == false){
showLoading(); //hide all page content and display a loading gif
loading = true;
}
xhr.timeout = 5000;
for (const key in QBApiHeaders) {
xhr.setRequestHeader(key, QBApiHeaders[key]);
}
xhr.send(JSON.stringify(body));
xhr.onload = function() {
var cmData;
if (xhr.status == 200) {
cmData = xhr.responseText;
let parsedResponse = jQuery.parseJSON(cmData);
cmData = parsedResponse.data;
}
resolve(cmData);
}
else{
reject(new Error("There was an error retrieving data from Quickbase. "+ xhr.status+", "+xhr.statusText));
}
}
xhr.ontimeout = function (error) {
hideLoading(); //display page content, hide the loading gif
reject(new Error(“Quickbase is taking a long time to respond. “));
};
xhr.onerror = function(error){
reject(new Error(" An error occurred connecting to Quickbase. "));
}
});
Promise.all([cmData,otherData,moreData]).then((values) => {
hideLoading(); //display page content. Hide the loading gif.发布于 2022-10-13 14:44:47
最有可能的是,由于组合大小、复杂性和并发性,您正在查询的特定应用程序正在遭受性能问题的困扰。也就是说,整个平台并不是在经历这个问题,而是你的应用程序。通常,直接访问应用程序的用户在这段“高峰”时间内浏览时也会感受到同样的性能损失。Quickbase有与在应用程序中遇到性能问题的客户接触的方法,并且可以帮助确定根本原因。我会建议联系您的客户成功经理或客户经理,如果这是有兴趣的。
https://stackoverflow.com/questions/74044398
复制相似问题