使用hashchange事件时速度慢

时间:2014-10-16 19:55:00

标签: ajax paging hashchange

我有一个使用ajax进行分页的网站,页面系统根据hashchange事件工作,每当我想移动到另一个页面时,我调用一个函数将哈希值改为页码,当哈希改变了hashfla事件被触发并调用函数来获取页面数据。
但是,除了一件事情之外它完美无缺,如果我更改页面超过3-4次页面将无法响应并且会崩溃,我检查网络点击谷歌浏览器中的Inspect元素,我看到的是当我更改页面ajax请求的数量将加倍,传输的数据也将加倍,这将导致内存泄漏。
最后,我试图在没有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>");

1 个答案:

答案 0 :(得分:0)

您提供的代码并未显示,但很可能发生的是 每次xhr后您重新运行该绑定调用 即可。

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

为避免这种情况,请确保

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

只运行一次。