2011-05-05 73 views
17

我最近做了很多ajax的東西。場景,我重複一遍又一遍的是:如何通過螢火蟲重新加載只腳本

  1. 加載頁面
  2. 改變一些腳本該頁面
  3. 重新加載頁面,Ctrl + F5,看看它是否工作

我想什麼是,告訴firebug重新加載只是腳本不是整個頁面,因爲標記是相同的。無論如何要做到這一點?

+0

不直接,沒有。 – 2011-08-15 17:37:31

+0

優秀的問題。節省時間。 – kta 2015-01-10 15:32:27

回答

7

首先,儘量減少這種測試。在將其摺疊到網站/頁面之前,請寫入原子,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. 
0

Firefox目前無法做到這一點。

如果標記是相同的那麼ctrl + f5有什麼問題?我猜你不想丟失表單域中的數據?這又會導致問題,因爲如果您只是重新加載腳本,並且這些腳本具有在更改表單域時觸發的事件,則這些事件永遠不會觸發,並可能導致頁面以不應該處於的狀態結束。

有一些瀏覽器插件允許您在預先定義的值點擊按鈕時自動填寫表單域,這可能是重新加載腳本的一個很好的選擇。它看起來像這個Firefox插件將做到這一點https://addons.mozilla.org/en-US/firefox/addon/autofill-forms/

+0

不,我沒有表單字段的問題...只是它的速度太慢,我每次都想看到編碼的結果時碰到f5 ... – Marko 2011-05-05 10:59:22

+0

ctrl + f5需要多長時間? – Gavin 2011-05-05 11:02:37

+0

我明白了你的觀點。但是想象一下你有什麼樣的工作流程並且你正在測試第5步..我在腳本中改變了一些東西,我想在第5步中看到結果......所以,我想要做的只是重新加載到腳本並執行步驟5,看看它現在在工作,不想重新加載整個頁面,然後通過步驟,直到我點擊第5步...好嗎? ;) – Marko 2011-05-05 11:04:32

4

我認爲XRefresh可能會有幫助。它會監視您的本地文件夾以進行更改,並在更改(保存後)時重新加載它們,而無需重新加載整個頁面。

每它們site faq

XRefresh還能夠與 更新的版本替換外部鏈接JS文件而不需要重新加載整個頁面。

沒有與此雖然限制(我不認爲他們會得到周圍任何方式),你可以閱讀更多關於他們的常見問題頁面上。

我仍然認爲它比沒有選擇更好。

希望這會有所幫助。

3

我認爲你真正需要的是自動測試。編寫測試,然後在更改代碼後重新運行它們。

在Firefox上這樣做的最好方法是webdriver