2011-12-30 16 views
5

Aggiungo JQuery alla mia pagina Web asp.net. Non riesco a capire l'ordine di esecuzione in modo complettamente. scrivo il codice foolowing per testarlo. In ogni caso, Page Load verrà eseguito prima di $ (document) .ready(), è giusto?

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="Js/jquery-1.7.1.min.js" type="text/javascript"></script> 

    <script type="text/javascript"> 
     $(document).ready(function() { 
      alert('Hell'); 
     }); 
    </script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
    </div> 
    </form> 
</body> 
</html> 



using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Default2 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      Label1.Text = "World"; 
     } 
    } 
} 
+0

Il codice lato server deve finire in esecuzione affinché la pagina venga trasmessa al client (browser). A questo punto, è possibile eseguire il codice client (Javascript). – Oded

risposta

5

Page_Load è un evento lato server. $(document).ready() è sul lato client.

T gli eventi del server che eseguono il rendering della pagina verranno sempre eseguiti per primi. Gli eventi del server possono essere eseguiti più volte in risposta a postback asincroni, ma il rendering iniziale avverrà sempre dal server al client, non viceversa.

Non esiste una relazione diretta tra i due eventi, ovvero l'esistenza di uno non richiede realmente l'esistenza dell'altro. È possibile scrivere una pagina ASP.NET che ha reso il contenuto in un flusso binario (e quindi non ha avuto eventi di documento), oppure è possibile scrivere una semplice pagina HTML senza codice server (e nessun metodo OnLoad).

1

Sì, il codice del server verrà eseguito prima poi il codice lato client .

Problemi correlati