как перезагрузить только скрипты через firebug

17

В последнее время я делаю много аякса. Сценарий, который я повторяю снова и снова:

  1. страница загрузки
  2. изменить некоторые сценарии для этой страницы
  3. перезагрузите страницу с помощью ctrl + f5 и посмотрите, работает ли она

Что я хочу сделать, говорит firebug, чтобы перезагрузить только скрипты, а не всю страницу, потому что разметка такая же. В любом случае, чтобы сделать это?

    
задан Marko 05.05.2011 в 11:24
источник
  • Не прямо, нет. –  Lightness Races in Orbit 15.08.2011 в 19:37
  • Отличный вопрос. Время восстановления. –  kta 10.01.2015 в 16:32

4 ответа

7

Сначала попробуйте и минимизируйте такой тип тестирования. Напиши атомный, СУХОЙ код и модульный тест, прежде чем складывать его на сайт / страницу. Вы можете сделать это быстро в консоли Firebug.

Затем, если JS, который вы перезагружаете, устанавливает интервалы или прослушиватели событий, тогда вы захотите очистить эти интервалы и отвязать этих слушателей до перезагрузки тестируемого JS. Это означает, что анонимные интервалы и обработчики событий являются verboten.

Создайте JS-файл, который при необходимости вызовет clearInterval() , removeEventListener() и .unbind() .

Затем вы можете запустить такой код в консоли 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.
    
ответ дан Brock Adams 06.05.2011 в 05:47
4

Я думаю, XRefresh может помочь. Он отслеживает ваши локальные папки для изменений и перезагружает их, когда они меняются (после сохранения) без перезагрузки всей страницы.

В соответствии с сайтом :

  

XRefresh также может заменить внешний JS-файл с внешней связью   обновленная версия без перезагрузки всей страницы.

Есть ограничения с этим, хотя (и я не вижу никакого способа обойти их), о которых вы можете больше узнать на своей странице faq.

Я все еще думаю, что это лучше, чем вообще никакого выбора.

Надеюсь, что это поможет.

    
ответ дан Mrchief 15.08.2011 в 07:30
3

Я думаю, что вам действительно нужно автоматическое тестирование. Напишите свои тесты, а затем просто запустите их после внесения изменений в код.

Лучший способ сделать это в firefox - webdriver .

    
ответ дан Keith 15.08.2011 в 07:45
0

В настоящее время Firefox не может этого сделать.

Если разметка такая же, то что не так с ctrl + f5? Я предполагаю, что вы не хотите потерять данные в полях формы? Это снова вызывает проблемы, как то, что происходит, если вы просто перезагружаете скрипты, и эти сценарии имеют события, которые срабатывают при изменении полей формы, эти события никогда не будут стрелять и могут привести к тому, что страница окажется в состоянии, в котором он не должен находиться.

Есть некоторые плагины браузера, которые позволяют вам автоматически заполнять поля формы одним нажатием кнопки с предварительно определенными значениями, это может быть хорошей альтернативой перезагрузке только скриптов. Похоже, этот плагин firefox сделает именно это Ссылка

    
ответ дан Gavin 05.05.2011 в 12:55
  • нет, у меня нет проблем с полями формы ... только слишком медленно для моего вкуса ударить f5 каждый раз, когда я хочу увидеть результат кодирования ... –  Marko 05.05.2011 в 12:59
  • Сколько времени занимает ctrl + f5? –  Gavin 05.05.2011 в 13:02
  • Я вижу вашу точку зрения .. но представляю ситуацию, когда у вас есть какой-то рабочий процесс, и вы тестируете шаг 5. Я что-то изменил в скрипте, и я хочу увидеть результат на шаге 5 ... так, что я хочу сделать просто перезагрузите скрипт и сделайте шаг 5, чтобы увидеть, работает ли он сейчас, не нужно перезагружать всю страницу, а затем пройти шаги, пока я не нахожу шаг 5 ... нормально? ;) –  Marko 05.05.2011 в 13:04
  • Я вижу, что вы говорите и соглашаетесь с его болью в этой ситуации. Однако, если вы на шаге 5, то я предполагаю, что DOM был изменен, и все вещи на странице были перемещены, поэтому перезагрузка javascript вызовет больше проблем, поскольку любые переменные в области будут потеряны, а сценарий / dom, вероятно, будет отсутствовать синхронизация. –  Gavin 05.05.2011 в 13:13
  • Возможно, стоит взглянуть на seleniumhq.org, если вы еще этого не сделали - может помочь облегчить боль при тестировании и повторном тестировании рабочего процесса / шаги 1-5 –  Ian Oxley 05.05.2011 в 15:48