我使用Senna.js开发了SPA网站,效果很好!但是,我最近注意到它在离开页面时不会删除jQuery事件处理程序。因此,当我导航回我已经访问过的页面时,我会将各种功能触发两次。
我通过这样做修复了我的大部分个人代码
$("#element").off("event").on("event", etc.)
但是有成千上万行的其他人的代码也在为我的网站提供动力,我担心它们也会发射两次。
SO上的任何人是否有任何洞察或方法来处理这个问题?
您可以使用Senna的生命周期事件分离事件处理程序。例如:
var app = new senna.App();
app.on('beforeNavigate', function() {
// detach jQuery event handlers
});