Task #10683 (closed)
Opened 11 years ago
Closed 11 years ago
Tile loading and resolution change
Reported by: | jburel | Owned by: | wmoore |
---|---|---|---|
Priority: | major | Milestone: | 5.0.0-beta1 |
Component: | Web | Version: | n.a. |
Keywords: | n.a. | Cc: | python-team@… |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | n.a. |
Sprint: | FS Demo 4.3 |
Description
Due to the size of the image. Changing resolution while loading the tiles lead to a nasty blocking stage depending on the size of the images. The controls should be disabled when the tiles are loaded. That happens on dev_4_4 but more obvious on develop
Change History (5)
comment:1 Changed 11 years ago by jburel
comment:2 Changed 11 years ago by wmoore
- Cc python-team@… added; ux@… fs@… removed
- Owner changed from wmoore to cxallan
comment:3 Changed 11 years ago by jamoore
- Sprint changed from FS Demo 3 to FS Demo 4
Moving to next FS milestone for cleanup. If this is more appropriate elsewhere, please feel free to move it.
comment:4 Changed 11 years ago by jburel
- Owner changed from cxallan to wmoore
- Sprint changed from FS demo 4.x to FS Demo 4.3
Will: could you investigate that one?
comment:5 Changed 11 years ago by wmoore
- Resolution set to wontfix
- Status changed from new to closed
There's really not much we can do with the current architecture. The images are loaded simply by setting the src attribute of image tiles, and so we have no control over the loading of data. Many http requests are made at once (all the visible tiles) and I don't know that these can be cancelled after that. We also don't have a reliable way of knowing whether tiles are loading or not (so we can't disable controls during loading) because the 'load' callback on an <img> is not reliable (see previous comment & commit).
Any ideas Ola / Carlos?
It's tricky to manage this via Javascript - I tried to monitor the status of tiles loading (detecting when all tiles have loaded) in https://github.com/will-moore/openmicroscopy/commit/f00e04dcce9b2ceced13428a8d10187250e8f59b. This works OK if none of the tiles you want have been cached by the browser. But if you've got tiles cached, then you don't get an "load" event fired when setting the tile src attribute, so the Javascript would assume that the tile hasn't loaded.
We may need to fix this issue in the Django code or lower? It's almost like you need the zoom level change to be notified and then to ignore all tile requests for other zoom levels?