我已经成功实现了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
});

09-26 19:32