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之后再次运行。