Faisons d'abord face au premier problème: 1. Vérifiez le code source de la fonction recommandée par cette fonction ci-dessous l'article
C'est en fait très simple, cliquez simplement sur la loupe pour sélectionner la recommandation.
Ce votepost (cb_entryid, «digg») est la fonction appelée par le bouton recommandé. N'est-ce pas très simple?
Le deuxième problème est de localiser l'emplacement du fichier où se trouve la fonction.
En fait, c'est aussi très simple. Bien sûr, les amis qui ne connaissent pas la console ne savent peut-être pas comment le lire.
Je tape Votepost dans la console et appuyez sur Entrée,
Le code source de la fonction s'affiche à peu près, et il y a un lien blog-Common.js? V = we8o1xrgctu07qvvwyqerqd7aa8fdjp_dgoe-crat3k1: 1 Qu'est-ce que cela signifie?
Le v = we8o1xrgctu07qvvwyqerqd7aa8fdjp_dgoe-crat3k1 est ignoré directement.
PS: Si vous voulez savoir ce que c'est, c'est en fait un numéro de version. Quant à ce qu'il fait, c'est souvent pour empêcher la mise en cache. Veuillez rechercher en ligne pour plus de détails.
Blog-Common.js: 1 signifie presque cela. .
Blog-COMMON.js est le fichier JS où se trouve cette fonction
1 est le numéro de ligne où se trouve le code.
Cliquez directement à ce lien pour passer au panneau Sources. Il s'agit du panneau source, la fonction la plus importante du débogage, et sera introduite lentement plus tard.
Mais tout le code est sur une seule ligne, comment le regardons-nous? Les 4946 caractères sont tous réduits sur une seule ligne. .
Chrome nous fournit une fonction de formatage de code, cliquez sur le bouton Pretty Imprimer ci-dessous pour formater le code.
Une fois le formatage terminé, ce sera très beau. Quant à savoir si vous pouvez le comprendre ou non, c'est une autre affaire.
Certaines personnes ne peuvent pas le comprendre, peut-être que le code a été compilé par des outils tels que UglifyJS, la fermeture de Google, etc., comme le fichier jquery.min.js.
Il se peut également que votre niveau soit trop bas et que vous ne pouvez pas comprendre le code écrit par le maître pour le moment, donc je ne peux rien y faire. Vous ne pouvez travailler dur que pour améliorer votre force.
Si le formatage suffit, ne vous inquiétez pas, si je suis ici, pourquoi êtes-vous paniqué?
Retournez au panneau de la console tout à l'heure.
Vous êtes ravi de trouver ce blog-Common.js? V = we8o1xrgctu07qvvwyqerqd7aa8fdjp_dgoe-crat3k1: 91
Le numéro de ligne est devenu 91. Maintenant, cliquez sur ce lien et vous pouvez passer à la position formatée correspondante. N'est-ce pas super pratique? .
La dernière question est de modifier la fonction pour l'invalider. C'est le plus simple, beaucoup plus simple que celui à l'heure, mais beaucoup de gens ne peuvent pas le faire fonctionner, donc je l'ai spécialement sorti et en parlé.
Tout d'abord, nous savons que la fonction recommandée pour appeler cette fonction est Votepost (CB_ENTRYID, «DIGG»), et elle est écrite directement et liée par OnClick sur HTML.
Cette fonction est donc une fonction globale qui peut être appelée partout, alors qu'est-ce que cela signifie?
Cela signifie que nous pouvons le modifier, c'est comme une variable globale, vous pouvez le modifier n'importe où, non? Alors la fonction globale doit être correcte.
Nous pouvons donc simplement le modifier en une fonction vide.
VotePost = function () {}; ou votepost = $ .noop; $ .noop est une fonction vide fournie par jQuery pour que nous soyons pratiques à utiliser.
Maintenant, Votepost est une fonction vide, donc rien ne se passera si vous cliquez sur le bouton de recommandation.
Bien sûr, il reviendra en vigueur après avoir rafraîchi la page. Nous le déboglons et le modifions sur la page. Il nous est impossible de prendre effet en permanence sans changer le code source du parc du blog.
Le débogage signifie donc le processus de recherche et d'élimination des erreurs. Si la source d'erreur est située, modifiez-la puis testez-la. S'il est faux, actualisez et modifiez-le à nouveau, il n'est donc pas nécessaire de modifier le fichier réel, ce qui le rendra irréalisable.
Le contenu d'aujourd'hui est presque tout cela. En fait, il y a peu de fonctions globales directes pour vous à déboguer, car jQuery est maintenant populaire, et diverses liaisons d'événements telles que Click et sur le positionnement du code source très compliqué.
Heureusement, j'ai déjà écrit un article et analysé ce problème plus en détail. Pour plus de détails, veuillez vous référer à "une brève discussion sur les problèmes de positionnement du code source des événements jQuery"
Je ne connais pas les autres cadres, donc je ne les ai pas analysés, mais les idées sont en fait similaires, et il doit y avoir un mécanisme de gestion des événements.
Je n'ai pas beaucoup de connaissances aujourd'hui, mais je dois le consolider moi-même, sinon je l'oublierai en quelques secondes.
Exercices après classe:
1. Analyser comment la fonction votépost implémente la fonction recommandée.
2. Déboggage dynamique et analyse du votepost. (Pour combiner les connaissances des points d'arrêt)
Je parlerai de points d'arrêt et de débogage dynamique demain. Je n'ai pas trouvé de question appropriée, donc je le ferai d'abord. Si vous avez quelque chose d'adapté qui nécessite un débogage dynamique, veuillez répondre. .