首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用hashchange事件时速度较慢

使用hashchange事件时速度较慢
EN

Stack Overflow用户
提问于 2014-10-17 03:55:00
回答 1查看 58关注 0票数 0

我有一个使用ajax进行分页的网站,页面系统根据hashchange事件工作,每当我想移动到另一个页面时,我调用一个函数来将散列更改为页码,当散列更改时,hashchange事件会被激发,并调用一个函数来获取页面数据。

然而,它工作得很好,除了一件事,如果我更改页面超过3-4次,页面将不会响应并将崩溃,我检查了google chrome中Inspect元素的网络触点,我看到的是当我更改页面时,ajax请求的数量将增加一倍,传输的数据也将加倍,这将导致内存泄漏。

最后,我尝试在不使用hashchange的情况下执行分页操作,看看问题是否会得到解决,而且效果很好。

你能帮我做点什么吗?提前感谢

hashchange事件

代码语言:javascript
复制
$(window).bind('hashchange', function () {
search(0);
});

changehash函数

代码语言:javascript
复制
function ChangeHash(p) {
window.location.hash = p;
}

页面按钮

代码语言:javascript
复制
$('#Pages').append("<button type='button' class='btn btn-default"+active+"' Onclick=\"ChangeHash(" + a + ")\">" + a + "</button>");
EN

回答 1

Stack Overflow用户

发布于 2014-11-09 19:07:31

您给出的代码没有显示它,但最有可能发生的情况是,在每次xhr之后重新运行绑定调用的

因此,您无意中绑定了两倍、三倍、四倍的事件-这正是网络日志所显示的: haschange正在运行2,3,4,5……直到浏览器崩溃的时间。

要避免这种情况,请确保

代码语言:javascript
复制
$(window).bind('hashchange', function () {
search(0);
});

只运行一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26412765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档