2011-05-05 4 views
17

Je fais beaucoup de choses ajax ces derniers temps. Scénario que je répète plus et plus est:comment recharger uniquement les scripts via firebug

  1. Charg
  2. modifier certains scripts pour cette page
  3. page reload avec ctrl + f5 et voir si cela fonctionne

Ce que je veux do, c'est dire à firebug de ne recharger que les scripts pas toute la page car le balisage est le même. De toute façon pour le faire?

+0

Pas directement, non. –

+0

Excellente question.Real time Saving. – kta

Répondre

7

D'abord, essayez de minimiser ce type de test. Écrivez atomique, DRY code, et test unitaire avant de le plier dans le site/la page. Vous pouvez le faire rapidement dans la console de Firebug.

Ensuite, si le JS que vous rechargez définit des intervalles ou des écouteurs d'événement, vous souhaiterez effacer ces intervalles et dissocier ces écouteurs avant de recharger le JS testé. Cela signifie que les intervalles anonymes et les gestionnaires d'événements sont verboten. Créez un fichier JS qui appelle clearInterval(), removeEventListener() et .unbind() si nécessaire.

Ensuite, vous pouvez exécuter du code comme celui-ci dans la console de Firebug:

function addJS_Node (text, s_URL) 
{ 
    var scriptNode      = document.createElement ('script'); 
    scriptNode.type      = "text/javascript"; 

    if (text) scriptNode.textContent = text; 
    if (s_URL) scriptNode.src   = s_URL; 

    document.head.appendChild (scriptNode); 
} 

addJS_Node (null, 'Path_to_JS/ResetTimersAndEvents.js'); 

addJS_Node (null, 'Path_to_JS/JS_Under_Test.js'); 
// etc. 
0

Firefox n'a actuellement aucun moyen de le faire.

Si le balisage est le même, quel est le problème avec ctrl + f5? Je suppose que vous ne voulez pas perdre les données dans les champs de formulaire? Cela pose à nouveau des problèmes, comme si vous rechargiez simplement les scripts et que ces scripts ont des événements qui se déclenchent lorsque les champs de formulaire sont modifiés. Ces événements ne se déclencheront jamais et la page finira dans un état où elle ne devrait pas être.

Certains plugins de navigateur vous permettent de remplir automatiquement les champs d'un formulaire en cliquant sur un bouton avec des valeurs prédéfinies, ce qui peut être une bonne alternative au rechargement des scripts. Il semble que ce plugin Firefox fera juste cela https://addons.mozilla.org/en-US/firefox/addon/autofill-forms/

+0

non, je n'ai pas de problème avec les champs de formulaire ... seulement il est trop lent à mon goût de frapper f5 chaque fois que je veux voir le résultat de codage ... – Marko

+0

Combien de temps est un ctrl + f5 prendre? – Gavin

+0

Je vois votre point .. mais imaginez la situation où vous avez une sorte de workflow et vous testez l'étape 5. J'ai changé quelque chose dans le script et je veux voir le résultat à l'étape 5 ... donc, ce que je veux faire est juste recharger en script et faire l'étape 5 pour voir fonctionne-t-il maintenant, ne veut pas recharger toute la page et ensuite suivre les étapes jusqu'à ce que je tape l'étape 5 ... ok? ;) – Marko

4

Je pense que XRefresh peut aider. Il surveille vos dossiers locaux pour les changements et les recharge quand ils changent (après avoir sauvegardé) sans recharger la page entière.

par leur site faq:

XRefresh est également en mesure de remplacer le fichier JS externe lié avec version mise à jour sans recharger la page entière.

Il existe des limites à ce que (et je ne vois aucun moyen de se déplacer eux) que vous pouvez en savoir plus sur leur page FAQ.

Je pense toujours que c'est mieux que de ne pas avoir d'option du tout.

Espérons que cela aide.

3

Je pense que ce dont vous avez réellement besoin, c'est de tests automatisés. Rédigez vos tests, puis réexécutez-les après avoir effectué un changement de code.

La meilleure méthode pour le faire sur Firefox est webdriver.

Questions connexes