2015-04-28 11 views
6

Ostatnio próbowałem profilować metody ASP MVC wywoływane za pomocą usługi AngularJS $ http i zauważyłem, że MiniProfiler nie aktualizuje danych, jak na przykład dla wywołań AJAX z JQuery.MiniProfiler i AngularJS

Czy istnieje sposób użycia MiniProfilera z Angular?

+1

W jaki sposób punkt końcowy MVC, który obsługuje jQuery, różni się od tego, który został wydany przez AngularJS? Więcej szczegółów na temat implementacji MVC tych dwóch może pomóc w uzyskaniu odpowiedzi tutaj –

+0

Ponieważ nie masz problemów z profilowaniem żądania z jQuery, nie powinieneś mieć problemu z $ http od Angular również. Istnieje bardzo duża szansa, że ​​twoja prośba od Angulara nie zostanie zwolniona lub zablokowana z jakiegoś powodu i nie może dostać się do akcji. Sprawdź kartę Sieć w przeglądarce lub skrzypce, aby sprawdzić żądanie. – lbrahim

+0

Dziękuję za odpowiedzi! JQuery był przykładem. Nie używam go razem z Angular, ale użyłem MiniProfilera do profilowania żądań, które używają wywołań ajaxowych z JQuery i wszystko działa zgodnie z oczekiwaniami, ale nie jest tak w przypadku Angulara. @Ibrahim, tak sprawdzenie zakładki Sieć było jedną z pierwszych rzeczy, które zrobiłem i żądania są uruchamiane zgodnie z oczekiwaniami, a odpowiedzi są również w porządku. Myślę też, że to nie powinno robić żadnej różnicy, jeśli używane są wywołania JQuery ajax lub usługa $ http. –

Odpowiedz

1

Kwestia ta została skierowana z this pull request i została ustalona w bieżącym MiniProfiler nuger.

+0

Nadal nie mogę pracować na Angular. Proszę pomóc https://github.com/SeanKilleen/seankilleen.github.io/issues/199#issuecomment-255694713 –

5

Regulacja potrzebne kątowe (1.3.10)

(nie potrzebne jeśli używasz innej biblioteki do swoich potrzeb) XHR-

MiniProfiler robi to XMLHttpRequest, aby móc przechwytywać wszystkie XHR-rozmowy dla kątowego

XMLHttpRequest.prototype.send = function sendReplacement(data) { 
    if (this.onreadystatechange) { 
    ... 

Cóż, nigdy kątowe ustawia xhr.onreadystatechange więc musimy dostosować to w nieszkodliwy sposób:

function createXhr() { 
    var xhr = new window.XMLHttpRequest(); 
    xhr.onreadystatechange = function() { }; 
    return xhr; 
} 

szczegółowo wyjaśnione here

+2

@Jeraya: Gdzie umieściłeś funkcję createXhr()? –