2013-08-17 2 views
0

Я внедрил решение для переключения стилей, где таблица стилей href изменена при щелчке с помощью jQuery.Как предварительно загрузить css-файлы, не применяя их с yepnope.js?

Он работает нормально, но при загрузке первой страницы появляется мерцание при изменении между таблицами стилей, потому что разные файлы css ранее не загружались (после того, как они были использованы, нет мерцания).

Так я использую yepnope.js для предварительной загрузки файлов CSS с:

yepnope([{ 
    load: 'http://path/to/stylesheet_1.css', 
    callback: function (url, result, key) { 
    console.log(url, result, key); 
    } 
}, { 
    load: 'http://path/to/stylesheet_2.css', 
    callback: function (url, result, key) { 
    console.log(url, result, key); 
    } 
}]); 

И все работает, как ожидается, за исключением того, что каждая таблица стилей применяется, когда он будет загружен.

Можно ли предварительно загрузить таблицы стилей без их фактического применения?

Редактировать

Я также попытался:

yepnope([{ 
    load: 'preload!http://path/to/stylesheet_1.css' 
}, { 
    load: 'preload!http://path/to/stylesheet_2.css' 
}]); 

после прочтения о preload! Prefix на их documentation page но это, похоже, не работает.

Edit 2

попытался также добавил:

yepnope.addFilter(function (resourceObj) { 
    resourceObj.noexec = true; 

    return resourceObj; 
}); 

Но это, похоже, не имеет эффекта.

ответ

0

вы можете выполнить ajax запрос css-файла и кэшировать его текстовое содержимое, а затем вставить его в тег стиля, когда вы хотите его загрузить.

0

Если вы повторно определить префикс 'преднагрузки' перед использованием, что, кажется, работает:

yepnope.addPrefix("preload", function(resource) { 
    resource.noexec = true; 
    return resource; 
}); 

Источник: https://gist.github.com/dzello/1015783

 Смежные вопросы

  • Нет связанных вопросов^_^