2012-11-22 15 views
6

Ben javalı (1.0-rc3) AJAX tarafından veri yüklemek için seçenek kullanıyorum ve ~ 2000 childs düğüm tarafından yükleme hakkında bir sorunum var. Sunucu birkaç saniye içinde yanıt verirken, sonuçları tarayıcıda (krom, FF) oluşturmak için yaklaşık 40 saniye sürer. Buna ek olarak, FF 'jquery-1.7.2.min.js' den cevapsız bilgi verir. Aynı miktarda veri IE'yi dondurur. Veri ile aşırı yüklü mü? Yoksa bir çeşit böcek mi? Daha hızlı render ile bana yardımcı olabilecek herhangi bir değişken faktör var mı?jsTree - oluşturma optimizasyonu | 2000 düğümleri ile çok uzun render

jQuery("#dependency-tree").jstree(
     { 
      'plugins':['themes', 'json_data', 'ui', 'core', 'types', 'sort'], 
      "json_data":{ 
       "progressive_render": true, 
       "data":initData, 
       cache:false, 
       "ajax":{ 
        "url":function (node) 
        { 
         return appContext + 'GetUnitsNode/' 
          + node.attr('id'); 
        }, 
        dataType:"text", 
        "success":function (data) 
        { 
         if (data == "none") 
         { 
          return false; 
         } 
         return jQuery.parseJSON(data); 
        } 
       } 
      }, 
      "ui":{ 
       'select_limit':1 
      }, 
      "core":{ 
       'animation':0, 
       'html_titles':true 
      }, 
      "themes":{ 
       "theme":"rules", 
       "dots":true, 
       "icons":true 
      }, 
      "types":{ 
       "types":{ 
        "default":{ 
         "icon":{ 
          "image":appContext + "/img/orange.png" 
         } 
        } 
       } 
      }, 
      "sort":function (a, b) 
      { 
       return this.get_text(a).toUpperCase() > this.get_text(b).toUpperCase() ? 1 : -1; 
      } 
     }).bind("select_node.jstree", function (event, data) 
     { 
      submitedNodeId = data.rslt.obj.attr('id'); 
      submitedNodeTypeId = data.rslt.obj.attr("typeId"); 
      submitedNodeLast = data.inst.is_leaf(data.rslt.obj); 
      g_node_text = jQuery(data.rslt.obj).children().eq(1).html(); 
     }); 
+0

jstree halsiz eğer demo, ... Ben 'can 2K ile deneyiminizi hayal etmeyin ... BT5'i HTML5'te yapmak mümkün olmalıdır. Belki basit sınıf anahtarı (katlanmış/katlanmamış) ve son çare olarak DOM manipülasyonu ile – CapelliC

cevap

2

  • progressive_render

    progressive_render Boole. Varsayılan yanlıştır. Bu seçenek true olarak ayarlanmışsa, döndürülen JSON'un görünür (açık düğümler) kısımları DOM düğümlerine dönüştürülür, herhangi bir gizli parça kaydedilir ve ondemand (bir düğüm görünebilir olduğunda) ayrıştırılır. Ağır bir DOM neden olacaktır geniş iç içe ağaç olduğunda bu yararlıdır

  • AJAX yükleme bile 3/4 düğümlerle mutlaka