【发布时间】:2011-03-08 22:09:06
【问题描述】:
在我的网站上,我捕获点击链接以使用 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');
}
});
}
【问题讨论】:
标签: html css ajax delayed-loading