Почему включение файла .js в частичное представление MVC3 вызывает проблемы с «активной» переменной jQuery? - PullRequest
0 голосов
/ 18 января 2012

Наша команда тестировщиков столкнулась с проблемой при разработке своих сценариев автоматизации с использованием WebDriver.Они использовали ожидание $ .active == 0, чтобы определить, что все запросы ajax завершены, прежде чем продолжить.Однако при определенных частичных загрузках представления активная переменная не уменьшалась, что делало автоматизацию очень сложной.

Я исследовал и обнаружил, что проблема возникает только при загрузке частичных представлений, включающих a.JS файл и были загружены с помощью вызова AJAX.Однако это не произошло для всех представлений, которые включали файл.Вот как мы включали дополнительные JS.

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

У проблемных представлений была одна общая проблема.Сценарий include был определен в верхней части частичного представления.Когда я переместил это в конец частичного представления, проблема исчезла, и переменная $ .active корректно уменьшается и заканчивается на 0 после вызова ajax, чтобы получить частичное представление.

Myвопрос , кто-нибудь может объяснить, почему это происходит?Я не нашел никаких инструкций, чтобы поместить js include внизу частичного представления?По крайней мере, проблема решена, и наши тесты автоматизации могут быть продолжены, но мне бы очень хотелось знать, почему ...

1 Ответ

0 голосов
/ 18 января 2012

Это не имеет ничего общего с ASP.NET MVC.ASP.NET MVC обычно выплевывает HTML.Этот HTML содержит разметку и в вашем случае javascript.Так что, если вы говорите, что позиция включения javascript имеет значение, это потому, что именно так ваши сценарии организованы и зависят между ними.

Лично я склонен включать весь javascript в конце lmarkup,до закрывающего тега </body>.

...