< a id =“aboutTab”href =“javascript:void(0);”的onclick = “约();” >关于< / a>
当我们点击关于链接..在div中加载about.html时,这是函数
function(about){$('#idx')。load('about.html'); }
我希望它应该缓存或其他什么,所以当我下次关于我们时,它不应该再次加载该页面。
目前,每次点击该链接时都会调用about.html。我可以只加载一次,如果已经点击了该链接,它应该获得缓存,以便下次不再加载。
About.html是一个非常繁重的页面,因为它从xml读取数据。所以,我想只加载一次,如果用户再次点击该链接就使用缓存。
请建议。
答案 0 :(得分:1)
查看pjax:http://pjax.heroku.com/。一旦PJAX加载到您的页面上,您就可以执行此类操作(来自readme):
<div id="main"><!--content will be loaded here--></div>
<a href='/explore' data-pjax='#main'>Explore</a>
$('a[data-pjax]').pjax()
答案 1 :(得分:1)
使用.one
$("#AboutUs").one("click", function() {
$(this).load('about.html');
})
替代方法(点击具有ID的链接将从about.html加载html)
$("a#linkID").click(function (e) {
$("#AboutUs").load('about.html');
$(this).unbind(e.eventType);
});
请注意:
请参阅 .load
由于浏览器安全限制,大多数“Ajax”请求都是主题 同源政策;请求无法成功检索 来自不同域,子域或协议的数据。
答案 2 :(得分:1)
(function() {
var cache = {},
aboutUsEl = $('#AboutUs');
var aboutUs = function () {
if (cache['aboutus']) {
aboutUsEl.html(cache['aboutus']);
} else {
$.get('about.html')
.done(function(response) {
cache['aboutus'] = response;
aboutUsEl.html(response);
});
}
};
aboutUsEl.click(aboutUs);
})();