这个问题有点模糊,因为我不确定如何说出来。我完全接受这可以被拒绝,但如果有人有洞察力,那将是最有帮助的。
我正在尝试确定这是我的网络应用程序代码是否有问题或移动Web应用程序的继承性质(特别是在Android设备上)。
我有这个网络应用程序。
它是使用asp.net,C#,JavaScript和Jquery设计的。
我有1页,里面有2个div。 第1个div显示登录页面(即用户名和密码) 登录时,隐藏此div并显示第二个div。
这个第二个div'启动'一个定时器,它不时地从我的服务器下载图像。
我使用SetTimeout函数,如果没有可供下载的图像或/并且image.src已完成其onload事件,我会记得它。
我可以在手机上查看这个网络应用程序几个小时,它将一直有效。
然后,我注销(即没有计时器处于活动状态)并显示第一个div。
我去睡觉了。
我醒了。
我转到我的Android浏览器。
网络应用显示登录div
我登录
一切都好。
{所以对我的服务器的调用工作}
但没有下载图片。
我已经安装了一个可视计数器来显示我的计时器是否正常工作。
不是。
我刷新页面并重新登录。一切都有效。
现在,我可以接受,如果它是我的代码,但它是否像Android处理网络应用程序一样?
任何建议都是盛大的。
如果有人需要查看,我可以发布此代码。但这很简单,我不想模糊我的问题。
CODE#
在DIV 1中
<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>
在DIV 2中
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);
}
}
});
});
答案 0 :(得分:1)
好吧,我猜你在退出时停止了超时。 因此,当您再次登录时,再次启动它。 但是下次登录后开始可能会失败。 我想这肯定是你的Javascript代码。
(...)但这是Android处理网络应用的方式吗?
我想自动锁定屏幕是一回事,可能导致计时器暂停/停止。
你没有在晚上使用你的设备,所以我猜它锁定了自己。这可能会导致浏览器停止耗尽电池电量。
E.g。当您的屏幕锁定时,您将无法观看Youtube视频。
这就是我所知道的。希望有所帮助。
答案 1 :(得分:1)
如果没有代码,很难说问题出在哪里,但尝试这三种方法:
1)如果您注销,是否会发生这种情况,而不是在不离开活动的情况下再次重新登录? 如果是这样,你应该深入挖掘你的javascript
2)如果您注销,将应用程序置于后台,而不是将其置于前台,重新登录,是否会发生这种情况?如果是这样,请查看恢复活动暂停
3)只有当您退出,将应用程序置于后台并将其保留更长时间时,才会发生这种情况,我会在onStop中查看更多内容
电子