Los artículos anteriores han introducido algunos conocimientos básicos de la serie de depuración JS. Esta vez, los hermanos de código confuso te han traído puntos de ruptura JS y métodos de depuración dinámica. Los amigos que lo necesitan pueden referirse a él.
Ejercicios posteriores a la clase que dejé ayer 1. Analice cómo se implementa la función Votepost como se recomienda.
De hecho, hemos visto el código fuente. Simplemente lea el código fuente y puede saber cómo se implementa.
función votepost (n, t, i) {i || (i =! 1); var r = {BlogApp: CurrentBlogApp, PostId: N, VoteType: t, isabandoned: i}; $ ("#digg_tips"). css ("color", "rojo"). html ("cometer ..."); $ .AJAX ({URL: "/MVC/VOTE/VOTEBLOGPOST.ASPX", tipo: "post", dataType: "json", contentType: "application/json; charset = utf-8", data: json.Stringify (r), suctar: function (n) {if (n.issucess) {var i = $ ("#"#"#" + () () "_Count"); (n.Status == 500? $ ("#digg_tips"). Html ("¡Lo siento! Se produjo un error! Por favor, comenta [email protected]"): $ ("#digg_tips"). Html (n.ResponseText))}}); }Es casi así.
PD: Utilizo el código formateado de texto sublime, que es un poco diferente del resultado después de formatear en la consola Chrome.
También puede probar esta herramienta de formato en línea, el efecto es similar: JavaScript en línea Beautiful
Después de leer el código simplemente, puede saber aproximadamente que esta función tiene 3 parámetros. El primero es Postid, que es la identificación del artículo, y la segunda es la recomendación (DIGG) u oposición (enterrar).
Pero el tercero no se ha utilizado, y el valor predeterminado es falso
Mirando hacia abajo, muestra la cadena "Enviar ..." en #digg_tips, y luego envía los datos al fondo a través de AJAX.
Después de devolver los datos, si N.Issuccess es verdadero, será +1 en la ID de conteo correspondiente de Like (#Digg_Count) u Objeción (#BURY_COUNT).
Sin embargo, si el valor de Isabandoned es verdadero, cuenta -1.
Entonces podemos adivinar que el tercer parámetro se usa para revocar la recomendación u objeción. En pocas palabras, hice clic en la recomendación, pero no quiero recomendarla ahora. Puedo pasar el tercer parámetro verdadero para lograr el efecto de cancelar la recomendación.
Vamos a probarlo más tarde.
A continuación, la información de N.Message devuelta por el servidor se muestra en #digg_tips.
Si se produce un error en AJAX, es 500. Solicitará "¡Lo siento! Se ha producido un error! Por favor, comenta [email protected]" Otros estados solicitan directamente al servidor para que se devuelva el mensaje de error.
Este es el proceso general, porque esta función es simple, se puede ver de un vistazo.
Algunos nuevos amigos pueden haber preguntado, ¿cómo sabes qué valor es CurrentBlogapp, N, T, I?
Luego vamos al siguiente paso y la depuración dinámica. La depuración dinámica es un método muy útil para proyectos compilados.
Primero localice el código fuente de Votepost (dije esto ayer y no lo entiendo mucho, luego regrese y eche un vistazo primero).
Tan fácil, hemos localizado el código fuente.
A continuación, hacemos clic en el número 92 y realizamos la operación de punto de interrupción.
¿Por qué no los puntos de interrupción en la línea 91?
Debido a que la línea 91 es la parte de la Declaración de la función, no podemos establecer un punto de interrupción, podemos establecer un punto de interrupción en el código que se ejecutará por la función.
Al ver que el número de línea de la línea 91 se ha vuelto azul, lo que indica que ha habido un punto de interrupción en este lugar. Al mismo tiempo, podemos ver los puntos de interrupción caídos en la columna de puntos de interrupción a la derecha.
La columna de puntos de interrupción gestiona todos los puntos de interrupción, que se pueden redirigir fácilmente a la posición de punto de interrupción correspondiente, y se utilizará en el futuro.
Ahora que hemos terminado de configurar el punto de interrupción, haremos clic en la recomendación. . (Aunque siento que estoy engañando las recomendaciones, realmente no lo creí. Acabo de encontrar un botón para practicar).
Cuando hace clic en el botón de recomendación, sucedió algo magia. En lugar de ejecutar la función de recomendación, saltó al punto de interrupción que acabamos de bajar en el panel de fuentes de la consola.
Ahora, no solo puede ver la variable actual en la columna de variables de alcance a la derecha, sino que también mover el mouse directamente a cualquier variable para ver el valor de la variable.
La columna de variables de alcance muestra el alcance actual y su alcance principal, así como cierres.
¿No es muy conveniente? . (Las variables de alcance me ayudaron mucho cuando estaba aprendiendo cierres).
Vayamos al siguiente paso y presionemos F10 3 veces para ver algo como esto.
Cada vez que presionemos F10, ejecutaremos una declaración. Después de presionarlo 3 veces justo ahora, ejecutaremos $ ("#digg_tips"). Css ("color", "rojo"). Html ("enviar ...");
Entonces podemos ver las #digg_tips que muestran las palabras en el envío de la página.
Pero cuando presionamos F10 nuevamente, descubrimos que continuó ejecutándose todo el tiempo sin ingresar la función de devolución de llamada dentro de AJAX.
Esta es una pregunta confusa, y quiero centrarme en ello.
Para funciones de devolución de llamada como esta, especialmente asíncrono, necesitamos el próximo punto de interrupción dentro de la función de devolución de llamada.
Por lo tanto, podemos establecer un punto de interrupción en la línea 96. Ahora hacemos clic en la recomendación y aún así nos detenemos en la línea 92. Podemos presionar F8 y romperlo en la función de devolución de llamada AJAX.
Ahora, podemos depurar los datos de devolución de llamada, y también podemos encontrar que hay una cosa de cierre adicional en las variables de alcance a la derecha, que es el cierre.
Si no puede entenderlo ahora, simplemente revíselo. Esto debe introducirse en una gran cantidad de tiempo, y no se puede explicar en unas pocas palabras. De todos modos, la consola es muy poderosa.
Mientras vemos el cierre, también vemos los datos de retorno de AJAX. Es obvio que mi propiedad de Issuccess es falsa y no ha tenido éxito porque devuelve un mensaje "no puede recomendar su propio contenido".
¿No es muy interesante? ¿La depuración dinámica hace que sea fácil encontrar errores?
A continuación, experimentemos con el tercer parámetro.
Ingresamos a Votepost (CB_Entryid, 'Digg', True); y presione Entrar.
También se detuvo en el punto de interrupción de la línea 92, por lo que no depurará en esto e ingresó directamente la función de devolución de llamada AJAX de F8.
Aquí vemos claramente que cuando el tercer parámetro es verdadero, la recomendación se cancela. Al mismo tiempo, puede ver que el número de recomendación es de hecho -1, incluso si se actualiza.
Esta vez usamos dos teclas de acceso directo F10 y F8. Los presentaremos en detalle mañana. Hoy aprenderemos primero la depuración básica.
Ejercicios después de la clase: (mejorando la dificultad)
1. Consulte el botón Comentarme de Comentar para los comentarios a continuación y encuentre su evento. (JQuery Bound)
2. Depurar dinámicamente el proceso de ejecución de este evento de comentarios de presentación.
Si no sabe este ejercicio, se recomienda leer "una breve charla sobre los temas del posicionamiento del código fuente de eventos jQuery" para un análisis detallado.
Este artículo proviene de: Blog Garden Blogger’s Garlle Artil. http://www.cnblogs.com/52cik/