history.js无限事件循环

时间:2014-02-01 22:43:10

标签: jquery history.js html5-history

我遇到history.js

的问题

https://github.com/browserstate/history.js/

第3170行中的事件onload处于无限循环

这个事件是什么以及触发它的是什么?!

仅在Chrome中我遇到此问题

/**
         * Bind for Saving Store
         */
        if ( sessionStorage ) {
            // When the page is closed
            History.onUnload = function(){    // <----- this is triggeren in a loop
                // Prepare
                var currentStore, item, currentStoreString;

                // Fetch
                try {
                    currentStore = JSON.parse(sessionStorage.getItem('History.store'))||{};
                }
                catch ( err ) {
                    currentStore = {};
                }

enter image description here

1 个答案:

答案 0 :(得分:0)

在我评论了您的问题之后,我找到了解决方案。 History.js报告了有关此行为的问题here

主要原因是setInterval调用,由于IE8限制而导致调用。代码中的问题是它在每种情况下都适用,不仅适用于IE8。

直到有时在主项目中修复,这个不必要的轮询可以通过在#1992行编辑History.js的代码来修复。

// For Internet Explorer
if (History.isInternetExplorer() && History.getInternetExplorerMajorVersion() < 9) {
  History.intervalList.push(setInterval(History.onUnload, History.options.storeInterval));
}