如何通过firebug重新加载脚本

时间:2011-05-05 09:24:46

标签: javascript debugging firebug

我最近做了很多ajax的事。我一遍又一遍地重复的情景是:

  1. 加载页面
  2. 更改该页面的一些脚本
  3. 使用ctrl + f5重新加载页面并查看它是否有效
  4. 我想要做的是告诉firebug仅重新加载脚本而不是整页,因为标记是相同的。无论如何要做到这一点?

4 个答案:

答案 0 :(得分:7)

首先,尽量减少这种测试。在将其折叠到站点/页面之前写入atomic,DRY code和单元测试。您可以在Firebug的控制台中快速完成一些操作。

接下来,如果您正在重新加载的JS设置间隔或事件侦听器,那么您需要清除这些间隔并在重新加载受测试的JS之前取消绑定这些侦听器。这意味着禁止匿名间隔和事件处理程序。

根据需要创建一个调用clearInterval()removeEventListener().unbind()的JS文件。

然后你可以在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.

答案 1 :(得分:4)

我认为XRefresh可能有所帮助。它监视您的本地文件夹以进行更改,并在更改时(保存后)重新加载它们,而不重新加载整个页面。

按照site faq

  

XRefresh也可以替换外部链接的JS文件   更新版本而不重新加载整个页面。

虽然有这方面的限制(我没有看到任何解决方法),你可以在他们的常见问题页面上阅读更多信息。

我仍然认为它比没有选择更好。

希望这有帮助。

答案 2 :(得分:3)

我认为您真正需要的是自动化测试。编写测试,然后在进行代码更改后重新运行它们。

在firefox上执行此操作的最佳方法是webdriver

答案 3 :(得分:0)

Firefox目前无法做到这一点。

如果标记相同则ctrl + f5有什么问题?我猜你不想丢失表单字段中的数据?如果您只是重新加载脚本并且那些脚本在更改表单字段时触发了事件,这又会导致问题,这些事件永远不会触发,并且可能导致页面最终处于不应该处于的状态。< / p>

有一些浏览器插件允许您在点击具有预定义值的按钮时自动填写表单字段,这可能是仅重新加载脚本的一个很好的替代方法。看起来这个firefox插件只会执行https://addons.mozilla.org/en-US/firefox/addon/autofill-forms/