Итак, у меня есть функция, которая преобразует изображение в оттенки серого. Он принимает URL-адрес исходного изображения и выходной холст для вывода. Функция работает очень быстро в большинстве браузеров, но очень медленно в мобильных браузерах (~3-4 секунды для изображения 700x700). По этой причине я хочу кэшировать (на клиенте) данные изображения в градациях серого, а затем, когда запрос на изображение поступает несколько раз, я хочу обслуживать кэшированные данные в градациях серого и не пересчитывать их.
Я сделал тест на jsfiddle. Вот он: http://jsfiddle.net/RCkDX/4/ На тестовой странице я показываю исходное изображение вверху, я вывожу холст, который используется для выполнения вычислений внизу, и два холста посередине, они должны выводить то же, что и нижнее изображение (за исключением кэшированных данных).
На данный момент я получаю «Uncaught TypeError: Type error», я думаю, это потому, что ему не нравятся данные кеша, я пытался перемещать вещи, пробуя разные методы, но безуспешно.
Важно, чтобы я не использовал dataurls для кэширования, так как мобильный браузер Android, который я использую, в данный момент будет отображать маленький синий значок вопросительного знака (неправильные данные на холсте), поэтому любой вариант без dataurls будет работать.