2014-02-12 175 views
1

這個問題有點含糊,因爲我不知道如何對它進行描述。我完全接受這可以被否決,但如果任何人有洞察力,這將是最有幫助的。網絡應用程序停止工作

我想確定它是我的網絡應用程序代碼是錯誤還是移動Web應用程序(特別是在Android設備上)的繼承性質。

我有這個網絡應用程序。

它使用asp.net,C#,JavaScript和Jquery進行設計。

我有1頁與2 divs在它。 1st div顯示登錄頁面(即用戶名和密碼)。
登錄時,此div將被隱藏,並顯示第二個div。

這第二個div'啓動'一個定時器,每隔一次又一次從我的服務器上下載一個映像。

我使用SetTimeout函數,我記得它是否沒有圖像準備下載或/和image.src已完成其onload事件。

我可以看看我的手機上的這個網絡應用程序幾個小時,它會一直工作。

然後,我註銷(即沒有定時器處於活動狀態)並顯示第一個div。

我去睡覺了。

我醒了。

我去我的Android瀏覽器。

的Web應用程序顯示登錄DIV

我登錄

一切OK。

{因此呼叫到我的服務器的工作原理}

但沒有圖像被下載。

我已經放置了一個視覺計數器來顯示我的計時器是否工作。

它不是。

我刷新頁面並重新登錄。一切再次運作。

現在,我可以接受,如果它是我的代碼,但它是Android處理Web應用程序的方式嗎?

任何建議將是盛大的。

我可以發佈此代碼,如果任何人需要看到它,。但這很簡單,我不想模糊我的問題。

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); 
       } 
      }    
     }); 
    }); 

回答

1

沒有它,很難說哪裏出了問題,但試試這個方法3代碼:

1)這是發生如果您註銷,比再重新登錄,而無需離開活動? 如果是這樣,你應該挖掘你的JavaScript更多

2)如果你註銷,把應用程序在後臺,而不是把它放到前臺,重新登錄?如果是這樣看的暫停上恢復事件的

3)這只是發生的事情,如果你退出,把應用程序在後臺離開它一段較長的時間,我會看更多的的onStop

Ë

+0

嗨,謝謝你的想法。現在我很欣賞我的JavaScript體驗並不好,但不是與本機應用程序相關的「活動」?謝謝:) –

+1

對不起我的錯裏德小姐,我只看過Web應用程序,和我想到的WebView應用程序不WebApp的低谷瀏覽器,請忽略點2和3,這將是介於1點 –

+0

嗨,這就是確定。關於1)。如果不使用我的Android隔夜}(又名長的一段時間),沒有任何活動anywahere其他Web應用程序可能是焦點或可以在後臺時纔會發生。沒有區別。就像我說的B4,劇本是很簡單的,我有錯誤處理程序無處不在:) –

1

嗯,我猜你停止超時當你登出。 所以當你再次登錄時,你再次啓動它。 但是下次登錄後,開始時可能會失敗。 我想這是你的Javascript代碼。

(...),但它是Android的處理web應用程序的方式嗎?

我猜自動鎖屏是一回事,可能會導致定時器暫停/停止。
你沒有使用你的設備過夜,所以我想它鎖定了自己。這可能會導致瀏覽器停止耗盡電量。

例如當你的屏幕鎖定時,你將無法觀看Youtube視頻。

這就是我知道這件事情。希望有所幫助。

+0

嗨,所有評論都歡迎。唯一的缺陷就是我已經測試了日誌的開啓和關閉,並且它可以工作。 '開始'功能有一個錯誤處理程序,可以捕獲所有錯誤,不會出現任何錯誤。但我真的很感激你的想法。謝謝 –