¿Por qué necesitamos ASP.NET, PHP, etc., si podemos hacer un sitio web dinámico completo usando JQuery y Ajax?

A esta pregunta le falta algo de comprensión básica y hace una suposición incorrecta. Uno no puede “hacer un sitio web dinámico completo usando JQuery y Ajax”.

La experiencia en el navegador del usuario está definida por la aplicación “front-end” que se descarga de un servidor y se ejecuta en cada navegador. Esta aplicación presenta al usuario una interfaz visual (gráfica). Siempre está escrito en JavaScript porque ese es el único lenguaje para el que un navegador proporciona un “motor de tiempo de ejecución”. JQuery es un conjunto de herramientas escritas en JavaScript que se pueden usar en un programa de JavaScript para asegurarse de que la interfaz de usuario visual refleje correctamente los valores en la aplicación front-end. Por ejemplo, si la aplicación está almacenando el nombre del usuario conectado, jQuery podría usarse para asegurarse de que ese nombre aparezca en la pantalla.

Pero la mayoría de las experiencias web dependen de grandes bases de datos. Por lo tanto, el propósito principal de una aplicación front-end (como, por ejemplo, el de Twitter o Amazon) es mostrar los datos (tweets o información del producto) que el usuario quiere ver, pero que son solo pequeños elementos de bases de datos muy grandes almacenadas en las nubes.

AJAX (o XHR) es el medio por el cual las aplicaciones front-end solicitan datos de los servidores, lo que podemos llamar el “back-end”. Los servidores interpretan la solicitud y obtienen los datos deseados de la base de datos, luego los envían de vuelta a la aplicación del navegador solicitante

Por lo tanto, lo que falta en esta imagen hasta ahora es programar el back-end , los servidores que suministran datos a las aplicaciones front-end en su navegador al obtenerlos de una base de datos, o incluso agregar contenido cargado que crea (como nuevos tweets o compras pedidos) a bases de datos. A diferencia de los navegadores que pueden usar solo un idioma, las aplicaciones “back-end” del lado del servidor pueden escribirse en muchos idiomas: Java, PHP, .Net, Python, etc., etc., incluso Javascript (en forma de node.js).

El punto es que el lado del servidor de la ecuación es completamente distinto de la aplicación “front-end” del lado del cliente que se ejecuta en el navegador. Simplemente escribir una aplicación front-end usando javascript (incluidos AJAX y quizás jQuery) no aborda el lado del servidor, que es una aplicación completamente diferente destinada a diferentes propósitos para los cuales muchos idiomas se han diseñado específicamente o se han hecho populares.

PHP, PERL, JAVA, etc. son lenguajes que se ejecutan en el servidor y realizan el trabajo de interrogar la base de datos y proporcionar la API para las llamadas AJAX para hablar.

JavaScript normalmente se ejecuta en el navegador de la computadora cliente y no tiene acceso a los datos del servidor, excepto a través de llamadas API. Tenga en cuenta que jQuery es un marco de JavaScript, no un lenguaje en sí mismo, y ahora hay marcos de JavaScript más avanzados, por ejemplo, Angular, Ember, React, por nombrar solo algunos.

JavaScript también puede ejecutarse en el servidor, normalmente en forma de Node.js y sus diversos complementos.

Node.js es menos eficiente que una API cuidadosamente construida escrita en un lenguaje de backend “normal”. Sin embargo, Node.js puede ofrecer un rendimiento igual o mejor que un programa de servidor que no se ha optimizado cuidadosamente, y a menudo es más rápido crear una implementación de Node.js.

Porque no puedes hacer un sitio web dinámico completo usando jQuery y Ajax.

Pero mucha gente lo hace, te escucho decir. Excepto que ellos no hacen eso. Lo que hacen es usar Ajax y JavaScript (usando jQuery) para hacer solicitudes a los servidores que ejecutan PHP, .NET, java, node, python, etc. Toman los datos de la solicitud y usan jQuery para mostrar esos datos. Esto generalmente hace que la página se sienta más rápida y proporciona una mejor experiencia de usuario.

Si solo está interactuando con servicios de terceros, no necesita usar un backend (esto es php y ASP.NET). Si proporciona un servicio personalizado y no solo proporciona una forma de ver los datos, debe tener su propio backend.

Honestamente, siempre debes tener un backend. La razón es bastante simple: seguridad. Cuando interactúa con un servicio de terceros, le dan una clave pública y una clave secreta. La clave pública no necesita mantenerse en secreto, pero la clave secreta sí. Puede tenerlos dentro de su JavaScript y autenticar de esa manera, pero cualquiera (sí, cualquiera) puede leerlos y pretender ser usted. Lo cual, por supuesto, es un problema. Nadie, excepto usted, puede leer su código de fondo, por lo que es el lugar perfecto para sus claves secretas. Una vez escribí una aplicación web usando angular que interactuaba con una API existente que alimentaba datos a una aplicación móvil. La idea era tomar los mismos datos y crear una página web para ellos. El único PHP que escribí fue hablar con la API para recibir un token de acceso para devolverlo al frontend. Después de eso, mi JavaScript se encargó de todo lo demás.

En primer lugar, necesitará ASP.NET / PHP / Python / Ruby / JAVA (o cualquier lenguaje de programación / script / tecnología del lado del servidor) con AJAX / jQuery. Esto se debe a que jQuery se ejecutará en el lado del cliente y no en el servidor, por lo que al hacer AJAX a través de él, necesitará jQuery para comunicarse con un lenguaje de programación / script / tecnología del lado del servidor que he enumerado en la primera línea de mi respuesta.

En Short For Dynamic Website, necesitará ASP.NET / PHP / Python / Ruby / JAVA (o cualquier lenguaje de programación / script / tecnología del lado del servidor) de cualquier manera.

Para el sitio web estático solo necesitará HTML y también puede usar jQuery.

Porque ajax y jQuery son estrictamente herramientas FRONT END que se ejecutan en el navegador. Todavía necesita algo para ejecutar en el servidor e interactuar con sistemas de archivos y bases de datos.

Dedique 5 minutos a comprender qué hacen esas herramientas antes de hacer preguntas realmente tontas.

Ajax es un término para obtener datos de forma asíncrona desde servidores de back-end a los navegadores, mientras que JQuery es una biblioteca de JavaScript que cubre dicha tecnología. Para preparar y conservar esos datos yendo y viniendo entre los navegadores y los medios de almacenamiento, por ejemplo, leyendo un conjunto de datos históricos del clima de una base de datos y luego ejecutando un modelo de predicción para informarle el clima del mañana, necesitará muchos tecnologías que se ejecutan en un servidor, que tiene más potencia en la CPU, la E / S de disco y el ancho de banda de red que el navegador de su PC. Esa es la función de ASP.NET, PHP y muchos otros marcos de back-end populares.

No puede crear un sitio web utilizando solo jQuery y Ajax y llamarlo dinámico. Desde entonces, estas dos tecnologías populares se utilizan en el lado del cliente.

Sin embargo, Ajax está incompleto sin los scripts del lado del servidor o los servicios web que recibirían una solicitud, la procesarían y la enviarían de vuelta a la llamada de Ajax.

Ahora para procesar datos en el lado del servidor, necesitará tecnologías como Asp. Red.

¿De dónde obtiene su AJAX datos?

el lado del servidor y el lado del cliente son tecnologías complementarias.