2013-09-03 1 views
0

기본적으로 Glimpse는 스크립트를 닫는 </body> 태그 바로 앞에 삽입합니다. 이 결과로 페이지로드시 수행 된 AJAX 호출은 캡처되지 않습니다. 나는 $(document).ready()을 사용하여 AJAX를 호출합니다.Glimpse가 스크립트를 삽입하는보기에서 위치를 지정하는 방법은 무엇입니까?

Glimpse가 내 init 스크립트보다 먼저로드하도록 지시하는 레이아웃 옵션 또는 위치 지정 문자열이 Layout.cshtml에 있습니까?

편집 - Ajax 탭에서 전체 엿보기를 열면 페이지로드 요청이 표시됩니다. 그러나 작은 오버레이 디스플레이에서 Ajax 카운터가 증가하지는 않습니다. 첫 번째 요청의 성공 처리기에서 약간 더 시작된 요청은 카운터를 증가시킵니다. 어쩌면 그 문제가 어딘가에 있을까요?

답변

2

Glimpse가 스크립트 태그를 렌더링 할 위치를 결정할 수있는 옵션이 없다면 언급 한 스크립트 태그가 </body> 태그 바로 앞에 렌더링되므로로드하는 동안 Glimpse 클라이언트의 영향을 최소화 할 수 있습니다. 나머지 페이지. 이 주입은 ASP.NET MVC 또는 ASP.NET WebForms를 사용하는 것과는 별도로 수행됩니다.

한편, 당신이 언급 한 문제는 이미 Glimpse issue tracker에 알려져 있으며 이에 대한 연구가 진행되고 있으므로 주저하지 말고 추가 의견을 제시하십시오.

1

대답은 여전히 ​​유효하지만 도구 사용 편의성이 약간 떨어 졌기 때문에 다음과 같은 해결 방법을 사용하여 Glimpse HUD가로드 될 때까지 $(document).ready()에 대한 모든 호출을 지연시킵니다. 엿보기가 꺼져 있으면 지연이 없습니다.

// workaround for the problem when Glimpse does not correctly show AJAX requests that happen before the HUD is initialized 
(function() { 
    var origDocumentReady = $.fn.ready; 
    var checkFinished = false; 
    $.fn.ready = function (delegate) { 
     var timerId = -1; 
     var counter = 0; 
     var check = function() { 
      if (counter++ > 50) //~2.5sec - if still not loaded, give up 
       checkFinished = true; 

      if (checkFinished || document.getElementById("glimpse-hud-section-input-ajax")) { 
       checkFinished = true; 
       window.clearInterval(timerId); 
       delegate(); 
      } 
     } 

     origDocumentReady(function() { 
      if (!checkFinished && typeof glimpse === typeof undefined) 
       checkFinished = true; 

      if (checkFinished) 
       delegate(); 
      else 
       timerId = window.setInterval(check, 50); 
     }); 
    } 
})(); 
+0

여기 해결 방법이 있다는 것을 알았지 만, 우리가 속성을 고칠 수 있는지보고 싶어합니다. 피드백을 보내거나 피칭에 관심이 있으시면 다음 https://github.com/Glimpse/Glimpse/issues/397을 참조하십시오. – anthonyv