使用hashchange事件时速度缓慢

问题描述:

我有一个网站,使用ajax进行分页,页面系统根据hashchange事件工作,每当我想移动到另一个页面,我调用一个函数,将散列更改为页码,当哈希值改变时,hashchange事件被触发并调用一个函数来获取页面数据。
但是,除了一件事情,它可以很好地工作,如果我改变页面超过3-4次,页面将不会响应并且会崩溃,我在谷歌浏览器的检查元素中检查网络点击,以及我看到的是什么时候我改变页面ajax请求的数量将翻倍,传输的数据也会翻倍,这会导致内存泄漏。
最后,我试着做了没有hashchange的分页事情,看看问题是否会得到解决,它的工作方式就像魅力。
你可以请直到我做什么?在此先感谢
使用hashchange事件时速度缓慢

hashchange事件

$(window).bind('hashchange', function() { 
search(0); 
}); 

changehash功能

function ChangeHash(p) { 
window.location.hash = p; 
} 

页按钮

$('#Pages').append("<button type='button' class='btn btn-default"+active+"' Onclick=\"ChangeHash(" + a + ")\">" + a + "</button>"); 

你给不显示它的代码,但最可能发生的事情是每次xhr后,您正在重新运行绑定呼叫

因此,您是无意中的双重,三重,四重绑定事件 - 这正是网络日志显示的内容:haschange正在运行2,3,4,5 ...次,直到浏览器崩溃。

为了避免这种情况,确保

$(window).bind('hashchange', function() { 
search(0); 
}); 

只运行一次。