我尝试了这段代码(它有效,但是当我们点击3-4次时,我的浏览器会出现问题,可能是由于变量很大):
var elements = [ "content", "menu" ];
$.get(
url,
function(data)
{
// Elements
var resp = $("<div></div>").html(data);
$.each(
elements,
function(i, v)
{
var content = resp.find("#"+v);
$("#"+v).html(content);
}
);
// Title
var regexp = /<title>(.*)<\/title>/i;
document.title = data.match(regexp)[1];
// Change URL
history.pushState({ page: url }, url, url);
// Hiding loading div
}
);
在Firefox 6.0,Chrome和Safari 5上测试...
我想我可以使用.load()函数,但我只能加载一个加载的多个div ...
以下代码无效:
var resp = $("<div></div>").load(url+" #content, #menu");
var content = resp.find("#content");
$("#content").html(content);
var menu = resp.find("#menu");
$("#menu").html(menu);
感谢您的帮助!
答案 0 :(得分:0)
打开缓存
$.ajaxSetup({
cache: true,
});
其余代码
var elements = [ "content", "menu" ];
$.get(
url,
function(data)
{
// Elements
var resp = $("<div></div>").html(data);
$.each(
elements,
function(i, v)
{
var content = resp.find("#"+v);
$("#"+v).html(content);
}
);
// Title
var regexp = /<title>(.*)<\/title>/i;
document.title = data.match(regexp)[1];
// Change URL
history.pushState({ page: url }, url, url);
// Hiding loading div
}
);
答案 1 :(得分:0)
我找到了解决问题的线索......
通过在#menu div中添加'time()'(PHP函数),我注意到有时候,jQuery没有任何理由多次加载页面:这就是为什么我的浏览器在加载过程中有些滞后......
是否有人知道如何解决此问题?
谢谢。
编辑: 我想我解决了我的问题!在我确定之前,我不会锁定这个问题:)
问题是使用多个ID,如:
<div id="content">
<div id="content">
</div>
</div>
我加载内容时现在,代码是:
$.get(
url,
function(data)
{
// Elements
//var resp = $("<div></div>").html(data); <-- EDIT
var resp = $(data);
$.each(
elements,
function(i, v)
{
var content = resp.find("#"+v).html(); // HERE IS THE CHANGE, I ADDED .html()
$("#"+v).html(content);
}
);
// Title
var regexp = /<title>(.*)<\/title>/i;
document.title = data.match(regexp)[1];
// Change URL
history.pushState({ page: url }, url, url);
// Hiding loading div
}
);