- Es extremadamente grande
- Mucho código para nada
- No tiene coherencia para crearse
- Es muy MUY fácil hackar una API, cuando el cliente es de jQuery
- Es muy difícil usar plantillas en cliente
- Es muy MUY fácil de desarmar
Por esas razones no uso jQuery. Yo uso AngularJS
Que es AngularJS
AngularJs es FarmeWork desarrollado por Google que usa jQueryLite (Las funciones básicas). Se desarrolla de una una metodología diferente, esta hecho para ganar velocidad en carga de la web y que el usuario sienta que esta realmente cargando la Web. y ¿Quien la usan?
- Gmail
- hackhands.com
- Google
- +G
- Inbox (Gmail)
Como construir una Web en AngularJs?
Se desarrolla a partir del Javascript y las direcciones que se quieren construir, se usa como un cliente, y no como un renderizador. Esto quiere decir que el Front-End y el Back-End, están completamente separados, esto puede ayudar a crear App (Android, iOS, WinPhone y demás). Por que lo primero que se desarrolla es la API, en la cual se va conectar el cliente.
Angular, tiene secciones para construirse que son
- filter
- directive
- services
- controller
Los filters, son filtros para visualizar información por ejemplo, le enviamos al usuario esto
Código HTML :
<p>{{ articulo.valor | currency}} USD</p> <p>{{ '123455' | currency}} USD</p>
y se vera así
Código HTML :
<p>$ 1.00 USD</p> <p>$ 12345.00 USD</p>
Se ve mucho mas bonito, que estar creando cantidad de funciones en el servidor para mostrar bien un valor.
Las directive, son Elementos, Atributos o/y clases, del HTML, que se necesita que hagan determinada cosa o en determinado evento.
Código HTML :
<button contar></button>
en el javascript
Código Javascript :
app.directive('contar', function(){ return { link :function(scope, ele, attrs){ scope.num = 0; }, template : '<strong ng-click="num++;">{{num}}</strong>' } });
y se vera así
Código HTML :
<button contar><strong>0</strong></button>
y cada vez que clickemos sumara mas UNO !
Los service, es un método interno en el cual es la conexión con la API, y como su mismo nombre lo dice es un servicio!
Código Javascript :
app.service('miServicio', function(){ var art = []; return { todosArticulos : function(){ return art; }, articulo :function(ind){ retrun art[ind]; } }; })
entonces cada vez que pidamos "miServicio", nos devolverá ese objeto y podremos tener los artículos a la mano.
Código Javascript :
app.directive('miServicio', function(miServicio){ var articulos = miServicio.todosArticulos(); });
Y los controller, sirven para controlar pedazos o toda la web.
Código Javascript :
app.controller('miControllador', function(scope, miServicio, OtroServicio){ scope.miInfo = "palabra"; scope.contador = 0; });
En el html que se envía seria así
Código HTML :
<div ng-controller="miControllador"> <p>{{miInfo}}</p> <p ng-click="contador++">{{contador}}</div> </div>
Y el usuario lo ve asi
Código HTML :
<div ng-controller="miControllador"> <p>palabra</p> <p ng-click="contador++">0</div> </div>
Y cada ves que clickemos el el numero va a subir uno.
Como se funciona todo lo anterior?
Es simple, por seguridad el HTML y el JavaScript, están relacionados directamente con el nombre de la App, así
Código Javascript :
var app = angular.module('miApp', [ 'modulo1', 'modulo2', 'ngRoute', ]);
Y en el HTML
Código HTML :
<html ng-app="miApp">
Así cuando se intente ejecutar código desde la consola hacia angular, es muy complicado modificar la información del servidor. El HTML, se puede repetir múltiples veces, sin importar nada! de hecho ese es el objetivo. No se necesita esta buscando los elementos por que Angular se encarga de eso!
Nota: Lo mejor que pueden hacer es usar AngularJs con Browserify.