Browser Limitations
Applications built on the web today are capable of almost anything that a native application built on your device's operating system. The advancement in the capabilites of modern web browsers is ever expanding, with new features in active development for leveraging the full capacity of the CPU and GPU (read WebGPU in the previous section). Despite these advancements, there are still a few limitations that come with building an application on the web. Limitations in Vista's context are listed below.
Memory Allocation (ArrayBuffers)
If you import a very large image dataset into Vista (e.g. over 2GB), your browser needs to temporarily hold that image data in memory so it can display or process it. This is done using something called an ArrayBuffer, which is basically a fixed-size block of memory reserved to store raw binary data, like the bytes of an image file.
When an ArrayBuffer is created, it is given a fixed size, which is determined by your browser. The larger the images you import, the larger the block of memory that your browser must allocate to hold them. The size of these blocks have an upper limit, determined by your device's available RAM and your browser. Different browsers have different memory limits, for example, Google Chrome sets a maximum of 2GB memory for an ArrayBuffer. If your images are too large, and the memory required to hold them is larger than the browser limit, an out of memory error will be raised. This means the browser simply doesn't have enough free space to hold the entire image data at once, so it cannot load or process the images properly.
If the images you want to import into Vista have a very high resolution (e.g. <100um), as well as having a very large pixel width, pixel height and number of slices, this may result in an out of memory error, and the images may fail to load. If you notice a failure to load your images, and the images match the description above, this is likely not due to a bug in the application. It is most likely due to the memory allocation limit set by your browser.