2012-01-18 34 views
0

我們的測試團隊使用WebDriver發現了自動化腳本的問題。他們正在等待$ .active == 0以確定所有ajax請求在繼續之前完成。但是,對於某些局部視圖加載,活動變量不會遞減,從而使自動化變得非常困難。爲什麼在MVC3局部視圖中包含.js文件會導致jQuery「活動」變量出現問題?

我調查了一下,發現問題只出現在部分視圖被加載時,包含一個.js文件並通過ajax調用加載。但是,並不是所有包含文件的視圖都會發生這種情況。這就是我們如何包括額外的js。

<script type="text/javascript" src="@Url.Script("Internal/People/CommitteeMembership.js")" /> 

問題觀點有一個共同的問題。腳本包含在部分視圖的頂部附近定義。當我將它移到局部視圖的底部時,問題就消失了,並且$ .active變量正確遞減,並在ajax調用後結束爲0以獲得局部視圖。

我的問題是,任何人都可以解釋爲什麼會發生這種情況?我沒有發現任何說明可以將js包含在部分視圖的底部?至少問題是固定的,我們的自動化測試可以繼續,但我真的想知道爲什麼...

+0

你也使用母版嗎?因爲如果你這樣做,你可以將腳本包含在你的母版頁中,並且不需要將它放在你的局部視圖中。如果你已經這樣做了,那麼你將它包括兩次,這可能會解決你現在正在使用的整個問題:) – 2012-01-18 09:51:00

回答

0

這與ASP.NET MVC完全無關。 ASP.NET MVC通常吐出HTML。這個HTML包含標記,並在你的情況下的JavaScript。所以,如果你說javascript包含的位置有所不同,那是因爲你的腳本是如何組織和依賴的。

就我個人而言,我傾向於在關閉</body>標記之前包含lmarkup末尾的所有javascript。

+0

感謝您的回覆。其他腳本沒有任何依賴關係。只有一個JS包括在內。 js文件只是有一個函數,在點擊某個元素時被調用。我從來沒有錯誤的代碼,問題是內部jQuery變量,「活躍」,不會在ajax調用加載視圖後遞減。在我們的應用程序中沒有任何代碼可以改變這個變量,所以我不明白爲什麼一個js文件的位置應該對內部jQuery變量有任何影響。 – 2012-01-18 10:02:46

相關問題