gpt4 book ai didi

ios - Hashchange 导致 phonegap 应用程序崩溃?

转载 作者:可可西里 更新时间:2023-11-01 06:15:39 24 4
gpt4 key购买 nike

我在我的 phonegap 应用程序中使用 ajax 来加载不同页面的内容。我还使用 onhashchange 来启用后退按钮功能。

最初一切正常,但如果我单击 3 个不同的链接(并触发 3 个哈希更改),那么我的应用程序将完全崩溃,变得无响应,然后耗尽我的所有内存。

散列更改的代码如下,有人知道为什么它可能会崩溃/内存泄漏吗?

$('a.ajax').click(function () {
location.hash = $(this).attr('href').match(/(^.*)\./)[1]
return false
})

function hashChange() {
var page = location.hash.slice(1)

if (page != "" && window.location.hash) {
wrap.load('pages/' + page + ".html .page-wrapper", function(){
closeMenu();
})
}else{
wrap.load('pages/Welcome.html .page-wrapper', function(){
closeMenu();
})
}
}

// check for hash change
if ("onhashchange" in window) {
$(window).on('hashchange', hashChange).trigger('hashchange')
} else { // lame browser
var lastHash = ''
setInterval(function () {
if (lastHash != location.hash)
hashChange()
lastHash = location.hash
//contentScroller.scrollTo(0,0);
}, 100)
}

请注意,我在 xCode 控制台中收到以下错误,并且我正在运行 phonegap 的 2.9 版

CDVWebViewDelegate:导航在 state=1 时开始

谢谢!

最佳答案

我不完全确定是什么导致了崩溃,但我决定使用这个插件 http://benalman.com/projects/jquery-hashchange-plugin/现在一切正常

var wrap = $('#contentScroller .scroller');

$('a.ajax').click(function () {
location.hash = $(this).attr('href').match(/(^.*)\./)[1];
return false;
});

$(window).hashchange(function () {
var page = location.hash.slice(1);

if (page !== "" && window.location.hash) {
wrap.load('pages/' + page + ".html .page-wrapper", function () {
closeMenu();
});
} else {
wrap.load('pages/Welcome.html .page-wrapper', function () {
closeMenu();
});
}
});

关于ios - Hashchange 导致 phonegap 应用程序崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18849573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com