我最近做了很多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