Cómo implementar un periódico de datos de un formulario en el fondo? Lo mismo que Gmail.forma de guardado automático
Respuesta
setInterval(function(){
var form = $('#my-form-id');
var method = form.attr('method').toLowerCase(); // "get" or "post"
var action = form.attr('action'); // url to submit to
$[method](action, form.serialize(), function(data){
// Do something with the server response data
// Or at least let the user know it saved
});
},10000); // do it every 10 seconds
Si no desea utilizar el método de la forma, pero siempre desea utilizar 'post', a continuación, utilizar:
$.post(action, form.serialize(), ...);
Y, si desea suministrar su acción propia para la copia de seguridad automática que es diferente de la acción para el real ahorra:
$.post("/autosave/comments", form.serialize(), ...);
- @ Phrogz, ¿puedes explicar en tu primer bloque de código dónde iría la validación de formularios? –
@timpeterson 3.5 años una respuesta demasiado tardía, pero: supongo que está hablando de la validación del lado del cliente y no desea enviar el formulario si no es válido. Si es así, entonces es solo código, ¿verdad? 'if (formIsValid (form)) $ [method] (...);' – Phrogz
Necesitará un ciclo temporizado en el lado del cliente que guarde el formulario cada x segundos/minutos. Una forma cruda de hacer esto sería tener una función javascript setTimeout
que recoge valores de los campos del formulario y actualiza el modelo a través de una actualización (de venta en caso de Rails) petición AJAX.
Ejemplo
Aquí está una manera cruda de hacerlo (es decir, no podría haber una mejor manera):
// repeat every 10 seconds
var repeatTime = 10 * 1000;
function updateModel(){
// get field values (using jQuery, etc.)
// make ajax request using these field values
//(make sure put parameters match model attribute names)
console.log('updated');
setTimeout(updateModel, repeatTime); // start call over again
}
setTimeout(updateModel, repeatTime);
que incluía el console.log
para que pueda probar esto en Firebug en este momento y ver que el updateModel
se ejecuta cada 10 segundos. Recomendaría usar jQuery para generar las solicitudes AJAX PUT
.
¿Puedes dar algún ejemplo? –
¿Por qué no utilizar setInterval() en lugar de setTimeout()? –
por qué no hacer esto únicamente en el cliente, utilizando una base de datos local (o lo que sea)? Eso debería reducir la complejidad, la carga del servidor y el uso del ancho de banda.
Almacenamiento permanente o por sesión, lo que sea apropiado, y puede guardarlo después de cada pulsación de tecla: no es necesario establecer setTimeout().
Sisyphus.js: corrientes de aire del lado del cliente Gmail parecidos y poco más. Complemento desarrollado para guardar datos de formularios html en LocalStorage para restaurarlos después de bloqueos del navegador, cierres de pestañas y otros desastres. Artículo http://sisyphus-js.herokuapp.com
Smashing Magazine: http://coding.smashingmagazine.com/2011/12/05/sisyphus-js-client-side-drafts-and-more/
- 1. AJAX Función de guardado automático
- 2. Guardado automático con Cocoa y Core Data
- 3. Emacs guardado automático en el buffer del interruptor
- 4. ¿Hay una configuración de configuración de guardado automático visual del estudio?
- 5. Cómo desactivo el guardado automático de un archivo vim con un sufijo ~
- 6. Aplicaciones Shoebox/Library con guardado automático y versiones en OS X Lion
- 7. Desactivar el historial de guardado
- 8. ember-data: Cómo hacer un mensaje flash de guardado/guardado
- 9. Excepción de estado guardado
- 10. Guardado/apertura de archivos Java
- 11. Código de formato automático
- 12. Procedimiento almacenado roto guardado
- 13. Caracteres de control guardado en NSJSONSerialization
- 14. Guardado previo de mangoose middleware del subdocumento no llamado en la segunda operación de guardado
- 15. Trazado y guardado gráfico R
- 16. Android - estado de la aplicación de guardado
- 17. "Automático" frente a "Automático (Inicio diferido)"
- 18. ¿Ruta de guardado predeterminada para Python IDLE?
- 19. proyecto de Visual Studio no guardado
- 20. ¿Guardado de fondo con datos centrales?
- 21. direcciones Gmaps guardado de rutas, puntos intermedios
- 22. Calidad de un JPG guardado en C#
- 23. Python's re module - ¿estado de guardado?
- 24. wget -O para ruta de guardado inexistente?
- 25. Acelerar la imagen de guardado - iOS
- 26. Registro de fábrica automático
- 27. Guardado de contenido del editor de WMD Control
- 28. clase proxy automático
- 29. Grails: ¿cómo se ejecuta el código antes de cada guardado?
- 30. Fluido NHibernate obtener ID del objeto guardado
periódicas peticiones Ajax? – fl00r
@flOOr Sí, solicitudes de ajax periódicas. –
que es una respuesta :) – fl00r