Fixes Implementations#

Virtual Notebook Implementation#

Use an intersection observer, placeholder for non rendered cells, and loading indicator if notebook not fully rendered, see 2.2.x Virtual notebook.

Content Visibility Implementation#

For better performance while opening and switching a Notebook, we can use the new content-visibility supported by Chrome 85+ (https://web.dev/content-visibility), see PR 2.2.x Add content-visibility on Cell CSS class.

Block Div Implementation#

For better performance when opening notebook, an option is to use block display instead of flex display, see PR 2.2.x Use block display in Notebook panel.

Server Parsing Implementation#

Add the possibility of using fastjsonschema if installed and other libraries if installed or defined by a NBFORMAT_VALIDATOR environment variable, see PR NbFormat: Use fastjsonschema.

Shadow DOM Implementation#

Shadow DOM has been implemented in master branch but removed afterwards as conflicting with other fixes as Content Visibility, read more on Revert “Move CodeMirror HTML tree and related CSS to shadow DOM”.

Hide code cell source
import pandas as pd
from vega import VegaLite
diff = pd.read_csv('./datasets/diff.csv')
VegaLite({
  "data": {
    "url": "./datasets/diff.csv",
    "formdfat": {
      "type": "csv",
      "parse": {
        "confidenceInterval": "number",
        "mean": "number",
        "n": "number"
      }
    }
  },
  "facet": {
    "row": { "field": "mode", "type": "nominal" },
    "column": { "field": "type" }
  },
  "spec": {
    "encoding": {
      "color": {
        "field": "browser",
        "type": "nominal"
      },
      "x": {
        "field": "n",
        "type": "quantitative",
        "scale": {}
      }
    },
    "layer": [
      {
        "mark": {
          "type": "errorband",
          "clip": True
        },
        "encoding": {
          "y": {
            "field": "mean",
            "type": "quantitative",
            "scale": { "domain": [0, 2] },
            "title": "Ratio of Time (95% CI)"
          },
          "yError": { "field": "confidenceInterval" }
        }
      },
      {
        "mark": {
          "type": "line",
          "clip": True,
          "tooltip": True,
          "size": 1
        },
        "encoding": {
          "y": {
            "field": "mean",
            "type": "quantitative"
          }
        }
      }
    ]
  }
}
, diff)
../_images/18579ff9a50d9454dffb2a5a193299ef8bd6f2249e4881385beeb8687272d318.png

StrippedOutput Implementation#

TBD

VirtualOutput Implementation#

TBD