2016-08-04 72 views
0

我正在一個JavaScript定時器..工作正常,但我想更新定時器值到數據庫時,用戶卸載頁面,但問題是計時器的初始值更新到這裏不是數據庫電流值 是我對JavaScript代碼計時器:javascript定時器重置,而我正在更新到數據庫

<script type="text/javascript"> 


    var t; 

    function display() { 

     if ((document.getElementById("<%=lblMin.ClientID%>").innerText == 0) && (document.getElementById("<%=lblSec.ClientID%>").innerText == 0)) { 
       //if a popup window is used: 
       setTimeout("self.close()", 1000); 
       return; 
      } 
      else { 
       document.getElementById("<%=lblSec.ClientID%>").innerText -= 1 
       document.getElementById("<%=lblMin.ClientID%>").innerText = document.getElementById("<%=lblMin.ClientID%>").innerText 
       document.getElementById("<%=lblSec.ClientID%>").innerText = document.getElementById("<%=lblSec.ClientID%>").innerText 
       t = setTimeout("display()", 1000); 
       if (document.getElementById("<%=lblSec.ClientID%>").innerText <= 0) { 
       document.getElementById("<%=lblSec.ClientID%>").innerText = 60; 
        document.getElementById("<%=lblMin.ClientID%>").innerText -= 1; 



       } 

     } 
    } 
    window.onload = display; 

頁上卸載代碼:

Protected Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Unload 
    con = New OleDb.OleDbConnection 
    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Ashu\Documents\Visual Studio 2012\Projects\Technoshine X.6\Technoshine X.6\bin\MCQ.accdb" 



    If Not con.State = ConnectionState.Open Then 
     con.Open() 
    End If 

    cmd.Connection = con 

    cmd.CommandText = "UPDATE Gamer" & " SET [TIME]='" & lblMin.Text & "',[SECOND]='" & lblSec.Text & "' WHERE [ID]='" & Me.lblUser.Text & "'" 
    cmd.ExecuteNonQuery() 

    con.Close() 

End Sub 

其不更新計時器的當前值其更新計時器初始值29 60 ...請幫助我解決我提前感謝這個問題

+0

不會讓你的方法的WebMethod與你的問題有關,但請不要這樣做:'t = setTimeout(「display()」,1000);'應該是't = setTimeout(display,1000);' – Jamiec

回答

0

unload事件在處置之前在控制生命週期中引發。由於頁面本身是一個控件,因此也會引發卸載事件。您添加到頁面的每個控件都將成爲頁面生命週期的一部分。所以如果你有一個需要做一些清理的控件,控件本身應該自己處理任何可能的清理。如果已將控件添加到頁面並正確遵循封裝原則,則不必擔心這一點。

您可以用JavaScript嘗試瀏覽器關閉或標籤關閉之前,用AJAX

window.onbeforeunload = function(e) { 
    return 'String'; 
}; 

送超值嘗試:

首先

Inherits System.Web.Services.WebService 
<System.Web.Services.WebMethod> 
Public Sub Webmethod() 
    //get time object name "date" form request from and pass to commandText 
End Sub 


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
<script> 
    window.onbeforeunload = function(e) { 
     $.ajax({ 
      method: "POST", 
      url: "/*webMethod url*/",//Url 
      data: { date: new Date() } 
     }) 
     .done(function(msg) { 
      alert("Will close"); 
      return 'String'; 
     }); 

    }; 
</script> 
+0

我對ajax沒有太多的想法,特別是如何使用ajax更新數據庫值可以幫助我使用ajax更新值 – Ashutosh

相關問題