2010-08-16 4 views
2

Existe-t-il un bon moyen de déboguer la cause d'un crash IE8? Nous avons un site Web qu'une simple fonction AJAX:Comment puis-je déboguer un crash IE8?

  • Une zone de texte avec le bouton correspondant, l'événement onclick déclenche un événement JS.
  • événement JS appelle un service .NET (code ci-dessous)

Le code fonctionne très bien dans FF, Chrome, Opera, Safari, IE7, IE8 en cours d'exécution en mode de compatibilité. Cependant, l'exécution d'IE8 en mode standard entraîne un crash/rétablissement de la fenêtre. Il n'y a pas d'erreur (avant ou après le crash), et en utilisant la barre d'outils des développeurs, tout semble avoir été chargé correctement.

Je suis Reconvertit à l'aide de msgbox de base pour élaborer le point où le navigateur se bloque, et il semble être ou après l'appel de service:

Service.CallService(params, onServiceSuccess, onServiceError); 

<asp:ScriptManager ID="scriptMgr" runat="server"> 
    <Services> 
     <asp:ServiceReference Path="<somepath>/Service.asmx" InlineScript="false" /> 
    </Services> 
</asp:ScriptManager> 

Le service est assez simple, il suffit de retourne une chaîne []. En fin de compte, je suis à la recherche d'un outil qui me permettra d'attraper simplement l'exception et de déterminer où se situe le problème. Je suppose que je dois faire quelque chose de non conforme, mais idéalement je voudrais un outil qui me permettrait de diagnostiquer rapidement le problème, sans revenir à deviner les jeux.

Des conseils sont très appréciés

EDIT

Certains progrès, en utilisant le débogueur JS recommandé ci-dessous, je peux voir que les retours de service, et passe par le succès appel OnServiceSuccess. Cet appel ne, il utilise pas beaucoup faire un peu JQuery pour cacher certains éléments de formulaire:

$('.row').filter(':not(selector)').hide(); 

de traçage au plus loin avec le débogueur nous emmène ensuite dans le code-cadre, je peux voir que nous éliminons correctement l'objet XMLHTTP ... .. et puis après il quitte la fonction (le dernier dans la pile d'appels) .... et puis il se bloque.

Off Google Je vais ....

Merci

Répondre

0

Pour ceux qui viennent encore pour regarder cette réponse, nous avons récemment rencontré un problème similaire dans IE9. Je ne suis pas sûr que le comportement d'IE8 se passe toujours comme ceci, mais il semble être vraiment difficile de déboguer des accidents d'IE (c.-à-d. Quand le navigateur se bloque après l'exécution de l'exécution de Javascript).

Dans notre cas, nous avons dû écrire une solution pour cacher IE9 de quelques lignes:

if ($.browser.msie && parseInt($.browser.version, 10) >= 9) 
{ 
    showRow = function(row) { row.css('visibility', ''); }; 
    hideRow = function(row) { row.css('visibility', 'collapse'); }; 
} 
0
+0

Merci - c'est très cool, et a aidé un peu .... mais je ne pense pas que le problème est un problème JS (car il s'exécute dans les autres navigateurs). Cela a été utile, car il confirme pour moi que l'appel de service s'exécute à la fin, et exécute la fonction de succès ..... et ALORS se bloque. Ce que j'ai vraiment besoin de savoir, c'est quel est le problème rencontré par IE8 :( Je posterai le JS qui est exécuté dans mon post original ci-dessus – Chris