CreateJS - почему использование только пути при создании растрового изображения createjs работает для Firefox, но не для Chrome

Мой проект загружается с сервера. Я использую preloadjs для загрузки изображения, а затем использую его для создания растрового изображения. После загрузки изображения растровое изображение можно создать с помощью new createjs.Bitmap(path); при использовании firefox, но то же самое нельзя использовать при использовании Chrome. для хрома мы должны использовать: new createjs.Bitmap(loader.getResult("idOfTheImage")); // загрузчик - это объект LoadQueue

Примечание. Описанное выше работает как для Chrome, так и для Firefox.

Итак, я хочу знать, почему использование только пути работает в Firefox, но не в Chrome.


person Khyati    schedule 08.12.2015    source источник


Ответы (1)


Передача строки в растровое изображение заставляет его сделать запрос тега для загрузки изображения. Если оно находится в кеше, он не будет повторно запрашивать его, но если изображение было предварительно загружено с использованием XHR (по умолчанию в LoadQueue), это приведет к другому запросу браузера на изображение.

Даже если оно уже кэшировано, при передаче строкового пути будет небольшая задержка перед тем, как изображение будет готово, а это означает, что растровое изображение не будет доступно для немедленного рисования. Если вы обновите сцену чуть позже, она, скорее всего, появится во всех браузерах.

Из-за этого вы всегда должны использовать загруженный результат. Это гарантирует, что растровое изображение можно будет нарисовать сразу после того, как вы его сделаете.

person Lanny    schedule 08.12.2015
comment
Большое спасибо Ланни за ответ на мой вопрос. Теперь я немного разобрался в этом. Но я хочу узнать больше о хроме, например, в чем отличие поведения в хроме от поведения Firefox. Есть идеи ? Заранее спасибо !! - person Khyati; 09.12.2015
comment
Возможно, браузеры обрабатывают кешированные запросы. - person Lanny; 10.12.2015