[Powered by Google Translate] [Seminario: JQUERY] [Vipul Shekhawat, la Universidad de Harvard] [Este es CS50.] [CS50.TV] Si usted está siguiendo a lo largo de en su casa, usted puede tener acceso a mis diapositivas en línea por ir a este enlace. Es TjjRWj, en bit.ly. También puede ir a la URL directamente, que es cloud.cs50.net / ~ vshekhawat, que es mi nombre, y jQuery. Yo le animo a seguir adelante si usted está viendo en casa, y si estás aquí, también, porque se trata de una presentación muy interactiva. Así que hoy voy a hablar de jQuery, y la primera pregunta es, lo que es jQuery? Este año, yo sé que ustedes no han cubierto JavaScript con tanto detalle como lo hemos hecho en los últimos años. JavaScript es, primero de todo, sólo un lenguaje del lado del cliente que se utiliza para ejecutar secuencias de comandos y código en la máquina de cada usuario. Así que tienes un servidor que proporciona las páginas web a las personas, pero es posible que desee hacer cosas en su máquina, pedir a su equipo para que envíe peticiones al servidor cada 30 segundos o algo así. Usted puede hacer que el uso de JavaScript. JQuery sólo proporciona una mayor funcionalidad en la parte superior de JavaScript que hace cosas extra para usted. Si nos fijamos en el contenido en la parte superior, que describe algunas de las cosas que eres capaz de hacer. Así que en general, fue creado en enero de 2006. Fue concebido en primer lugar en agosto de 2005. Ha estado por ahí durante un par de años, y es realmente parte del nuevo movimiento de la Web 2.0 que ha hecho de Internet tan brillante. Es la biblioteca de JavaScript más utilizado. Más de 19,6 millones de sitios web están utilizando, y el uso sigue aumentando según builtwith.com, que, al parecer, en el último año, acaba de ser constante aumento bastante lineal. Entre los 10 millones de sitios más, todavía hay - alrededor del 40% de ellos están actualmente utilizando. Facebook utiliza, un montón de otros sitios web usan actualmente. Usted puede mirar en esas estadísticas por su cuenta, si lo desea. Y se podría decir que es de fiar, ya que tiene una base y 13 miembros de la junta, junto con un equipo de 20 personas que trabajan en él de forma regular. Así que es muy utilizado, tiene una. URL org, es elegante, tiene spin-offs para otras cosas, así que es una gran cosa. ¿Por qué utilizarlo? JQuery es muy ligero. Eso significa que no es un archivo enorme. Puede descargar el archivo minified, que es sin todos los espacios en blanco y comentarios, y está a sólo 32 kB. Así que es fácil de simplemente tirar en su página web y acaba de empezar a usarlo. También está escrito de manera muy eficiente, por lo que no ocupa mucho - que no ralentiza su sitio web mucho más cuando se utiliza. Esto permite implementar cosas que antes eran inviables. Hay algunos aspectos de funcionalidad, como la creación de animaciones, que normalmente sería muy, muy difícil de hacer. Pero en jQuery son en realidad muy simple. Y hay algunas cosas que son molestas para hacer, posible en JavaScript, como el envío de una petición POST, pero para enviar una petición a un servidor, usted tiene que escribir cinco o seis o siete líneas de código. Ahora sólo se puede hacer de una sola línea de código, en una sola llamada de función. Eso realmente simplifica muchas de las cosas que usted está haciendo. Y todos los niños frescos lo están utilizando. Por eso, yo me refiero. En mi proyecto final del año pasado, que es news.whrb.org, que es para la estación de radio, he creado este blog que acoge a todos los espectáculos que hemos hecho y los archivos MP3 para ellos. Usted puede navegar a través de los últimos shows, y todo se hace usando jQuery. Se puede decir porque de todas estas animaciones, esencialmente. Así que si usted tiene - si va a crear un nuevo post, ves estos pequeños slideDowns, eso es todo hecho con jQuery. Y esta caída - de modo que tipo de cosas se hace todo usando jQuery, y usted no tiene que recargar constantemente la página para navegar el sitio. Otra cosa interesante que se hace uso de jQuery es esta presentación. Estoy usando esta cosa de código abierto llamado scrolldeck, que alguien escribió en la parte superior de jQuery. Si realmente se ven en la fuente, se puede ver que que están usando este signo de dólar, símbolo del dólar se utilizan en jQuery para indicar que una función es una función de jQuery. Así que están definiendo un contenedor en la parte superior de jQuery que le permite hacer una presentación de este tipo, y se puede ver que aquí están incluidos en el archivo jQuery original, que es lo que tendrá que incluir si desea utilizar jQuery en sus propios sitios web. Tocar en eso, ¿cómo se instala? Usted puede ir a jQuery.com y descargar el archivo, agregarlo a un directorio web e incluirla. Así que en la parte superior, en la etiqueta de la cabeza de su archivo HTML de su archivo HTML principal, sólo tiene esa línea de código con la versión correcta de la versión de jQuery que utiliza. Puedes descargarlo, vaya a jQuery.com, haga clic en "jQuery descarga", y ya lo tienes. Eso es todo. Y, de hecho, podemos echar un vistazo a lo que parece. Si hace clic en descargar, jQuery es esto. Es sólo un gran archivo JavaScript que hace todas las cosas de la magia para usted. Esta es la versión miniaturizada, que no se puede leer en absoluto. También se puede ver en la versión de desarrollo, que se puede leer pero sigue siendo muy, muy largo. Es un montón de cosas ahí. También se puede vincular a la versión alojada de Google de la misma. Así que voy a permitir que sólo se basan en Google para proporcionarla. Ellos proporcionan cada versión de la misma, disponibles en todo momento. Así que es probable que pueda confiar en Google de ser el anfitrión para usted. O puede enlazar a propia última versión de jQuery. Tienen una URL que está siempre actualizado a la última versión. Es jQuery-latest, y hay un problema con eso, que es que si el jQuery actualizado y algo de la funcionalidad anterior habían vuelve retrógrado o en desuso, puede que no - puede empezar a no conseguir el apoyo más. Así que si usted escribe un sitio web utilizando la versión 1.8.2, por la versión de tiempo de 2,7 salga algunas de las funciones que ha escrito ya no funcionan. Así que es mejor que sólo tiene que descargar el archivo 32 kB, lo puso en su página web, y que va a trabajar para siempre. Voy a seguir adelante y comenzar a hablar acerca de la funcionalidad real de jQuery. Lo primero es selectores. Esto es lo que jQuery se concibió inicialmente para proporcionar. Y usted puede hacer clic en la documentación que mirar la documentación detallada de los selectores que voy a estar cubriendo. La idea detrás de selectores es que usted puede seleccionar los elementos HTML de una página. Elementos de una página tienen IDs y las clases y otros aspectos que identifican a los mismos. Hay también -; son de diferentes órdenes. Parte del tiempo que están anidados unos dentro de otros. JQuery le permite crear consultas simples que recuperan elementos de la página. A continuación, puede manipular estos elementos con funciones de jQuery, que es la sección de manipulación vamos a llegar a más tarde. Usted puede cambiar el HTML, cambiar el CSS, también se puede animar y agregar funciones que se activan en determinados eventos. Así, por ejemplo, si hace clic en él algo, quiere que algo suceda, usted puede hacer que el uso de jQuery también. Y hay un gran número de formas de seleccionar elementos. La mayoría de ellos nunca he usado, pero hay los básicos, los cuales son muy importantes. El selector de elementos, por ejemplo, si acaba de seleccionar nada que es un div - En realidad tengo el código abierto para la presentación de diapositivas. Así, por ejemplo, aquí está la primera diapositiva. Aquí tenemos un div. Si realmente seleccionamos todos los divs en la página, sólo nos dará una matriz de todos los divs que existen en este archivo. El selector de ID le permite seleccionar cualquier cosa con un ID dado. Así que si, por ejemplo, esto tiene el ID "qué" y si lo hicimos con # lo que en lugar de un documento de identidad, sería simplemente devolver una matriz que tiene un solo elemento, y es que los elementos de la página. También podemos combinar selectores de esta manera por tener seleccionar sólo las cosas con IDs que son divs. Así que sí. Sólo seleccione divs que tienen ese ID. Para la clase que acaba de utilizar un punto, que es el mismo que el CSS. Descendiente también funciona, así que si usted tiene cierta clase y se ha anidado elementos dentro de ella - así, por ejemplo, hay una cierta clase y tiene una etiqueta de ancla para enlazar a otra página, puede utilizar esta sintaxis para recuperar el vínculo. También puede seleccionar varias cosas a la vez, sólo separarlas por comas, utilizar cualquier selector desea, y usted seleccionará todos ellos a la vez, en una sola matriz. Y luego está también la no selección, así que usted puede seleccionar todos los divs que no tienen alguna clase específica. Y eso es sólo una forma útil de obtener una introducción a cómo funciona esta selección. Te voy a mostrar algunos ejemplos concretos en un segundo. Selectores avanzados son - estos son sólo algunos ejemplos. Hay docenas de ellos, pero si desea seleccionar todas las etiquetas de imagen dentro de algún elemento, que acaba de hacer: la imagen. Si desea seleccionar los elementos, incluso, por ejemplo, si hay 20 de ellos, que desea seleccionar 0, 2, 4, 6 y así sucesivamente, que haces: también, o también puedes hacer: extraño. Estos son selectores de seudo, lo que significa que en realidad calculan cada otro elemento en lugar de ir y seleccionando todos ellos. Usted puede también - cada elemento puede también tener atributos específicos. Así, por ejemplo, la clase = centro es también un atributo. Por esta etiqueta de ancla, href, hipertexto referencia, es un atributo también. Así que usted puede seleccionar algo que se vincula a una página específica o simplemente - es muy general. Usted puede seleccionar cualquier cosa con cualquier atributo que desea. Y luego, también, atributo contiene. Si, por ejemplo, desea seleccionar todos los elementos de entrada que tienen la palabra "paso", como el nombre de ellos, si una página tiene un bloque de texto de entrada que se llama "password", eso sería una forma de poder seleccionar esa. Y hay muchos más. Usted puede seguir adelante y mirar la documentación y ver ejemplos concretos de cómo funciona. El siguiente paso es la manipulación DOM. Después de seleccionar los elementos, vamos a querer realmente hacer cosas con ellos. Hasta ahora no hemos visto eso en absoluto, pero si nos fijamos en la documentación, no hay realmente mucho que pudiéramos hacer. En este punto, vamos a seleccionar los elementos de esta presentación y manipularlos utilizando jQuery. Debido a que este se lleva a cabo usando jQuery, tenemos acceso a la biblioteca jQuery, y podemos usar esas funciones dentro de este código. Una de las cosas útiles que usted puede no saber acerca es la consola. Y Google Chrome es lo que estoy usando. Puede pulsar alt comando J o alt de control J para abrir la consola. En Firefox Creo que es el comando de cambio de K o de control de cambios K. En Safari tienes que ir a cambiar algunos ajustes. Hay un enlace si desea hacerlo, pero yo recomiendo conseguir Chrome o Firefox. Así que vamos a abrir la consola, que está aquí abajo. Esto le permite, básicamente, sólo hacer lo que quieras. Así que usted puede simplemente escribir en crear una variable llamada x, x = 5, vamos a ver lo que x + 2 es. Incluso se puede hacer algo como CS + A ver, x + 45, que será CS50. Usted sólo puede hacer algunas cosas típicas de JavaScript. Pero también se puede hacer jQuery aquí. Así que echemos un vistazo a este primer aspecto aquí. Vamos a crear una variable llamada HTML, que es una cadena. Tiene una etiqueta de párrafo en el mismo, que se llama un texto nuevo. Así que tenemos este código HTML, es un texto nuevo, en las etiquetas de párrafo. Ahora que realmente queremos para agregarlo a la página. Lo configuro para que el código HTML para este párrafo, este título aquí, es append ID. Si seleccionamos append ID y luego agregar a la misma la variable HTML que acaba de crear, que se sumará que el HTML al final, justo después de esta etiqueta de párrafo. Así que si lo hacemos - que elegimos este párrafo, y que hemos llamado la función append con la variable HTML Acabo de añadir, que se sumará este nuevo texto a la derecha allí en la página. También podemos anteponer, lo que significa que va a ir antes, a principios de ese elemento. Así que hay algo de texto nuevo en el comienzo y después. Puedo seguir adelante y refrescar para deshacerse de estas cosas sólo lo que he hecho. Pero eso es un ejemplo de cómo se puede utilizar el Prefijo y Sufijo métodos para manipular cosas en la página, añadir un poco de HTML. También puede cambiar de clase. De nuevo en este archivo de estilo, he creado esto para la clase de victoria que tiene el color del texto rojo, un poco de color de fondo, y una sombra de texto. Se ve horrible, pero en realidad se puede - Este párrafo corresponde a ID de clase. Así que puede agregar la clase por la victoria. Puedo ejecutar esta en la consola, y que va a añadir esa clase, y ahora se ve horrible, como se esperaba. El CSS automáticamente se aplica a las clases que usted - si hay CSS para una clase, automáticamente se aplica si cambia la clase de un elemento. Entonces podemos simplemente eliminar usando la clase remove. Así que si usted tiene algunas clases predefinidas como el rojo o destacado, y desea aplicar aquellos a los elementos, usted no tiene que hacer todo el estilo CSS cada vez. Usted puede añadir la clase a un elemento, y luego se convertirá automáticamente - que se verá de forma automática apropiado para esa clase. También podemos quitar las cosas, así que voy a seleccionar todos los divs en la página y eliminarlos. ¿Qué es eso va a parecer? Se va a mirar como si nada, así que en realidad es nada izquierda. Mi presentación se ha ido. Puedo refrescarse y traerlo de vuelta, por suerte, porque acaba de publicarse una vez, pero eso es un ejemplo de la eliminación, si quieres destruir completamente un elemento de la página. También puede sobrescribir, y yo voy a seleccionar todas las etiquetas de párrafo en la página y van dentro de ellos y reemplazar cualquier texto que tienen en ellos con sólo la palabra "prueba". Si lo hace, se le reemplaza cada párrafo en la página con esta prueba. Sip. Todos están reemplazados por pruebas. Así que eso es un ejemplo de acceso al texto y escribiendo sobre ellos. También puede recuperar la información, y esto es genial para los campos de entrada. Si usted tiene un cuadro de entrada que la gente está escribiendo cosas en, la gente está escribiendo cosas en él, Aquí seleccionamos la entrada, cualquier etiqueta de entrada con un tipo de texto. En este caso, sólo hay un cuadro de entrada de toda la presentación, por lo que sólo tendremos que seleccionar el primero, y luego llamamos a la función val en él. Que devuelve el valor, y por un cuadro de entrada, el valor es lo que pasa a ser en su interior. Así que si hacemos esto, simplemente devuelve las cosas cadena. Y si llamamos de nuevo después de haber escrito más cosas, se convierte en más cosas. Esa es una gran manera de tener acceso a los elementos de un cuadro de entrada y, a continuación, comprobar, se trata de una dirección de correo electrónico válida, es esta una fecha válida, por ejemplo. Usted sólo puede recuperar cosas al instante como la gente está escribiendo, y luego comprobar si es válida, enviarla a un servidor, hacer lo que quieras con él. Y así es como se accede a lo que hay dentro de esas cajas. También puede modificar CSS directamente, así que en vez de sumar una clase que tiene algunas propiedades predefinidas, usted puede añadir cualquier CSS que desea nada. Así que echemos un selecto cuerpo, que es toda la presentación, y el color es la característica que define lo que los colores del texto. Si lo cambiamos al rojo, todo el texto de la página se volverá rojo. Podemos hacer algo como fondo de color azul, ahí vamos, es hermoso. Puedes hacer lo que quieras con esto. Usando la propiedad de CSS, que realmente se puede modificar la forma en nada se parece a cualquier hora. Lo siguiente es los efectos. Los efectos son básicamente la misma cosa que la modificación de la CSS, pero realmente ofrecen una animación adicional a ella. Así que en lugar de mostrar u ocultar algo o cambiar el color, en realidad se puede hacer animación. Aquí está la documentación, si quieres echar un vistazo a la extensa documentación para ello. Pero yo voy a cubrir los principales. Hay las propiedades ocultar mostrar y. Mostrar / ocultar ID corresponde en realidad a toda la caja, así que si me escondo, simplemente desaparecerá. Y puedo mostrar de nuevo si quiero hacerla volver. Y es hora de volver. Esto en realidad no desaparece, Yo en realidad no quitarlo de la página, que acaba de establecer la propiedad CSS de visibilidad a oculta por lo que no puede ver más. Hay también deslizarse hacia arriba y deslice hacia abajo, que le permite tener este efecto. Se desliza hacia arriba a desaparecer, y después de que desaparezca se puede deslizar hacia abajo para hacerla volver. Y ahora está de vuelta. También existe este efecto de fundido, que - fade ID corresponde a esta casilla. Si se desvanecen a cabo, entonces va a desaparecer lentamente. También puedo desaparecer en ella, y que va a volver. Usted también puede hacer fade a, que es específico para la función de fundido. Puede hacer que se desvanezca a cualquier opacidad específica que desea. Así que si usted se desvanecen poco a poco a la 0.5, que va a convertirse en un medio visible. Yo puedo hacer que se vaya a 0,1, y de nuevo a 1 para que sea plenamente visible de nuevo. Esa es otra animación que se puede hacer. Hay también los efectos de palanca. Así que voy a seleccionar el ID de palanca, lo que corresponde a esta caja, y en ese div puede llamar palanca, y si es visible se volverá invisible, si es invisible se hará visible de nuevo. Así que acabo de llamar a esta función de palanca dos veces, la primera fue lo mismo que la piel, la segunda llamada era lo mismo que un espectáculo. Y también se puede hacer esto con una palanca se desvanecen, que hace lo mismo, salvo que en realidad se desvanece. Y lo mismo con la diapositiva alternar. Hay efectos encadenados, así, lo que significa si se selecciona un elemento y sólo llamar a un montón de métodos de animación en él, si quería que se desvanecen, y después hacia abajo, y luego esconderse y luego se desvanecen en el, lo hará en una fila. Así desapareció, volvió - por alguna razón, el cuero no ocurrieron. Vamos a probarlo. Sí, por lo que se desvaneció y luego se apartó. Y hay muchos más. Usted puede utilizar la función animate para crear sus propias animaciones, que es bastante complejo, sino que le proporciona la extensibilidad infinita. Usted puede hacer cualquier tipo de animación que desee. También puede utilizar la cola para hacer cola varias animaciones a la vez. Así que si quieres algo de volar a través de la página, diapositiva de la parte superior derecha a la inferior izquierda, usted puede hacer eso, y sólo tienen un puñado de acciones que van uno tras otro. Lo siguiente que vamos a hablar es de los acontecimientos. Eventos que permiten - hasta ahora, sólo hemos sido escribir cosas en la consola y esa es una manera de hacer que esto suceda, sino en una página real, no vas a ser capaz de hacer las cosas de tipo de usuario en la consola. Usted quiere que las cosas sucedan de forma automática. Para ello, es necesario utilizar los eventos que activan en algún determinado evento ocurra. Puede consultar la documentación de todos los detalles. Así que vamos a ver. Queremos mostrar u ocultar la caja, pero ahora este botón no hace nada porque no ponerlo en práctica todavía. Voy a ir a la página HTML actual. Aquí está la diapositiva. Hay un div para la diapositiva. Tiene la clase de diapositiva. Ahí está el texto. Ahora, hay una casilla y el botón de caja. ¿Cómo podemos hacer realidad este desaparece? En primer lugar, vamos a escribir una función que hace desaparecer el ID de la caja. Esta es la sintaxis para funtion, vamos a llamarlo hideTheBox. No se necesita ningún argumento, porque no hay argumentos que se deben tomar. Podemos seleccionar el ID de la caja. Así, utilizando el jQuery seleccionar, podemos seleccionar ID de la caja, y luego simplemente hacerlo desaparecer. Vamos a hacer que se desvanecen. Si nos encontramos con esta función en la consola actual, podríamos definir esta función, podemos llamar a hideTheBox, y funciona. Pero queremos que suceda cuando se pulsa en realidad el botón. Para hacer eso, tenemos que usar un evento. Para unirse a un evento en alguna tecla específica o algún acontecimiento de acción, tenemos que seleccionar el elemento que el evento se disparará - o que activará el evento, lo siento. Así que en primer lugar, vamos a seleccionar el botón de cuadro de ID porque ese es el botón, y ahora, para ese botón, queremos crear una animación cuando se hace clic en él. Así que esta función de clic. Permite enlazar otra función a la misma. Esta función toma otra función como argumento podemos pasar a la función hideTheBox, y cada vez que se hace clic en este botón, esta función se ejecutará automáticamente. Así que esto va a funcionar si salvamos esto, voy a refrescar, y - un segundo, lo siento. Voy a corregir esto muy rápido. Okay. Eso es. Así que ahora la caja está desapareciendo cuando hacemos clic en el botón. También podemos cambiar esto a sólo fadeToggle, cambiarlo simplemente para ocultar o mostrar la caja, y esto también funcionará también, si nos refrescamos. Podemos esconderlo, también podemos demostrarlo, y que seguiremos trabajando. Otra cosa que podemos hacer es, en realidad no tenemos que definir esta función hideTheBox antes de llamar a la función de clic. Así que en lugar de definir la función y llamar hideTheBox, sólo vamos a llamarlo si esto se hace clic. Así podemos definir de forma anónima por aquí, que es una característica que JavaScript tiene. Puede definir una función, normalmente, diríamos función hideTheBox con argumentos, pero en cambio, sólo podemos decir que funciona sin argumentos, iniciar el corchete para definir la función, cerrar la llave de apertura, y luego simplemente definir la función aquí, dentro del primer paréntesis y el último paréntesis que corresponden a los argumentos de la función de clic. Así que estamos pasando en esta función, se puede copiar esta línea de código justo aquí, y que va a hacer exactamente lo mismo. Y ahora no tenemos esta función fadeTheBox azar que está sentado alrededor sin ninguna razón aparente. La función fue definida anónima, que no tiene un nombre. Sólo se ejecuta cuando se hace clic en el botón de caja. Muy refrescante, una vez más, una vez más, y se puede ver que todavía funciona. Y esa es la forma de crear eventos. Hay una gran cantidad de eventos que podemos utilizar. Voy a volver a utilizar la consola que usted acaba de mostrar cómo funcionan. Los identificadores para cada uno de estos corresponden a cada caja. Así que este cuadro es clic ID, ésta es la clave de identificación, y éste es ID ratón. Otra cosa es que hay esta función de acción, en lugar de escribirlo a cabo todo el tiempo, De hecho, me fui por delante y define esta función de acción aquí. Se hace lo mismo que la función hideTheBox. Se hace este cuadro y, o bien se desvanece hacia fuera o se desvanece él adentro Y es por eso que somos capaces de utilizarlo aquí. Así que si hacemos clic en este tecleo ID, queremos hacer desaparecer o reaparecer la caja. Es lo mismo que el botón que hemos tenido en la última diapositiva. Ahora, después llamamos a eso, podemos hacer clic sobre éste y la caja va a desaparecer, a continuación, haga clic en él de nuevo y el cuadro volverá a aparecer. Eso es bastante simple. Haga doble clic hace lo mismo, excepto que requiere un doble clic. Así que si hace clic en él una vez y haga clic en él de nuevo no pasará nada, pero si se hace doble clic rápidamente, va a desaparecer. Si hace doble clic otra vez, va a volver. Así que eso es bastante simple. Entrada de teclado es un poco raro, yo no creo que realmente funciona en este ejemplo porque la tecla, la tecla y pulse la tecla y otras acciones clave activará sin importar qué elemento se enlaza a. Por ejemplo, aun cuando até el pulsador hasta el cuerpo o algo más completo, entonces sería todavía activar no importa - no es específica. No tengo que hacer clic en esta opción y pulse una tecla para hacer nada desaparece. Esto se activa independientemente de qué elemento Estoy actualmente pulg Así que estos en realidad no funcionan en este ejemplo porque no me reconoce como entrar en la entrada a la div teclado. Pero si nos fijamos en las acciones del ratón, el primero se ciernen, y se puede hacer algo de esto con CSS. Si utiliza CSS, se pueden crear de forma que si se pasa sobre algo, entonces sus cambios de estilo. Pero el uso de jQuery puede cambiar los estilos de otras cosas también. Así, por ejemplo, vamos a llamar a la acción si el ratón sobre este div. Eso significa que si el ratón sobre ella, entonces la caja desaparecerá. Si nos alejamos de ella, el cuadro vuelve a aparecer. Si llamamos a esto y se ciernen sobre ella, la caja no desaparece, y en cuanto nos alejamos, vuelve. Si llamamos a esta función activable en el identificador de ratón, lo que corresponde a este cuadro, entonces si el ratón sobre la caja, entonces la caja desaparezca en realidad - es ser cobarde ahora, pero - si nos alejamos de ella, volverá a aparecer. En este momento es imposible por alguna razón. El ratón entre y funciones de movimiento del ratón es un tanto similar, pero ligeramente diferentes. Ratón entrar sólo se activa cuando el ratón entra en la caja, como se esperaba. Así que si usted se mueve en él, que va a desaparecer. Pero no volverá a aparecer cuando se aleje; tendrás que volver sobre él para que regrese. También está la función de desplazamiento del ratón, que activará cada vez que el ratón está presente incluso en el cuadro. Así que voy a seguir adelante, apareciendo y desapareciendo. Y en realidad es el registro - que parece que acaba apareciendo y desapareciendo, pero en realidad el registro muchas más acciones que esto, así que cuando te alejas sólo va a seguir adelante porque registra como un millar de ellos. Quizás no es un mil. Tal vez cinco. Registra más que eso. El punto es que todas las acciones del ratón, hay un montón de ellos. Usted puede leer sobre los otros, pero son un poco diferentes, y usted puede elegir la que más te necesita para cualquier propósito específico que usted está tratando de hacer. Lo siguiente que voy a hablar es de AJAX. AJAX, ya sé que no cubrimos JavaScript en tanta profundidad de este año, así que sólo voy a hablar de AJAX en general por un minuto. AJAX significa Asynchronous JavaScript y XML. Se trata básicamente de, por ejemplo, cuando estás en Facebook y te empuja a la notificación, eso se debe a AJAX se está ejecutando en su navegador web. Cada par de segundos el navegador web en realidad ir a los servidores de Facebook, pidiéndoles que, ¿tienes algo nuevo para mí, y luego se vuelve a ti. Esto le permite enviar peticiones a un servidor sin tener que cargar la página. Así que normalmente, si usted está usando PHP y una base de datos, usted tiene que actualizar la página antes de poder obtener nueva información desde el servidor. Pero el uso de AJAX, se puede tirar de esa nueva información constantemente, o tirar de él cuando hace clic en un botón o algo por el estilo. Así que esto nos permite enviar solicitudes sin necesidad de recargar la página, y podemos utilizar peticiones GET o POST. CONSIGUEN peticiones son, por ejemplo, si a Google.com in English y hacer q test =. Eso les está dando una prueba de consulta. Y eso es una solicitud GET porque está pasando en esos parámetros en la propia URL. A petición POST es como si usted les está enviando por correo postal. Es como si lo pones en una carta y lo envía fuera de ellos, pero que en realidad no ver el contenido. No son visibles en la URL. No se puede directamente escribirlo, hay que enviarlo casi en secreto. Está en un poste. Pero el uso de jQuery, puede hacer peticiones GET y POST mucho más fácil de lo que normalmente puede utilizar simplemente JavaScript llano. Puede consultar las API que utilizan peticiones GET, y también se puede comprobar la información de inicio de sesión. En la página siguiente, he creado esto, que pregunta: "¿Qué hay para comer?" mediante la API de alimentos Harvard, así que vamos a tirar eso. Esto es sólo un ejemplo de cómo se puede utilizar jQuery para hacer una solicitud GET a una API y obtener información de nuevo de ella. Así que queremos ver en el menú de hoy, y queremos ver lo que hay para el almuerzo. Esta es la URL para crear una solicitud GET en jQuery. utiliza el $. obtener la función. El primer argumento es la dirección URL, por lo que es exactamente lo que está consultando. A continuación, el siguiente argumento es una función que se ejecuta cuando la solicitud GET es completa. Así que usted envía fuera alguna solicitud al servidor, espere a que vuelva. Cuando se viene de vuelta, vas a tomar alguna acción con los datos que hay de nuevo desde el servidor. Vamos a seguir adelante y el código de esto también. No codificar esta bien, a propósito. Aquí está el TODO. En primer lugar, vamos a usar el enlace de eventos de forma que cuando se pulsa este botón, que enviamos de una solicitud GET. Y cuando esa solicitud GET regresa con algunos datos, vamos a escribirlo en esta info comida div ID. En primer lugar, vamos a seleccionar el botón ID alimentos. Cuando se hace clic en él, queremos que se haga algo. Vamos a hacer que un fuction anónima, como antes. Se puede envolver esas llaves, y al pulsar este botón, queremos enviar una solicitud GET para comprobar lo que hay para comer. Para ello, simplemente podemos escribir $. Conseguir. Esta es una función de jQuery, con el signo de dólar. Se tarda un par de argumentos. La primera de ellas es la URL, la segunda es la función de devolución de llamada, la función que se llama cuando esa solicitud devuelve en realidad. Vamos a construir la URL primero. Podemos obtener de la API que David escribió arriba. Vaya aquí, podemos ver que es food.cs50.net/api/1.3/menus, y luego sólo pasa en los nombres de los parámetros que desea. Así parámetro 1 es el valor 1. Parece fecha estándar, fecha de inicio, por defecto hasta hoy si no se introduce nada, y fecha de finalización también por defecto que hoy en día si no se introduce nada. Eso es lo que queremos. Queremos obtener sólo la información de hoy en día. Queremos que el formato esté en JSON. Eso es arbitraria, se puede usar cualquier forma que desee. Usted puede utilizar CSV, pero JSON es JavaScript Object Notation. Es muy fácil para JavaScript de entender lo que significa, y podemos imprimirlo más fácil de esa manera. Así que vamos a solicitar en JSON, y pedir el almuerzo vamos. Así comida = almuerzo. Así que escribir la URL, volvemos aquí. Hay menús. El primer parámetro es la salida = JSON porque eso es lo que queremos, y separar los parámetros con una "y". El segundo parámetro es - no me acuerdo. Meal. Y queremos comida = almuerzo. Puede probar esta URL, escribiendo en su navegador e ir a ella. Se le dará una salida. Es sólo un montón de cosas que hay para comer. Es en este formato feo. Queremos imprimirlo en nuestra página en un formato mejor. Así que el URL es correcto, ahora sólo tenemos que escribir una función volver a llamar cuando la solicitud tiene éxito. Esta función en realidad tener un argumento. Será datos. Los datos son lo que regresa de la solicitud GET después se hace la petición GET. Podemos hacer las llaves, aquí escribimos la función anónima que realiza, utilizando esos datos cuando tengamos la información de nuevo. Así los datos, cuando escribimos en este URL, esto es lo que los datos que va a ser similar. Va a ser esta gran cadena. Pero lo bueno es que, JavaScript puede analizarlo usando la función JSON.parse. Así que vamos a crear una nueva variable llamada de datos de análisis. Y los datos de análisis sintáctico es una matriz de objetos. Cada objeto contiene información como - bueno, vamos a echar un vistazo. Tiene una fecha, una comida, categoría, receta, todas estas otras cosas. Así que vamos a imprimir el nombre de cada uno. Vamos a repetir en toda la gama de cosas que volvamos a él, y acaba de imprimir cada uno - imprimir el nombre de cada uno. Este es un bucle. JavaScript tiene esta sintaxis útiles donde se puede crear una variable y un bucle sobre una matriz, y var i es sólo el iterador, así que en vez de tener que hacer var i = 0, yo era menos que la longitud, i + +, usted puede ver la var i en los datos analizada. En este ejemplo, los datos analizados (i) se corresponderán con el elemento actual de la matriz, el objeto real. Y queremos que el nombre de ella. Así que vamos a hacer nombre. Y la última cosa es que vamos a tener un poco de jQuery nuevo. En realidad añadirlo a la div, esta info comida div que está actualmente vacía. Así que vamos a seleccionar a eso. Vamos a usar jQuery y selecta comida info div ID o info comida ID, lo siento. Queremos añadir a esto. Si hiciéramos la prueba, por ejemplo, sería simplemente sobrescribir cada vez. Así que sólo podemos añadir esto. El elemento actual en la matriz, nos pondremos el nombre de ella, y se lo añadimos al final de la info comida div ID. Y a continuación, sólo para que se vea más limpia, también vamos agregamos un salto de línea por lo que no es todo en una sola línea. Así que si todo va bien, que debe ser bueno - en primer lugar, cada vez que se hace clic en este botón, se enviará de una solicitud GET a la URL. Cuando los datos se vuelve de ella, va a analizarlo, convertirlo en JSON, lazo sobre toda la matriz que representa los datos, y luego añadir el nombre y un salto de línea para cada línea de esta info comida ID que antes estaba vacía. Así que volver a esta página, vamos a refrescar, clic, saber - no funciona. Eso es lamentable. Y aquí es donde la depuración entra en juego Index.html, línea 1. Es interesante. Está bien, bueno, en lugar de gastar tiempo haciendo esto, yo sólo voy a tire hacia arriba el archivo hecho que tengo, que es la versión completa. No estoy seguro de cuál es la diferencia, pero sólo puedo abrir esto en su lugar. Y vamos a la AJAX, y esto debería funcionar correctamente. Eso es lo que era para el almuerzo, en ningún orden en particular, con comillas alrededor de él, así que no es el más bonito. Pero, obviamente, si estuviera haciendo esto para un proyecto final, usted desea que se vea mejor. Pero eso es sólo un ejemplo sencillo de cómo se hace la petición GET. Y si nos fijamos en el código real, supongo, estoy bastante seguro de sigue siendo más o menos la misma. Oh, me olvidé de convertirlo en una cadena, eso es todo. No, no está todavía trabajando. De todos modos, aquí está el código completo real por lo que este debe ser similar, y hace lo mismo que lo que acabo de implementar. Al hacer clic en el botón, se utiliza GET JSON para analizar automáticamente los datos. Toma los datos de nuevo de él y recorre toda la gama e imprime el - lo que sea para el almuerzo, el nombre de la misma, y añade un salto de línea después de cada línea. Así es como se utiliza la función GET. También puede utilizar POST, que yo no tengo tiempo para escribir un ejemplo de ello, pero podemos mirar la documentación. Si nos fijamos en jquery.post, se puede ver que es casi lo mismo. Usted tiene una URL, pero en lugar de pasar parámetros con - simplemente ponerlos en la cadena de la propia URL, usted tiene que pasar en esta variable de datos que es básicamente una matriz, un diccionario que asigna los parámetros a los valores. Se pasa que, y que los envía en el uso de un POST. Y una vez que tienes eso, entonces usted puede tener una función éxito que se ejecuta cuando los datos vienen de vuelta. De lo contrario, es exactamente lo mismo. Así que usando POST, es posible que desee utilizar POST, por ejemplo, si tiene un formulario de entrada deja que las contraseñas de entrada de las personas en ella, y enviar las contraseñas de a la secuencia de comandos de servidor, para comprobar en la base de datos si el usuario es válido o no. Usted puede hacer que todo el uso de jQuery en lugar de tener que actualizar la página en absoluto. Eso es lo que he implementado en el blog que he mostrado antes. Si vamos al portal extremo y cerrar la sesión, cierre la sesión, Cierre la sesión no funciona. Bueno, permítanme abrirlo en una nueva ventana. Aquí hay una contraseña, y yo iba a escribir algo al azar. No funciona, pero se puede ver que no nos en realidad tiene que actualizar la página en absoluto. El código, si quieres echar un vistazo, es todo lo disponible en aquí. Así que el código que escribí el año pasado alguna vez. Como se puede ver aquí, estamos enviando una solicitud POST. Tengo un archivo llamado login.php en la parte de atrás, que comprueba si la contraseña es válida. Los parámetros que pasamos en Son contraseña asignada a la entrada que está en esta caja de entrada actualmente. Y cuando los datos se vuelve, comprobamos. Si la información es falsa, entonces se dice contraseña incorrecta, deslice hacia abajo, y simplemente hacerlo desaparecer después de eso. De lo contrario, cargamos la página de administración. Y todo esto fue hecho usando JSON. En este número de líneas de código, puedes pasar los datos a la parte de atrás, compruebe si es correcta, compruebe si se ha conectado correctamente, y en realidad responder a ella, la reorientación de la persona a la página correcta o no dejarlos entrar y les dijo que tenían una contraseña incorrecta. Así que eso es un ejemplo de cómo se puede utilizar el poste de jQuery para enviar una petición POST a la parte de atrás, comprobar si alguien está conectado correctamente. Muy bien, así que eso es todos los ejemplos que he tenido, y todas las cosas que quería cubrir. Esas son las cosas más importantes que jQuery le permite hacer: seleccionar elementos, modificarlos mediante la manipulación DOM, puede agregar efectos, active cosas en ciertos eventos, y también hacer peticiones AJAX muy transparente y sencilla. Así que gracias por venir y ver, y si usted tiene cualquier pregunta, sólo házmelo saber. ¿Sí? [Estudiante] Antes, cuando apareciste, que tenía JSON después de la petición POST entre comillas, y me preguntaba lo que hicieron. >> Sí, ya veo. La cuestión era que, en el ejemplo que acaba de aparecer, existía la palabra JSON entre comillas alrededor de la - Voy a tirar de nuevo - en torno a la función POST. Estoy tirando de él hacia arriba para mostrar. Así que aquí está esta petición POST, y hay esta JSON entre comillas. Eso define lo que estamos esperando que la salida sea. Así que si pasamos en JSON como el tipo de datos esperado, no es un requisito, pero si pasamos adentro, entonces los datos de forma automática se analizarán como JSON. Así que no tenemos que llamar a la función de análisis JSON en él, sólo va a suceder de forma automática. Y si usted echa un vistazo a la documentación de POST, existe esta variable de tipo de datos, el tipo de datos que se espera desde el servidor. Por defecto es una conjetura inteligente que puede estar equivocado, así que usted puede dejarlo en blanco, pero es sólo el tipo de datos en la codificación que está utilizando, ya sea JSON o XML, o algo más. ¿Alguna otra pregunta? Está bien. Si usted tiene cualquier otra pregunta, no dude en enviarme un correo electrónico en vshekhawat@college.harvard.edu, y las diapositivas y el código debe estar disponible en línea muy pronto. Buena suerte con sus proyectos finales, espero que utiliza jQuery. [CS50.TV]