近期在使用GoJS進行開發時,遇到了一個棘手的問題,就是獲取JSON數據后顯示不及時。原本以為是代碼問題,但經過反復測試和排除,發現是數據加載的問題。
在使用GoJS中,如果需要動態加載數據,則需要使用JavaScript/jQuery或其他工具來獲取JSON數據并加載到GoJS中。但如果該請求發出時,數據還沒有生成完畢或者請求時間過長,則會導致GoJS界面顯示不及時。
解決方案如下:
function init() { var $ = go.GraphObject.make; myDiagram = $(go.Diagram, "myDiagramDiv", { "undoManager.isEnabled": true, //為gojs添加撤銷管理器 scale: 1.2, //初始縮放比例 allowDrop: true //允許拖拽 } ); //從后臺webapi獲取數據 $.getJSON("/Main/LoadData", function (data) { myDiagram.model = new go.GraphLinksModel(data); //延時5秒后重新 layout,以使得界面更好的顯示 setTimeout(function () { myDiagram.layoutDiagram(true); }, 5000); }); }
可以看到,在獲取JSON數據后,使用setTimeout()函數進行延時操作,以保證數據加載完全后再調用layoutDiagram()函數。
如果不延時,則會出現節點重疊和界面閃爍等問題,影響用戶體驗。
以上就是我遇到并解決的關于GoJS獲取JSON數據不及時的問題,供大家參考。