我已经成功实现了jQuery BBQ插件来构建快速原型,但是我遇到了一个与我的特定设置有关的小问题:
其中一个页面“ #catalogue”包括一个网格,这些网格由使用hashran(在来自另一页面时)触发的函数“ randomItems()”随机生成。
然后,用户单击网格中的任何这些项目以查看#detailspage。
在单击浏览器的“后退”按钮后,我希望用户查看#catalogue页面(效果很好),但可以防止该页面在加载时生成一组新的随机项目(因此,请保留最后显示的所有项目)。
有没有办法知道用户已经按下了后退按钮,所以在那种情况下我不会触发“ randomItems()”函数?
最佳答案
您需要将randomItems()
中的项目放入缓存中:
// save your records here in the cache
var items = [];
$(window).on('hashchange', function(){
var page = window.location.hash.replace(/^#/, '');
// check first if items has already records in it and check if page is #catalogue
// if not then call randomItems()
if (page === 'catalogue' && items.length === 0) {
items = randomItems();
}
// your code here follows
});