我正在使用GWT構建應用程序,而且我正面臨着我認爲速度非常快的嚴重速度問題。我有下面的結構數據的JSONObject(但大得多):通過GWT中的JSONArray緩慢迭代
{"nodeData" : [
{ "name":"one", "attributes":["uno","dos"]},
{"name":"two", "attributes":["tres"]}
]
}
我試圖通過JSON對象進行迭代來存儲所有屬性在其中每個節點對象都有一個ArrayList,具有屬性大小從4到800
JSONObject JSONnode = nodeData.get(i).isObject();
Node node = new Node(JSONnode.get("name").toString();
JSONArray attributeArray = JSONnode.get("Attributes").isArray();
int attributeSize = attributeArray.size();
for(int j = 0; k < attributeSize; j++){
node.attributeArrayList.add(attributeArray.get(j).toString();
}
for循環,我執行走約一分鐘,這似乎太長了,我不知道如何改進它。一分鐘處於開發模式,但我不知道編譯它時會不會更快。
解析JSON結構的方式很好。對於大約800條記錄,一分鐘聽起來有點多。不過,我可以保證在生產模式下性能良好(您應該嘗試使用它)。出於測試目的,您可以刪除node.attributeArrayList.add()調用並查看它是否會影響性能。順便說一句你在開發模式中使用哪種瀏覽器? –
我不使用生產模式的原因是因爲我在異步調用中遇到404錯誤。由於我沒有在開發模式中獲得404,我只是一直使用它。我尋找答案表明它可能是一個SOP問題,所以我有點推動把它固定在一邊。 – aelnaiem
404與SOP無關(因爲404意味着服務器已到達)。然而,很可能你使用的是絕對路徑,因爲web應用程序部署在服務器的ROOT處,所以絕對路徑工作在開發模式下,但不能在prod模式下使用非空的「上下文路徑」。最有可能的解決辦法是將您的路徑連接到'GWT.getHostPageBaseURL()',因此它與您的主機頁面「相對」,無論它在哪裏部署。 –