瀏覽代碼

AMBARI-4875. Job details UI keeps flashing every 6s. (srimanth)

Srimanth Gunturi 11 年之前
父節點
當前提交
f5dc33261e
共有 1 個文件被更改,包括 24 次插入3 次删除
  1. 24 3
      ambari-web/app/mappers/jobs/hive_job_mapper.js

+ 24 - 3
ambari-web/app/mappers/jobs/hive_job_mapper.js

@@ -155,9 +155,30 @@ App.hiveJobMapper = App.QuickDataMapper.create({
             vertices : vertexIds,
             vertices : vertexIds,
             edges : edgeIds
             edges : edgeIds
           }
           }
-          App.store.loadMany(App.TezDagVertex, vertices);
-          App.store.loadMany(App.TezDagEdge, edges);
-          App.store.load(App.TezDag, tezDag);
+          // Once the DAG is loaded, we do not need to
+          // reload as the structure does not change. Reloading
+          // here causes missing data (got from other calls)
+          // to propagate into UI - causing flashing.
+          var newVertices = [];
+          var newEdges = [];
+          vertices.forEach(function(v) {
+            var vertexRecord = App.TezDagVertex.find(v.id);
+            if (!vertexRecord.get('isLoaded')) {
+              newVertices.push(v);
+            }
+          });
+          edges.forEach(function(e) {
+            var edgeRecord = App.TezDagEdge.find(e.id);
+            if (!edgeRecord.get('isLoaded')) {
+              newEdges.push(e);
+            }
+          });
+          App.store.loadMany(App.TezDagVertex, newVertices);
+          App.store.loadMany(App.TezDagEdge, newEdges);
+          var dagRecord = App.TezDag.find(tezDag.id);
+          if (!dagRecord.get('isLoaded')) {
+            App.store.load(App.TezDag, tezDag);
+          }
           hiveJob.tezDag = tezDag.id;
           hiveJob.tezDag = tezDag.id;
         }
         }
       }
       }