2016-05-24 8 views
0
$.each(dataresp, function(key,val){ 
     cnt=cnt+1; 
     var idval=cnt+"_content"; 
     var str = '<div id="'+idval+'"></div>' 
     $(".Container").append(str); 
     myProcessMethod(idval);// in this method I used to fill the above div with content 
    }); 


when there is too much data , html page is not showing . browser page got freeze until the loop finishes. 

einmal nach Abschluss der Schleife, in der Lage, die Seite zu sehen. wie man das Einfrieren vermeidet. dh. zeigt die Daten in der Browserseite an, nachdem sie einzeln abgeschlossen wurden.wie zu vermeiden, Seite jquery für jede Seite hängt

Antwort

0

Sie können ein Dokumentfragment erstellen, Ihre Elemente dort anhängen und dann das Fragment an das DOM anhängen.

var docFrag = document.createDocumentFragment(); 

$.each(dataresp, function(key,val){ 
     cnt=cnt+1; 
     var idval=cnt+"_content"; 
     var d = document.createElement('div'); 
     d.id = idval; 
     docFrag.appendChild(d); 
     myProcessMethod(idval);// in this method I used to fill the above div with content 
    }); 

$(".Container").append(docFrag) 
+0

es funktioniert nicht. docFrag.append ist keine Funktion – udhaya

0
$.each(dataresp, function(key,val){ 
     _.defer(function(){ 
      cnt=cnt+1; 
      var idval=cnt+"_content"; 
      var str = '<div id="'+idval+'"></div>' 
      $(".Container").append(str); 
      myProcessMethod(idval); 
     }); 
    }) 

defer eine Funktion der Unterstrich ist, sondern nur ein Aliase von setTimeout(fn,0), Frontend js, alle sollten schwere Funktion als defer laufen.

+0

hi jefiers, Versucht, funktioniert, lädt die Seite, aber Scroll hängt, bis die ganze Seite fertig ist – udhaya

+0

Beim Start von Render, berechnen Sie die Gesamthöhe und legen Sie die Höhe des Containers. –

Verwandte Themen