На моем веб-сайте я ловлю ссылки на ссылки, чтобы динамически загружать содержимое этой страницы с помощью AJAX. Для этого нового контента может потребоваться файл CSS, который еще не загружен. Установка содержимого целевого элемента в ответ HTML автоматически загрузит необходимый CSS (есть теги <link>
), но содержимое будет выглядеть испорченным в течение короткого периода времени, пока CSS не загрузится.
Что можно сделать, кроме как загрузить все файлы CSS заранее, чтобы предотвратить это? Ради полноты вот мой код:
$(document).ready(function() {
$('a').live('click', function(event) {
if (this.target || this.rel == 'ignore' || this.rel == 'fancybox') {
return true;
}
if (/^javascript:/.test(this.href)) {
return true;
}
if (this.href.indexOf('#') >= 0) {
return false;
}
if (!this.href) {
return true;
}
loadDynamicPage(this.href);
event.preventDefault();
return false;
});
});
var currentLoader = null;
function loadDynamicPage(url) {
if (currentLoader) {
currentLoader.abort();
currentLoader = null;
}
$('#backButton').addClass('loaderBG');
currentLoader = $.ajax({
context: $('#army_content'),
dataType: 'text',
url: url + '&format=raw',
success: function(data) {
currentLoader = null;
$('#backButton').removeClass('loaderBG');
clearRoomIntervals();
$(this).html(data).find('[title]').tooltip({
showURL: false,
track: false,
delay: 300
});
$(document).trigger('dynamicLoad');
}
});
}