jQuery的History(和Bookmark)插件可能有bug?

我怀疑文件http://github.com/tkyk/jquery-history-plugin/blob/master/samples/ajax/ajax.js

第13和14行

load(url); $.history.load(url); 

在Firefox,Chrome和IE 8中,我看到在点击1,2或3时页面被加载两次。

是第13行,“加载(url);” 可以删除,因为$ .history.load(url)将触发使用$ .history.init()注册的函数,它已经执行了load()?

熟悉这个包的人可以证实这一点吗?

(这是我为jQuery找到的最好的Ajax历史和书签库。如果有人知道另一个好的,请告诉我们)。

是的,你可以删除load(url)调用并且它会工作,会发生的是init接受回调,如果位置哈希发生变化( 它每隔100ms检查一次 ),它将再次运行该回调。

这部分:

 $.history.init(function(url) { load(url == "" ? "1" : url); }); 

如果当前位置哈希(或插件中的appState )与之前的位置不匹配 , 那么该函数每100毫秒运行一次。 实际click处理程序中的load()调用是对此的补充,所以目前它正在立即运行,并在0-100ms之后再次运行。