我正在将jQuery 1.4与jQuery History结合使用,并试图弄清为什么Firebug / Web Inspector在每个页面加载时显示2个XHR GET请求(访问我的网站首页(/或/#)时,该请求数量是原来的两倍).
例如在启用Firebug的情况下访问this(或任何)页面.
这是已编辑/相关的代码(请参见full source):-
$(document).ready(function() {
$('body').delegate('a','click',function(e) {
var hash = this.href;
if (hash.indexOf(window.location.hostname) > 0) { /* Internal */
hash = hash.substr((window.location.protocol+'//'+window.location.host+'/').length);
$.historyLoad(hash); return false;
} else if (hash.indexOf(window.location.hostname) == -1) { /* External */
window.open(hash); return false;
} else { /* Nothing to do */ }
});
$.historyInit(function(hash) {
$('#loading').remove(); $('#container').append('<span id="loading">Loading...</span>');
$('#ajax').animate({height: 'hide'},'fast','swing',function() {
$('#page').empty(); $('#loading').fadeIn('fast');
if (hash == '') { /* Index */
$('#ajax').load('/ #ajax','',function() { ajaxLoad(); });
} else {
$('#ajax').load(hash + ' #ajax',function(responseText,textStatus,XMLHttpRequest) {
switch (XMLHttpRequest.status) {
case 200: ajaxLoad(); break;
case 404: $('#ajax').load('/404 #ajax',ajaxLoad); break; // Default 404
default: alert('We\'re experiencing technical difficulties. Try refreshing.'); break;
}
});
}
}); // $('#ajax')
}); // historyInit()
function ajaxLoad() {
$('#loading').fadeOut('fast',function() {
$(this).remove(); $('#ajax').animate({height: 'show',opacity: '1'},'swing');
});
}
});
一些注意事项可能会有所帮助:-
>在默认/标准.htaccess中使用wordpress
>我仅通过JavaScript(PE)将/ links-like / this重定向到/#links-like / this
>我通过window.location.replace(addr);实现了上述目标而不是window.location = addr;
>如果需要,请随时访问my site.
提前致谢.