2008-10-09 8 views
1

Je suis en train de déboguer une grande page Web complexe qui a beaucoup de JavaScript, JQuery, Ajax et ainsi de suite. Quelque part dans ce code, je reçois une requête rouge (je pense que c'est un img vide) qui appelle la racine du serveur. Je sais que ce n'est pas dans le HTML ou le CSS et je suis assez convaincu que quelque part dans le code JavaScript, le reqest est fait, mais je ne peux pas le retrouver. Je suis habitué à utiliser firebug, VS et d'autres outils de débogage, mais je cherche un moyen de savoir où cela est exécuté - afin que je puisse trouver la ligne incriminée parmi environ 150 fichiers .js.D'où provient la requête?

En plus de mettre dans une console gazzillion des sorties de 'vous êtes maintenant ici', est-ce que quelqu'un a des suggestions pour un outil de débogage qui pourrait mettre en évidence où en Javascript les demandes de ressources externes sont faites? D'autres idées?

étape par le débogage étape prendra les âges - Je dois faire attention à ce que je fais un pas dans (source jQuery - beurk) et je peux manquer le moment crucial

+0

Ceci devrait être étiqueté avec 'jQuery'. –

+0

WTHeck est une 'demande rouge'? – alexvance

Répondre

2

Qu'en est-il en utilisant le script étape par étape débogueur dans Firebug?

Je pense aussi que cela pourrait être une amélioration très intéressante à Firebug, en étant capable d'ajouter un point d'arrêt sur les appels AJAX.

0

Si c'est une requête HTTP envoyée à un serveur web, je recommanderais d'utiliser le plugin TamperData sur Firefox. Il suffit d'installer le plugin, de démarrer les données de sabotage, et chaque demande envoyée sera invitée à altérer/continuer/abandonner en premier.

Visitez this page at Mozilla website

+0

J'ai essayé ceci. C'est un complément cool, mais ne me dit pas où dans le JavaScript la demande vient de –

1

Vous avez parlé de la source jQuery ...

En supposant que la demande passe par jQuery, mettre une déclaration de débogage dans la fonction get() source jQuery, qui se déclenche si l'URL est '/'. Peut-être alors vous pouvez dire à partir de la pile d'appels.

+0

ce n'est pas une mauvaise idée –

1

Vous pouvez voir toutes les requêtes HTTP effectuées via JavaScript à l'aide de la console .

Si vous souhaitez suivre toutes les requêtes HTTP manuellement, vous pouvez utiliser ce code:

$(document).bind('beforeSend', function(event, request, ajaxOptions) 
{ 
    // Will be called before every jQuery AJAX call 
}); 

Pour plus d'informations, consultez jQuery documentation on AJAX events.

0

Juste une supposition ici, mais utilisez-vous ThickBox? Il essaie de charger une image dès le début du code.

La première chose que je ferais est de vérifier si cette requête de rouge est une requête Ajax ou une demande de chargement d'image via le panneau Net dans Firebug. Si c'est Ajax, alors vous pouvez surcharger la fonction $ .ajax avec la vôtre et faire une trace de strack et inclure l'URL demandée avant de passer à l'original $ .ajax. Si c'est une image, ce n'est pas idéal, mais si vous pouvez répondre à la demande d'image avec un côté serveur (c'est-à-dire un fichier php qui ne dort que pendant 20 secondes), vous pourrez peut-être accrocher l'application devinez où le problème pourrait être.

Questions connexes