Material Design Lite Все элементы загружены Обратный вызов JS

У меня есть страница, на которой я пытаюсь отобразить заголовок с помощью MDL, а затем предварительно загрузить некоторые изображения. К сожалению, я столкнулся с проблемой, когда функция предварительной загрузки изображения фактически блокирует правильную визуализацию элементов библиотекой до тех пор, пока не будет выполнена предварительная загрузка всех изображений.

Я попытался поместить функцию предварительной загрузки в timeOut с 2 секундами, но, хотя это работает для большинства быстрых соединений, на достаточно медленных соединениях возникает та же проблема.

В результате я ищу способ сказать через Javascript, когда библиотека загружается и выполняется - когда все элементы отображаются правильно. Есть ли обратный вызов, который запускает MDL, который я могу использовать, чтобы затем начать предварительную загрузку изображений?

Или есть лучшее альтернативное решение?


person mt_xing    schedule 11.05.2016    source источник
comment
Я не уверен, что это сработает для MDL, но это кое-что perishablepress.com/ Также вы можете просто использовать обычную функцию JavaScript onload. Выполняется после загрузки абсолютно всего кода, файлов, изображений (напомню, вещи с display:hidden; не загружаются при загрузке страницы   -  person Alexei Darmin    schedule 11.05.2016
comment
Вы хотите отложенную загрузку изображений?   -  person YOU    schedule 11.05.2016
comment
@AlexeiDarmin Проблема с этой первой ссылкой заключается в том, что MDL не выполняется до тех пор, пока страница не будет загружена, поэтому добавление всех изображений непосредственно в разметку имеет ту же проблему. То же самое с onload — MDL не запускается, пока страница не загрузится.   -  person mt_xing    schedule 11.05.2016
comment
@YOU Не совсем так - я хочу предварительно загрузить изображения, чтобы они были в кеше (они не отображаются на этой странице - они кэшируются для более поздней страницы). Я просто не хочу, чтобы предварительная загрузка начиналась до тех пор, пока MDL не сделает свое дело.   -  person mt_xing    schedule 11.05.2016
comment
когда тег img вставляется в dom, браузер начинает загрузку и ждет, пока они не загрузятся. если вы не хотите загружать перед MDL, то ленивая загрузка изображений - единственный способ, IMO.   -  person YOU    schedule 11.05.2016


Ответы (1)


Используйте событие mdl-componentupgraded. Проверьте цель события и убедитесь, что это компонент макета для запуска. Бьюсь об заклад, это макет вызывает здесь проблемы из-за того, как мы сделали это для поддержки устаревших браузеров. Если это не макет, то просто ищите и клейте, пока не найдете часть, вызывающую проблему.

person Garbee    schedule 16.05.2016