2016-04-21 10 views
3

Ich versuche, eine Tabelle progressiv in Internet Explorer zu rendern. Es rendert in Firefox progressiv - allerdings im IE. Es rendert es im Speicher, so dass die Tabelle mehr Zeit benötigt, um sichtbar zu erscheinen.Progressive Table Rendering in Internet Explorer

Ich habe einen festen Layout auf den Tisch, und ein colgroup/col einrichten -

Dies ist, was der Code wie folgt aussieht (ich es in C# bin Konstruktion und auch unter Verwendung von Bootstrap):

sb.Append("<table class='table table-condensed small table-hover table-bordered' style='table-layout: fixed;'>"); 
sb.Append(@"<colgroup span=13> 
      <col width='350'> 
      <col width='*'> 
      <col width='*'> 
      <col width='*'> 
      <col width='*'> 
      <col width='*'> 
      <col width='*'> 
      <col width='*'> 
      <col width='*'> 
      <col width='*'> 
      <col width='*'> 
      <col width='*'> 
      <col width='*'> 
       </colgroup>"); 
+0

Können Sie bitte etwas über den Zweck Ihrer progressiven Tabellen erklären, damit es mir hilft, eine geeignete Lösung zu finden? Danke –

+0

Finde einen Archäologen :) –

Antwort

3

Sie können kein progressives HTML-Rendering mit C# -Code durchführen. Ihr gesamter C# -Code wird ausgeführt, bevor die Seite überhaupt an den Server gesendet wird.

+0

Ich spreche über das progressive Rendering der Tabelle, sobald es beginnt, in den Webbrowser zu streamen. Tut mir leid, wenn das nicht klar war. –

+0

Ja, sehr klar. Aber leider passiert das nicht. C# führt kein Bit aus, streamt dann zum Server, führt ein Bit aus, streamt mehr ... Nein. – Alexander

2

Ihr HTML-Code wird auf dem Server ausgeführt und als komponierte HTML wird sofort an Ihren Browser gesendet. Das progressive Rendering, das Sie in Firefox sehen, ist nur eine Illusion. Wenn der HTML-Antwortstream gestartet wird und die Daten zu Firefox fließen, beginnt der Rendervorgang. IE validiert jedoch zuerst vollständig HTML bis schließendes Tag der Tabelle und dann rendert es.

Um progressive HTML zu verwenden, verwenden Sie Tauchgänge anstelle von Tabellen. Es ist ein effizienterer Ansatz und Sie können den Bootstrap wirklich nutzen, indem Sie Ihr Design responsiv gestalten.

Wenn Tabelle die einzige Wahl ist, sollten Sie das Tabellenlayout-CSS-Attribut angeben, um eine optimale Leistung von Internet Explorer 5 oder höher zu erzielen. Mit den folgenden Schritten ermöglichen Sie Internet Explorer, die Tabelle zu rendern, bevor alle Daten empfangen wurden.

  • Legen Sie das CSS-Attribut table-layout fest in der Tabelle fest.
  • Definieren Sie explizit Col-Objekte für jede Spalte.
  • Setzen Sie das WIDTH-Attribut für jeden col.

Weitere Details zu https://msdn.microsoft.com/en-us/library/ms533020(VS.85).aspx#Use_Fixed-Size_Tables

+0

Tut es das in jeder Situation? Ich habe schon oft gesehen, dass eine Tabelle progressiv im Internet Explorer gerendert wird. Ich frage mich, ob es, weil einige der ersten Spalten versteckt sind, dass es dazu führt, dass es passiert. –

+0

Sie haben recht, Sie sollten das Tabellenlayout-CSS-Attribut angeben, um eine optimale Leistung von Internet Explorer 5 oder höher zu erzielen. Mit den folgenden Schritten ermöglichen Sie Internet Explorer, die Tabelle zu rendern, bevor alle Daten empfangen wurden. => Legen Sie das Tabellenlayout-CSS-Attribut fest auf der Tabelle fest. => Definieren Sie explizit Col-Objekte für jede Spalte. => Setzen Sie das WIDTH-Attribut für jede Spalte. Weitere Details unter Link https://msdn.microsoft.com/en-us/library/ms533020(VS.85).aspx#Use_Fixed-Size_Tables –

0

Wie IE den HTML-Block als Ganzes die Tabelle macht nur geladen werden, wenn IE Validierung abgeschlossen umschließenden Tag wie Asad Mehmood hingewiesen. Benutze divs.

+1

Vielen Dank. Ich hatte gehofft, dass es der Tisch und nicht divs sein würde, die progressiv gemacht werden könnten. Aber wenn das die einzige Option ist, dann sollte ich dir das Kopfgeld geben. –

+0

Ich glaube an deine Situation ist es, die divs geben dir Flexibilität mit Bootstrap. Aber viel Glück Mann glücklich Codierung :) – ThatAwesomeCoder