Actualización automática asíncrona usando ASP.NET MVC 3 -- jquery campo con asp.net-mvc campo con refresh campo con wmi camp Relacionados El problema

Asynchronous auto-refresh using asp.net MVC 3


1
vote

problema

Español

He escrito un programa simple que reúne cierta información de la base de datos WMI, como el uso actual de la CPU. Realice estas operaciones en el archivo HomeController, con una función de índice de ActionResult. Luego, devuelvo la vista y muestro estos resultados en la página de inicio.

Ahora, debería usar jQuery y actualizar estos valores cada 3 segundos. No quiero volver a cargar toda la página. Pero, solo estos valores que reuní de WMI.

¡Cualquier buena y simple (porque soy un nuevo novato en javascript) sugerencias?

Original en ingles

I've written a simple program that gathers some information from the WMI database such as the current CPU usage. I perform these operations in the homecontroller file, with an ActionResult Index function. Then I return the View and display these results on the homepage.

Now, I should use JQuery and refresh these values every 3 seconds. I don't want to reload the whole page. But, just these values that I gather from WMI.

Any good and simple(because I'm a complete newbie in Javascript) suggestions?

           

Lista de respuestas

9
 
vote
vote
La mejor respuesta
 

Bien, pidió una sugerencia, así que intentaré permanecer de alto nivel.

Primero, querrá implementar dos vistas:

  1. Índice: esta es su opinión que ha sido devuelta por su índice ActionResult Functon en su controlador.
  2. Estadísticas: esta es una vista parcial incluida en su vista de índice como tal:

      <div id="refreshme">     @Html.Partial("_Stats", Model.Stats) </div>   

Notará que pasé en un modelo que contiene un objeto de estadísticas. Este objeto de estadísticas se pasa a su vista de "estadísticas", que sabrá cómo hacerlo.

A continuación, querrá agregar un nuevo método de acción en su HomeController llamado, ¡lo adivino, estadísticas! Esta ActionResult solo hará la vista de estadísticas y la devolverá como HTML. También querrá establecer una bandera de [HttpGet] en él, por lo que puede aceptar solicitudes de obtención:

  [HttpGet] public ActionResult Stats(...) {     //...     return View("_Stats", Model); }   

ahora, para el lado JS:

  function refresh() {     $.get('/index/post', function(result) {         $('#refreshme').html(result);     }); } setInterval(refresh, 3000);   

Por lo tanto, los objetivos son como tales:

  1. Subir su parte que desea actualizarse del resto de la página y ponerlo en una vista parcial.
  2. Agregue un método de acción del controlador que hace que la vista parcial.
  3. Incluya esa vista parcial en su vista de índice con un contenedor envuelto a su alrededor para que pueda actualizarse fácilmente.
  4. Agregue una función JavaScript que obtendrá la última versión de la Representación del controlador y sobrescribir las estadísticas actuales en la página.

Esperemos que esto te pondrá en la dirección correcta.

 

Alright, you asked for a suggestion, so I'll try and remain high-level.

First, you'll want to implement two views:

  1. Index - This is your view that's returned by your Index ActionResult functon on your controller.
  2. Stats - This is a partial view included in your Index view as such:

    <div id="refreshme">     @Html.Partial("_Stats", Model.Stats) </div> 

You'll note that I passed in a Model that contains a stats object. This stats object gets passed to your "Stats" View which will know how to render it.

Next, you'll want to add a new action method in your HomeController called, you guessed it, Stats! This ActionResult will just render the Stats view and return it as HTML. You'll also want to set a flag of [HttpGet] on it so it can accept get requests:

[HttpGet] public ActionResult Stats(...) {     //...     return View("_Stats", Model); } 

Now, for the JS side:

function refresh() {     $.get('/index/post', function(result) {         $('#refreshme').html(result);     }); } setInterval(refresh, 3000); 

So the objectives are as such:

  1. Strip out your part that you want refreshed from the rest of the page and put it in a partial view.
  2. Add a controller action method that renders just that partial view.
  3. Include that partial view on your Index view with a container wrapped around it so it can be easily updated.
  4. Add a javascript function that'll get the latest view rendering from the controller and overwrite the current stats on the page.

Hopefully this will get you going in the right direction.

 
 
       
       

Relacionados problema

3  Cómo comprobar si un CD-ROM es real o virtual  ( How to check if a cd rom is real or virtual ) 
Estoy usando la siguiente consulta WMI para enumerar las unidades de CD / DVR en mi máquina: select * from Win32_CDROMDrive Pregunta: ¿Hay alguna forma...

3  ¿Cómo cambiar los permisos de archivos con WMI?  ( How to change file permissions with wmi ) 
Quiero hacer el equivalente de lo que se describe aquí de un guión. Básicamente, quiero tomar la propiedad del archivo y configurar los permisos al propieta...

0  Retrive Lista de hardware y software instalado en la máquina remota en LAN. ¿Qué DLL para usar?  ( Retrive list of hardware and software installed on remote machine in lan which ) 
Estoy tratando de recuperar una lista de todos los hardware como Administrador de dispositivos y softwares instalados como en "Agregar y eliminar pro...

2  Nombramiento de especificaciones para los contadores de WMI  ( Naming spec for wmi counters ) 
¿Existe una especificación para analizar los nombres de los contadores de rendimiento de WMI? Los nombres estándar se ven como ' xxxx yy yy zzzz zzz', pero ...

4  ¿Cómo ejecutar un archivo por lotes en una computadora remota?  ( How to execute a batch file on a remote computer ) 
Me gustaría poder ejecutar un archivo por lotes en una computadora remota después de una compilación, donde la salida de compilación y el archivo por lotes es...

5  ¿Hay un paquete redistribuible de WMI?  ( Is there a wmi redistributable package ) 
He estado trabajando en un proyecto que accede al WMI para obtener información sobre el software instalado en la máquina de un usuario. Hemos estado consultan...

1  Añadir registros DNS de .NET APP  ( Add dns records from net app ) 
Estoy trabajando en una aplicación web que adquirimos de otra compañía. Cuando se "registre", se supone que el servidor cree un alias DNS usando WMI. Se estre...

0  Al consultar la clase Win32_NTLOGEGVENT de WMI con WQL, ¿la propiedad generanedada se basa en la hora local de la computadora o GMT?  ( When querying the win32 ntlogevent class from wmi with wql is the timegenerated ) 
Estoy escribiendo un servicio de C # Windows que está haciendo algo de batir a través del evento en algunos controladores de dominio. Algunos de ellos son Win...

0  C ++, WMI API devuelve VT_NULL, WMIC devuelve VT_BSTR en Windows XP  ( C wmi api returns vt null wmic returns vt bstr on windows xp ) 
Estoy usando el siguiente fragmento en C ++ para consultar win32_tcpipprinterpintort con WQL: [ cut WMI init part, initialize security and stuff ] IWbem...

3  ¿Cómo encontrar iPAddress de una máquina virtual programáticamente del hipervisor?  ( How to find ipaddress of a virtual machine programmatically from hypervisor ) 
Estoy usando el proveedor de Hyperv WMI para actualizar la configuración / configuración de la máquina virtual (como Ware Hard Ware, discos, etc.) ¿Cómo p...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos