Ver Mensaje Individual
  #3  
Antiguo 13-04-2007
[fer21unmsm] fer21unmsm is offline
Miembro Premium
 
Registrado: dic 2005
Ubicación: Lima
Posts: 627
Reputación: 19
fer21unmsm Va por buen camino
Cita:
Empezado por mamcx
Pues MUY raro.

ASP.NET es lento al cargar la primera vez pero de ahi en adelante la cosa anda bien...

Y mas en un xeon...

Ya hiciste un profiling para ver donde esta la lentitud?

Y no diste nada de info como:

- Version de .NET
- Que tipo de OS (WinXP,Win2003)
- Si es en IIS o cassini o...
- base de datos, cantidad de registros, etc...
- Cantidad de usuarios...

Y un ejemplo de codigo no caeria mal...
Gracias por contestar mamcx

Si ya hice un profile con el sql y no veo nada raro, salvo lo siguiente: al momento de seleccionar un proveedor con el dropdownlist se demora un poco desde que el cliente le envía la info(se demora como 8 segundos) porque de allí el servidor lo procesa rapido y devuelve el resultado (es decir la dirección y el telefono)

si disculpa que no haya dado la información respectiva (ya decia yo que faltaba algo más ) aquí te la doy:

- Utilizo el framework 2.0
- mi Ide es Visual Studio 2005
- Mi SO cliente es Windows XP Professional con SP2
- Mi SO servidor es Windows Server 2003 Standard Edition con SP1
- Utilizo el IIS
- Microsoft SQL Server 2000 Enterprise
- La cantidad de registro es muy poco por ahora (800)
- Un sólo usuario conectado

Aquí envío una parte del código también

ChangeDlstShipper: es una función que sirve para obtener la dirección y telefono del shipper seleccionado

Código:
Partial Class new_ship_inst_cs
    Inherits System.Web.UI.Page
    Implements System.Web.UI.ICallbackEventHandler

    Private iObjParamCount As Integer
    Private bSwValid As Boolean = False
    Private _callbackArgument As String

    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _
        Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent

        Dim UOAdress, UOPhone As String
        Dim stVal() As String
        UOAdress = ""
        UOPhone = ""

        If dlstShipper.ID = Right(eventArgument, Len(eventArgument) - InStr(eventArgument, "ª")) Then
            ChangeDlstShipper(Left(eventArgument, InStr(eventArgument, "ª") - 1), UOAdress, UOPhone)
            _callbackArgument = txtShipAddress.ClientID & "º" & UOAdress & "ª" & txtShipperPhone.ClientID & "º" & UOPhone
        ElseIf dlstConsignee.ID = Right(eventArgument, Len(eventArgument) - InStr(eventArgument, "ª")) Then
            ChangeDlstShipper(Left(eventArgument, InStr(eventArgument, "ª") - 1), UOAdress, UOPhone)
            _callbackArgument = txtConsAddress.ClientID & "º" & UOAdress & "ª" & txtConsPhone.ClientID & "º" & UOPhone
        End If

        stVal = Split(eventArgument, "ª")
        If dlst_fact_ship_inst_cs.ID = stVal(1) Then
            _callbackArgument = stVal(0)
        End If

    End Sub
Código:
    Public Function GetCallbackResult() As String Implements _
        System.Web.UI.ICallbackEventHandler.GetCallbackResult
        Return _callbackArgument
    End Function
DataManaged es una clase que he generado para manejar data, es decir operaciones con el sql como storeprocedures, consultas, etc. Para el caso del código de abajo instancio un objeto de esta clase para poder llamar al método m_addNewItem (crea los parametros y ejecuta el storeprocedure pasado como parámetro)

m_addNewItem(<nombre_del_store_procedure>, <tipo_de_comando>, <lista_de_parametros_SP>, <numero_parametros>, <bit_indica_si_tiene_parametros_de_retorno>)

"Alexim_SIConnectionString": es la cadena de coneccion

Código:
    Protected Sub ChangeDlstShipper(ByVal ItemUO As String, ByRef UOAdress As String, ByRef UOPhone As String)
        Dim ObjStProc As New DataManaged("Alexim_SIConnectionString")
        Dim stParams As String
        Dim stResult As String

        Try


            stParams = "nvDom_prin_un_opª16ª200ª2¬" & _
            "nvCod_pais_fono_tip_contacª16ª10ª2¬" & _
            "nvCod_area_fono_tip_contactª16ª10ª2¬" & _
            "nvFono_tip_contactª16ª15ª2¬" & _
            "nvIdUOª16ª10ª1ª" & ItemUO 'CType(sender, DropDownList).SelectedValue
            stResult = ObjStProc.m_addNewItem("up_GetPhoneAddressUO", 4, stParams, 5, 1)

            UOAdress = Split(stResult, "¬")(0)
            UOPhone = Split(stResult, "¬")(1) & Split(stResult, "¬")(2) & "-" & Split(stResult, "¬")(3) 'ObjParameter(2).Value.ToString & ObjParameter(3).Value.ToString & "-" & ObjParameter(4).Value.ToString

            ObjStProc.Dispose(1)
        Catch ex As Exception
            Me.lbl_error.Text = "ha surgido el siguiente error: " & ex.Message
        End Try
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'Genera script para el callback de dlstShipper
        Dim cm As ClientScriptManager = Page.ClientScript
        Dim cbReference As String

        cbReference = cm.GetCallbackEventReference(Me, "arg +'ª'+ valor", _
            "ReceiveServerData", "") ' & "Objeto"

        Dim callbackScript As String = ""

        callbackScript &= "function CallServer(arg, valor)" & _
            "{" & cbReference & "; }" ', Objeto
        cm.RegisterClientScriptBlock(Me.GetType(), _
            "CallServer", callbackScript, True)

        dlstShipper.Attributes.Add("onchange", "CallServer(document.getElementById('" & dlstShipper.ClientID & "').value, '" & dlstShipper.ID & "');return false;")
        dlstConsignee.Attributes.Add("onchange", "CallServer(document.getElementById('" & dlstConsignee.ClientID & "').value, '" & dlstConsignee.ID & "');return false;")

        Dim csOtro As ClientScriptManager = Page.ClientScript
        Dim cbOtro As String

        cbOtro = csOtro.GetCallbackEventReference(Me, "arg +'ª'+ valor", _
            "ReceiveServerDataOtro", "") ' & "Objeto"

        Dim callbackScriptOtro As String = ""

        callbackScriptOtro &= "function CallServerOtro(arg, valor)" & _
            "{" & cbOtro & "; }" ', Objeto
        csOtro.RegisterClientScriptBlock(Me.GetType(), _
            "CallServerOtro", callbackScriptOtro, True)

        dlst_fact_ship_inst_cs.Attributes.Add("onchange", "CallServerOtro(document.getElementById('" & dlst_fact_ship_inst_cs.ClientID & "').value, '" & dlst_fact_ship_inst_cs.ID & "');return false;")
    End Sub
voy a realizar otro post con el código comentado y más código, disculpen las molestias

Gracias de antemano

Saludos cordiales.
__________________
"La información tiene más valor cuando se comparte"

Última edición por fer21unmsm fecha: 13-04-2007 a las 20:17:41.
Responder Con Cita