Звучит скорее как проблема в том, что когда данные кэшируются, событие загрузки срабатывает, прежде чем прикрепить обработчик.
Что вы можете попробовать, это сбросить атрибут данных после присоединения события :
object.addEventListener('load', onload_handler);
// reset the data attribte so the load event fires again if it was cached
object.data = object.data;