我最近做了很多ajax的东西。场景,我重复一遍又一遍的是:如何通过萤火虫重新加载只脚本
- 加载页面
- 改变一些脚本该页面
- 重新加载页面,Ctrl + F5,看看它是否工作
我想什么是,告诉firebug重新加载只是脚本不是整个页面,因为标记是相同的。无论如何要做到这一点?
我最近做了很多ajax的东西。场景,我重复一遍又一遍的是:如何通过萤火虫重新加载只脚本
我想什么是,告诉firebug重新加载只是脚本不是整个页面,因为标记是相同的。无论如何要做到这一点?
首先,尽量减少这种测试。在将其折叠到网站/页面之前,请写入原子,DRY code和单元测试。您可以在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.
Firefox目前无法做到这一点。
如果标记是相同的那么ctrl + f5有什么问题?我猜你不想丢失表单域中的数据?这又会导致问题,因为如果您只是重新加载脚本,并且这些脚本具有在更改表单域时触发的事件,则这些事件永远不会触发,并可能导致页面以不应该处于的状态结束。
有一些浏览器插件允许您在预先定义的值点击按钮时自动填写表单域,这可能是重新加载脚本的一个很好的选择。它看起来像这个Firefox插件将做到这一点https://addons.mozilla.org/en-US/firefox/addon/autofill-forms/
我认为你真正需要的是自动测试。编写测试,然后在更改代码后重新运行它们。
在Firefox上这样做的最好方法是webdriver。
不直接,没有。 – 2011-08-15 17:37:31
优秀的问题。节省时间。 – kta 2015-01-10 15:32:27