我開發了一個基於RESTFul設計的Web應用程序,其中應用程序從基於JAVA的Web服務接收JSON響應並在UI中顯示,並且每隔5秒刷新一次數據。 該應用程序使用Bootstrap進行UI設計,使用Backbone和require.js來實現將JSON響應解析爲Backbone集合的MVC結構。 當管理員使用此應用程序時,JSON響應大小過大(從800到1100個對象)。 這是事情變得混亂的地方。根據我的分析,瀏覽器佔用了太多資源,因此其餘的應用程序非常緩慢。例如,如果我嘗試打開模式,系統會凍結一段時間,並且打開速度很慢,從而導致用戶體驗很差。 根據我分析的時間正在解析數據 作爲一種補救措施,我刪除了代碼中的所有註釋,並嘗試對JSON文件/ html/css/js實施Gzip壓縮。 JSON對象的 樣品粘貼下面解析大型JSON響應時響應緩慢
{
"name": "TEST",
"state": "Lunch",
"time": "00:00:09",
"manager": "TEST",
"site": "C",
"skill": "TEST",
"center": "TEST",
"teamLead": "TEST",
"workGroup": "TEST",
"lanId": "TEST",
"dbID": "TETS",
"loginId": "TEST",
"avgAcwTime": "nn",
"avgHandleTime": "nn",
"avgTalkTime": "nn",
"callsAnswered": "nn",
"dispSkill": "-",
"errCode": null,
"errDesc": null,
"avgAcwTimeth": "medium",
"avgHandleTimeth": "high",
"avgTalkTimeTh": "medium",
"callsAnsweredTh": "medium",
"stateTh": "high"
}
Pagenation無法做到,由於一些要求。 任何一個可以提出好的建議,以改善演出]使用Backbone.Collection.fetch()
getAgentMetric(){
this.metrices.fetch({
url : (isLocal) ? ('http://localhost:8080/jsons/agent.json') : (prev_this.url + '/agentstat'),
data: JSON.stringify(param),
type: "POST",
dataType: "JSON",
contentType: "application/json",
})
.done(function() {
// passing the datasource from ajax call
prev_this.agentLoacalSource.localdata = prev_this.metrices.toJSON();
});
timeout = setTimeout(_.bind(this.getAgentMetric, this), 5000);
}
我也是獲取數據,
我有一個關於刷新數據的建議 - 你可以實現過濾器(檢查什麼改變只發送這部分)。所以在前端你只能更新改變的部分。 –