为什么在MVC3局部视图中包含.js文件会导致jQuery“active”变量出现问题?

时间:2012-01-18 09:45:13

标签: asp.net-mvc-3 jquery automation partial

我们的测试团队使用WebDriver遇到了自动化脚本的问题。他们使用等待$ .active == 0来确定所有ajax请求在继续之前已完成。但是,对于某些部分视图载荷,活动变量没有减少,从而使自动化变得非常困难。

我调查并发现只有在加载了包含.js文件且通过ajax调用加载的部分视图时才会出现此问题。但是,包含文件的所有视图都不会发生这种情况。这就是我们如何包含额外的js。

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

问题观点有一个共同的问题。脚本包括在局部视图顶部附近定义。当我将其移动到局部视图的底部时,问题消失了,$ .active变量在ajax调用之后正确地减少并结束为0以获得局部视图。

我的问题是,任何人都可以解释为什么会这样吗?我没有找到将js包含在局部视图底部的指令吗?至少问题是固定的,我们的自动化测试可以继续,但我真的想知道为什么......

1 个答案:

答案 0 :(得分:0)

这与ASP.NET MVC严格无关。 ASP.NET MVC通常吐出HTML。此HTML包含标记,在您的情况下包含javascript。因此,如果你说javascript包含的位置有所不同,那就是因为你的脚本是如何组织和依赖它们的。

我个人倾向于在结束</body>标记之前将所有javascript包含在lmarkup的末尾。