2011-10-18 12 views
5

Al pasar el puntero sobre una etiqueta en Stackoverflow aparece una información sobre herramientas como se muestra a continuación. Esto probablemente se realiza a través de jquery.append, ya que inserta código HTML al final del documento HTML. Sobre cada asomar-evento, después de algún tiempo de retraso, una petición AJAX se hace, - probablemente a través de jquery.load (...)¿Cómo puedo obtener Stackoverflow/Stackexchange, como información sobre herramientas de desplazamiento de etiquetas?

La consulta URL enviada a webapps.stackexchange.com es, por ejemplo, _ = 1318962590136, que es una Id. dinámica

  • 1) ¿Cómo funciona esto en el cliente y en el servidor y cuáles son los beneficios?

La carga útil para la Toolip es HTML y se ve así:

<div><div class="tm-heading">...</div></div><span>.......</span> 

Al salir de la etiqueta, se elimina el HTML cargada dinámicamente. Los estilos css ya están presentes en la hoja css cargada del sitio stackoverflow.

  • 2) Ningún evento declarado inicialmente parece estar fijado al elemento <a> enlace de labrado, que constituye la etiqueta. Solo los eventos de mousedown parecen ser declarados (verificados a través de Chrome).

JavaScript-Deobfuscator está dando algunas pistas: Los detectores de eventos se añaden dinámicamente y se eliminan así ...

function (a, b, c) { 
    a.removeEventListener && a.removeEventListener(b, c, !1); 
} 

enter image description here

Respuesta

2

Mediante la actualización de los datos sólo cuando el usuario activa el vuelo estacionario evento, significa que no tiene que consultar constantemente la base de datos cada x cantidad de segundos. Este método es una pérdida total de recursos, especialmente cuando desea información extremadamente actualizada, donde puede ser tentador llamar al servidor cada segundo.

Pero una mejor manera de hacerlo (incluso mejor que el método del que habla en su pregunta) es un método llamado Comet. Comet en términos simples significa que el cliente realiza una solicitud al servidor y luego espera a que el servidor responda (es decir, cuando se actualicen los datos en el servidor). Esto significa que solo se llama al servidor cuando hay datos actualizados para enviar al cliente. Así es como (creo) Facebook funciona, por ejemplo.

Cuestiones relacionadas