Web worker
Move parsing and rendering off the main thread.
Under webpack, import
@jbrowse/react-linear-genome-view2/esm/makeWorkerInstance instead of the
?worker entry, and set output.publicPath: 'auto' so the worker finds its own
URL. A module worker, which Vite builds here, cannot load a UMD plugin; a
classic worker can.
View source — 24 lines
import {
JBrowseLinearGenomeView,
useCreateViewState,
} from '@jbrowse/react-linear-genome-view2'
import RpcWorker from '@jbrowse/react-linear-genome-view2/esm/rpcWorker?worker'
export default function WebWorker() {
const state = useCreateViewState({
assembly: {
name: 'volvox',
uri: 'https://jbrowse.org/genomes/volvox/volvox.2bit',
},
tracks: [
{
trackId: 'volvox_gff3',
name: 'Volvox genes',
uri: 'https://jbrowse.org/code/jb2/main/test_data/volvox/volvox.sort.gff3.gz',
},
],
view: { loc: 'ctgA:1105..1221', tracks: ['volvox_gff3'] },
makeWorkerInstance: () => new RpcWorker(),
})
return state ? <JBrowseLinearGenomeView viewState={state} /> : null
}