как перезагрузить только скрипты через firebug - PullRequest
17 голосов
/ 05 мая 2011

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

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

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

Ответы [ 4 ]

7 голосов
/ 06 мая 2011

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

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

Создайте файл 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.
4 голосов
/ 15 августа 2011

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

По их faq сайта:

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

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

Я все еще думаю, что это лучше, чем вообще не иметь возможности.

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

3 голосов
/ 15 августа 2011

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

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

0 голосов
/ 05 мая 2011

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

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

Существует несколько плагинов для браузера, которые позволяют автоматически заполнять поля формы одним нажатием кнопки с предварительно заданными значениями, это может быть хорошей альтернативой перезагрузке только сценариев. Похоже, этот плагин Firefox сделает именно это https://addons.mozilla.org/en-US/firefox/addon/autofill-forms/

...