Pregunta:
Tengo un mapa que carga marcadores a través de ajax en varios / numerosos eventos de mapas. Actualmente, defino una devolución de llamada de página personalizada para mi elemento hook_menu()
que imprime mi json / js.
Dado que la devolución de llamada de mi página no devuelve ningún contenido y solo imprime contenido, Drupal no representa la plantilla completa, el menú, etc., y por lo tanto me permite devolver una página solo con mi JavaScript.
Aunque esto funciona, creo que Drupal todavía se está iniciando completamente, lo que significa que está agregando una gran cantidad de gastos generales que me gustaría eliminar.
He estado mirando el controlador de devolución de llamada de JavaScript de alto rendimiento , que se jacta de ser un "controlador de devolución de llamada de JavaScript de alto rendimiento" y que, en resumen, parece que ofrece un js.php
para complementar index.php
para dirigir sus solicitudes y personalizar / limitar / optimizar el bootstrapping que Drupal hace por defecto.
Desafortunadamente, el proyecto js aún no tiene una versión D7 ( petición de una aquí ), lo que nos lleva al principio …
¿Cuál es la forma más rápida de implementar una devolución de llamada Ajax en Drupal?
Respuesta:
hook_menu()
una devolución de llamada de página personalizada para mi elementohook_menu()
que imprime mi json / js.
Eso es lo que ofrecía Drupal 6. El framework Drupal 7 AJAX puede hacer un poco más que eso. Sí, arranca Drupal, pero también ofrece muchas funciones de forma gratuita. En resumen, puede usar ajax_deliver () como método de entrega de páginas y enviar comandos al navegador.
… Ajax se puede habilitar agregando clases a botones y enlaces. Al agregar la clase 'use-ajax' a un enlace, el enlace se cargará mediante una llamada Ajax. Cuando se usa este método, el href del enlace puede contener '/ nojs /' como parte de la ruta. Cuando el marco Ajax realiza la solicitud, lo convertirá en '/ ajax /'. Luego, el servidor puede saber fácilmente si esta solicitud se realizó a través de una solicitud Ajax real o en un estado degradado, y responder adecuadamente.
Sin embargo, si desea eludir el marco por razones de rendimiento, entonces no hay nada que le impida llamar archivos php en su módulo directamente desde javascript. No obtendrá ninguna bondad de Drupal, pero también tendrá un control total sobre la página.