gpt4 book ai didi

javascript - 在 PhoneGap - Jquerymobile 应用程序上多次触发事件(甚至循环)

转载 作者:行者123 更新时间:2023-12-03 16:28:54 27 4
gpt4 key购买 nike

我有一个使用 Phonegap 和 JqueryMobile 开发的应用程序。

此应用程序在 iOS、Android 和 iPhone 中的总下载量约为 15.000 次。代码在所有平台上都完全相同。

偶尔后端服务器重载,当我查看日志时,我发现一个用户发送了数百次相同的调用。 (用户是真实的人,我已经和他们讨论过这个问题,所以它不是机器人或类似的东西)

对我来说,似乎点击事件正在循环或服务器调用正在循环但无法检测原因。

15,000 名用户中有 3 名发生过这种情况(据我所知),并且这些用户在问题发生之前已经多次使用该应用程序。该问题发生在 Android 和 iOS 上,所以在我看来,jquerymobile/javascript 方面存在问题。

知道是什么导致了这个问题吗?

最佳答案

我想说的是,首先要注意 js/DOM 生成中的设计问题。

当你绑定(bind)一个已经绑定(bind)过的事件时,jquery会再次绑定(bind)它而不检查那个事件是否已经绑定(bind)过。如果你想附加多个,那很好同一事件的事件函数。

无论如何,有几种方法可以解决这个问题。一种是在绑定(bind)之前取消绑定(bind)事件,使用 $.off() ,例如。

$("#myDiv").off("click").on("click", function(e) {
// ...
})

另一个是检查事件函数内部是否已经触发了事件,例如:

$("#myDiv").on("click",function(e) {
if(e.handled !== true) {
alert('Clicked');
e.handled = true;
}
})

您可以找到更多解决方案及其优缺点 here

关于javascript - 在 PhoneGap - Jquerymobile 应用程序上多次触发事件(甚至循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21120874/

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