Javascript Web应用程序停止工作
这个问题有点含糊,因为我不知道该怎么表达。我完全接受这一点,但如果有人有洞察力,这将是最有帮助的 我正试图确定是我的web应用程序代码出了错,还是继承了移动web应用程序的本质(尤其是在Android设备上) 我有这个网络应用 它是使用asp.net、C#、JavaScript和Jquery设计的 我有一页,里面有两个div。 第一个div显示一个登录页面(即用户名和密码)。Javascript Web应用程序停止工作,javascript,android,timer,Javascript,Android,Timer,这个问题有点含糊,因为我不知道该怎么表达。我完全接受这一点,但如果有人有洞察力,这将是最有帮助的 我正试图确定是我的web应用程序代码出了错,还是继承了移动web应用程序的本质(尤其是在Android设备上) 我有这个网络应用 它是使用asp.net、C#、JavaScript和Jquery设计的 我有一页,里面有两个div。 第一个div显示一个登录页面(即用户名和密码)。 登录时,此div隐藏,显示第二个div 这个第二部分“启动”了一个计时器,它不时地从我的服务器下载一个图像 我使用Set
登录时,此div隐藏,显示第二个div 这个第二部分“启动”了一个计时器,它不时地从我的服务器下载一个图像 我使用SetTimeout函数,如果没有映像可供下载或/或image.src已完成其onload事件,我会调用它 我可以在手机上看这个网络应用几个小时,它会一直工作 然后,我注销(即没有计时器处于活动状态),并显示第一个div 我去睡觉 我醒来 我转到我的Android浏览器 web应用程序显示登录div 我登录 好的 {所以对我的服务器的调用有效} 但是没有下载图像 我放了一个视觉计数器来显示我的计时器是否工作 事实并非如此 我刷新页面并重新登录。一切都恢复正常了 现在,如果这是我的代码,我可以接受,但这是Android处理web应用程序的方式吗 任何建议都是伟大的 如果有人需要查看,我可以发布此代码,。但这很简单,我不想模糊我的问题 代码# 第一组
<script type="text/javascript">
jQuery(function ($) {
$("#btnGoToLogin").click(function () {
function StartRefresh() {
try {
Start();
//display div 2
//hide div 1
}
catch (err) {
$("#divVersion").html("1# " + err);
}
}
});
});
</script>
嗯,我猜你注销时停止了超时。 因此,当您再次登录时,您将再次启动它。 但在下次登录后,启动可能会失败。 我想这肯定是你的Javascript代码 (…)但这是Android处理web应用程序的方式吗 我想自动锁定屏幕是一回事,它可能会导致计时器暂停/停止。
您整晚都没有使用您的设备,所以我想它会自动锁定。这可能会导致浏览器停止耗尽电池电量 例如,当屏幕锁定时,您将无法观看Youtube视频
这就是我所知道的。希望这有点帮助。如果没有代码,很难说问题出在哪里,但请尝试以下三种方法: 1) 如果您注销,然后重新登录而不离开活动,是否会发生这种情况? 如果是这样的话,您应该进一步挖掘javascript 2) 如果您注销,将应用程序置于后台,然后将其置于前台,然后重新登录,是否会发生这种情况?如果是,请查看“恢复时暂停”事件 3) 只有当你注销,把应用程序放在后台,让它停留更长的时间,我才会在桌面上看得更多
大家好,欢迎大家发表意见。这个论点的唯一缺陷是,我已经测试了登录和关闭,并再次登录,它的工作。“Start”函数有一个errorhandler,它捕获所有错误,但不显示任何内容。但我真的很感激你的想法。谢谢,谢谢你的想法。现在我很欣赏我的JavaScript体验不是很好,但“活动”是否与本机应用程序相关?谢谢:)对不起,我的错,里德小姐,我只看了WebApp,我认为WebView app不是通过浏览器的WebApp,请忽略第2点和第3点,它会在第1Hi点的某个地方,没关系。关于(1)。只有在我的安卓系统没有在一夜之间(也就是很长一段时间)没有任何活动的情况下才会发生这种情况。在其他情况下,web应用可能会成为焦点,也可能会出现在后台。没什么区别。就像我说的b4,这个脚本非常简单,我到处都有错误处理程序:)我看不出你在哪里给tmrInterval赋值。就像第一个想法一样,每次调用时,我都会尝试通过start函数传递间隔值,而不是使用全局值。安卓会像其他浏览器一样处理计时器,我知道很难发现错误,有时你会花上几天的时间绕圈,看不到明显的错误,但在这个过程中肯定有一个小缺陷,我们必须找到它。(我是根据自己在这里的经验说的)
function Start() {
try {
if (timer4x4) window.clearTimeout(timer4x4);
timer4x4 = window.setTimeout(swapImages4x4, 100);
}
catch (err) {
$("#divVersion").html("1# " + err);
}
}
function Stop() {
if (timer4x4) window.clearTimeout(timer4x4);
}
function setImageSrc1x1(src) {
live1x4.src = src;
Start();
}
function swapImages4x4() {
try {
serverImage1x4.onload = function () {
setImageSrc1x1(serverImage1x4.src);
};
serverImage1x4.onerror = function () {
Start();
};
GetImageStatus();
}
catch (err) {
$("#divVersion").html("2# " + err);
}
}
function GetImageStatus() {
serverImage1x4.src = url + '/Mobile/LiveXP.ashx?Alias=' + Alias + '&camIndex=' + camIndex + '&Guid=' + createGuid();
}
jQuery(function ($) {
$("#btnExitLogin").click(function () {
function ExitDiv2() {
try {
Stop();
//display div 1
//hide div 2
}
catch (err) {
$("#divVersion").html("1# " + err);
}
}
});
});