Cargar una parte parcial de la página después de cargar las otras partes

Tengo una Asp.Net .

<html>
<body>
 <div>
    <!-- Main body -->
 </div>
 <div>
    <!-- Right panel -->
 </div>
</body>
</html>

La página de arriba es la html .

Pero en realidad está en Asp.Net

Para la página principal, habrá un código detrás para completar el contenido que es un contenido normal y cargar para una página.

Pero para el panel derecho, la lógica es bastante compleja y llevará algún tiempo obtener el resultado del contenido que se mostrará.

Por lo tanto, me gustaría cargar esa parte de la página solo después de que se complete la carga de la página principal.

He tratado Asp.Net AJAX usar update panel pero no he encontrado el comportamiento correcto para hacer esto.

Entonces, estoy pensando en usar normal ajax pero no sé por dónde empezar.

Por lo tanto, estoy preguntando si hay alguna forma de hacerlo y... algún código de muestra disponible para esto.

preguntado el 04 de julio de 12 a las 04:07

2 Respuestas

Puede probar cualquiera de los marcos de JavaScript.

Si usa jQuery, podría intentar:

Establezca una identificación en su div:

<div id="right-panel">

Luego use este jQuery para cargar los datos para el panel:

$().ready(function() { $('#right-panel').load('http://path/to/your/script') } );

Consulte los documentos de jQuery para obtener más información.

Respondido 04 Jul 12, 04:07

Ejem... ¿"AJAX normal"? Microsoft AJAX es "AJAX normal". Un Panel de actualización realiza una devolución de datos asíncrona, que es muy diferente a, por ejemplo, usar un WebMethod, que es probablemente lo que desea. Todavía puede usar Microsoft AJAX para llamar a WebMethod. De hecho, el kit de herramientas de control de Microsoft AJAX tiene un extensor que le permite conectar la llamada WebMethod. Se llama DynamicPopulateExtenderDynamicPopulateExtender.

DynamicPopulate es un extensor simple que reemplaza el contenido de un control con el resultado de una llamada de método de página o servicio web. La llamada al método devuelve una cadena de HTML que se inserta como elementos secundarios del elemento de destino.

<ajaxToolkit:DynamicPopulateExtender ID="dp" runat="server"
    TargetControlID="Panel1" 
    ClearContentsDuringUpdate="true" 
    PopulateTriggerControlID="Label1" 
    ServiceMethod="GetHtml" 
    UpdatingCssClass="dynamicPopulate_Updating" />

Para que se ejecute en "carga de página", simplemente agregue este script DESPUÉS de la etiqueta ScriptManager:

<script type="text/javascript"> 
    var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_pageLoaded(PageLoadedHandler); 

    function PageLoadedHandler(sender, args) { 
        var behavior = $find('dp'); // or whatever you named it
        if (behavior) { 
            behavior.populate(''); // or pass in whatever key you want
        } 
     } 
</script>

Respondido 04 Jul 12, 04:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.