Quiero reescribir el antiguo sitio web de PHP utilizando el marco de interfaz de JS. Como la web de PHP es muy grande, no es posible crear API y reescribir toda la interfaz de usuario a la vez. Por lo tanto, quiero que la nueva aplicación frontend JS proporcione un diseño básico de la aplicación (menú, encabezado, etc.) con la posibilidad de mostrar páginas antiguas renderizadas con PHP en el contenido de la página si es necesario. (Las páginas PHP se cortarían naturalmente en el menú, el encabezado, etc., ya que estas partes están en la aplicación JS).
Cargar contenido generado por PHP en un <iframe> no es una solución cómoda y segura. Prefiero cargar el contenido HTML directamente en la página con AJAX.
¿Cuáles son las trampas de este enfoque? Por ahora, estoy al tanto de estos:
$.getScript() . La lista de recursos necesarios podría incluso devolverse en la respuesta a la llamada de AJAX.history.pushState() y cargar el contenido de la página con AJAX. De la misma manera, debería reescribir la navegación programática causada por location.href = '...' .submit para cada formulario de página. El controlador debe detener el envío y enviar los datos con AJAX en su lugar (probablemente usando esta solución ). El HTML de la página de respuesta de AJAX debe mostrarse en el contenido de la página. También debería llamar a history.pushState() en caso de que la action de ese formulario fuera diferente del URI de solicitud actual o la llamada AJAX se haya redirigido a un URI de solicitud diferente.Esta solución parece ser una de las pocas posibilidades de cómo integrar la nueva aplicación de una sola página (SPA) de frontend con la antigua aplicación de varias páginas (MPA) de backend. Sin embargo, no pude encontrar ningún ejemplo recomendable de trabajo en la red. ¿Es mejor no intentar integrarse en absoluto?
(La pregunta es en gran medida independiente del marco, pero uso Vue.js con jQuery ).