Така че имам функция, която преобразува изображение в нива на сивото. Взема URL адрес за оригиналното изображение и изходно платно, върху което да постави изхода. Функцията работи много бързо на повечето браузъри, но много бавно на мобилните браузъри (~3-4s за изображение 700x700). Поради тази причина искам да кеширам (на клиента) данните за изображението в сивата скала, след което, когато заявка за изображението дойде няколко пъти, искам да обслужвам кешираните данни в сивата скала и да не се налага да ги преизчислявам.
Направих тест на jsfiddle. Ето го: http://jsfiddle.net/RCkDX/4/ В тестовата страница, която показвам оригиналното изображение в горната част, извеждам платното, което се използва за извършване на изчислението в долната част и двете платна в средата, те трябва да извеждат същото като долното изображение (освен с кеширани данни).
В момента получавам „Uncaught TypeError: Type error“, мисля, че това е, защото изглежда не харесва данните от кеша, опитах да преместя нещата, опитвайки различни методи, но нямах късмет.
Важно е да не използвам dataurls за кеширане, тъй като мобилният браузър на android, който използвам, ще покаже малка синя икона на въпросителен знак в момента (не са правилните данни на платното), така че всяка опция без dataurls ще работи.