Added data caching for canvas